github.com/Onther-Tech/plasma-evm@v0.0.0-rc7.7/contracts/plasma/seigmanager/seigmanager.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package seigmanager
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	"github.com/Onther-Tech/plasma-evm"
    11  	"github.com/Onther-Tech/plasma-evm/accounts/abi"
    12  	"github.com/Onther-Tech/plasma-evm/accounts/abi/bind"
    13  	"github.com/Onther-Tech/plasma-evm/common"
    14  	"github.com/Onther-Tech/plasma-evm/core/types"
    15  	"github.com/Onther-Tech/plasma-evm/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = abi.U256
    24  	_ = bind.Bind
    25  	_ = common.Big1
    26  	_ = types.BloomLookup
    27  	_ = event.NewSubscription
    28  )
    29  
    30  // AddressABI is the input ABI used to generate the binding from.
    31  const AddressABI = "[]"
    32  
    33  // AddressBin is the compiled bytecode used for deploying new contracts.
    34  var AddressBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820caa83848f6f3a88a061ce398577e989d5da9a19232f9e00175de410a704b86e164736f6c634300050c0032"
    35  
    36  // DeployAddress deploys a new Ethereum contract, binding an instance of Address to it.
    37  func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) {
    38  	parsed, err := abi.JSON(strings.NewReader(AddressABI))
    39  	if err != nil {
    40  		return common.Address{}, nil, nil, err
    41  	}
    42  
    43  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AddressBin), backend)
    44  	if err != nil {
    45  		return common.Address{}, nil, nil, err
    46  	}
    47  	return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
    48  }
    49  
    50  // Address is an auto generated Go binding around an Ethereum contract.
    51  type Address struct {
    52  	AddressCaller     // Read-only binding to the contract
    53  	AddressTransactor // Write-only binding to the contract
    54  	AddressFilterer   // Log filterer for contract events
    55  }
    56  
    57  // AddressCaller is an auto generated read-only Go binding around an Ethereum contract.
    58  type AddressCaller struct {
    59  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    60  }
    61  
    62  // AddressTransactor is an auto generated write-only Go binding around an Ethereum contract.
    63  type AddressTransactor struct {
    64  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    65  }
    66  
    67  // AddressFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    68  type AddressFilterer struct {
    69  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    70  }
    71  
    72  // AddressSession is an auto generated Go binding around an Ethereum contract,
    73  // with pre-set call and transact options.
    74  type AddressSession struct {
    75  	Contract     *Address          // Generic contract binding to set the session for
    76  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    77  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    78  }
    79  
    80  // AddressCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    81  // with pre-set call options.
    82  type AddressCallerSession struct {
    83  	Contract *AddressCaller // Generic contract caller binding to set the session for
    84  	CallOpts bind.CallOpts  // Call options to use throughout this session
    85  }
    86  
    87  // AddressTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    88  // with pre-set transact options.
    89  type AddressTransactorSession struct {
    90  	Contract     *AddressTransactor // Generic contract transactor binding to set the session for
    91  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
    92  }
    93  
    94  // AddressRaw is an auto generated low-level Go binding around an Ethereum contract.
    95  type AddressRaw struct {
    96  	Contract *Address // Generic contract binding to access the raw methods on
    97  }
    98  
    99  // AddressCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   100  type AddressCallerRaw struct {
   101  	Contract *AddressCaller // Generic read-only contract binding to access the raw methods on
   102  }
   103  
   104  // AddressTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   105  type AddressTransactorRaw struct {
   106  	Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on
   107  }
   108  
   109  // NewAddress creates a new instance of Address, bound to a specific deployed contract.
   110  func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) {
   111  	contract, err := bindAddress(address, backend, backend, backend)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
   116  }
   117  
   118  // NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract.
   119  func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) {
   120  	contract, err := bindAddress(address, caller, nil, nil)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &AddressCaller{contract: contract}, nil
   125  }
   126  
   127  // NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract.
   128  func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) {
   129  	contract, err := bindAddress(address, nil, transactor, nil)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &AddressTransactor{contract: contract}, nil
   134  }
   135  
   136  // NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract.
   137  func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) {
   138  	contract, err := bindAddress(address, nil, nil, filterer)
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return &AddressFilterer{contract: contract}, nil
   143  }
   144  
   145  // bindAddress binds a generic wrapper to an already deployed contract.
   146  func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   147  	parsed, err := abi.JSON(strings.NewReader(AddressABI))
   148  	if err != nil {
   149  		return nil, err
   150  	}
   151  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   152  }
   153  
   154  // Call invokes the (constant) contract method with params as input values and
   155  // sets the output to result. The result type might be a single field for simple
   156  // returns, a slice of interfaces for anonymous returns and a struct for named
   157  // returns.
   158  func (_Address *AddressRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   159  	return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...)
   160  }
   161  
   162  // Transfer initiates a plain transaction to move funds to the contract, calling
   163  // its default method if one is available.
   164  func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   165  	return _Address.Contract.AddressTransactor.contract.Transfer(opts)
   166  }
   167  
   168  // Transact invokes the (paid) contract method with params as input values.
   169  func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   170  	return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...)
   171  }
   172  
   173  // Call invokes the (constant) contract method with params as input values and
   174  // sets the output to result. The result type might be a single field for simple
   175  // returns, a slice of interfaces for anonymous returns and a struct for named
   176  // returns.
   177  func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   178  	return _Address.Contract.contract.Call(opts, result, method, params...)
   179  }
   180  
   181  // Transfer initiates a plain transaction to move funds to the contract, calling
   182  // its default method if one is available.
   183  func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   184  	return _Address.Contract.contract.Transfer(opts)
   185  }
   186  
   187  // Transact invokes the (paid) contract method with params as input values.
   188  func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   189  	return _Address.Contract.contract.Transact(opts, method, params...)
   190  }
   191  
   192  // ApproveAndCallFallBackABI is the input ABI used to generate the binding from.
   193  const ApproveAndCallFallBackABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"receiveApproval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
   194  
   195  // ApproveAndCallFallBackFuncSigs maps the 4-byte function signature to its string representation.
   196  var ApproveAndCallFallBackFuncSigs = map[string]string{
   197  	"8f4ffcb1": "receiveApproval(address,uint256,address,bytes)",
   198  }
   199  
   200  // ApproveAndCallFallBack is an auto generated Go binding around an Ethereum contract.
   201  type ApproveAndCallFallBack struct {
   202  	ApproveAndCallFallBackCaller     // Read-only binding to the contract
   203  	ApproveAndCallFallBackTransactor // Write-only binding to the contract
   204  	ApproveAndCallFallBackFilterer   // Log filterer for contract events
   205  }
   206  
   207  // ApproveAndCallFallBackCaller is an auto generated read-only Go binding around an Ethereum contract.
   208  type ApproveAndCallFallBackCaller struct {
   209  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   210  }
   211  
   212  // ApproveAndCallFallBackTransactor is an auto generated write-only Go binding around an Ethereum contract.
   213  type ApproveAndCallFallBackTransactor struct {
   214  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   215  }
   216  
   217  // ApproveAndCallFallBackFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   218  type ApproveAndCallFallBackFilterer struct {
   219  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   220  }
   221  
   222  // ApproveAndCallFallBackSession is an auto generated Go binding around an Ethereum contract,
   223  // with pre-set call and transact options.
   224  type ApproveAndCallFallBackSession struct {
   225  	Contract     *ApproveAndCallFallBack // Generic contract binding to set the session for
   226  	CallOpts     bind.CallOpts           // Call options to use throughout this session
   227  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
   228  }
   229  
   230  // ApproveAndCallFallBackCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   231  // with pre-set call options.
   232  type ApproveAndCallFallBackCallerSession struct {
   233  	Contract *ApproveAndCallFallBackCaller // Generic contract caller binding to set the session for
   234  	CallOpts bind.CallOpts                 // Call options to use throughout this session
   235  }
   236  
   237  // ApproveAndCallFallBackTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   238  // with pre-set transact options.
   239  type ApproveAndCallFallBackTransactorSession struct {
   240  	Contract     *ApproveAndCallFallBackTransactor // Generic contract transactor binding to set the session for
   241  	TransactOpts bind.TransactOpts                 // Transaction auth options to use throughout this session
   242  }
   243  
   244  // ApproveAndCallFallBackRaw is an auto generated low-level Go binding around an Ethereum contract.
   245  type ApproveAndCallFallBackRaw struct {
   246  	Contract *ApproveAndCallFallBack // Generic contract binding to access the raw methods on
   247  }
   248  
   249  // ApproveAndCallFallBackCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   250  type ApproveAndCallFallBackCallerRaw struct {
   251  	Contract *ApproveAndCallFallBackCaller // Generic read-only contract binding to access the raw methods on
   252  }
   253  
   254  // ApproveAndCallFallBackTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   255  type ApproveAndCallFallBackTransactorRaw struct {
   256  	Contract *ApproveAndCallFallBackTransactor // Generic write-only contract binding to access the raw methods on
   257  }
   258  
   259  // NewApproveAndCallFallBack creates a new instance of ApproveAndCallFallBack, bound to a specific deployed contract.
   260  func NewApproveAndCallFallBack(address common.Address, backend bind.ContractBackend) (*ApproveAndCallFallBack, error) {
   261  	contract, err := bindApproveAndCallFallBack(address, backend, backend, backend)
   262  	if err != nil {
   263  		return nil, err
   264  	}
   265  	return &ApproveAndCallFallBack{ApproveAndCallFallBackCaller: ApproveAndCallFallBackCaller{contract: contract}, ApproveAndCallFallBackTransactor: ApproveAndCallFallBackTransactor{contract: contract}, ApproveAndCallFallBackFilterer: ApproveAndCallFallBackFilterer{contract: contract}}, nil
   266  }
   267  
   268  // NewApproveAndCallFallBackCaller creates a new read-only instance of ApproveAndCallFallBack, bound to a specific deployed contract.
   269  func NewApproveAndCallFallBackCaller(address common.Address, caller bind.ContractCaller) (*ApproveAndCallFallBackCaller, error) {
   270  	contract, err := bindApproveAndCallFallBack(address, caller, nil, nil)
   271  	if err != nil {
   272  		return nil, err
   273  	}
   274  	return &ApproveAndCallFallBackCaller{contract: contract}, nil
   275  }
   276  
   277  // NewApproveAndCallFallBackTransactor creates a new write-only instance of ApproveAndCallFallBack, bound to a specific deployed contract.
   278  func NewApproveAndCallFallBackTransactor(address common.Address, transactor bind.ContractTransactor) (*ApproveAndCallFallBackTransactor, error) {
   279  	contract, err := bindApproveAndCallFallBack(address, nil, transactor, nil)
   280  	if err != nil {
   281  		return nil, err
   282  	}
   283  	return &ApproveAndCallFallBackTransactor{contract: contract}, nil
   284  }
   285  
   286  // NewApproveAndCallFallBackFilterer creates a new log filterer instance of ApproveAndCallFallBack, bound to a specific deployed contract.
   287  func NewApproveAndCallFallBackFilterer(address common.Address, filterer bind.ContractFilterer) (*ApproveAndCallFallBackFilterer, error) {
   288  	contract, err := bindApproveAndCallFallBack(address, nil, nil, filterer)
   289  	if err != nil {
   290  		return nil, err
   291  	}
   292  	return &ApproveAndCallFallBackFilterer{contract: contract}, nil
   293  }
   294  
   295  // bindApproveAndCallFallBack binds a generic wrapper to an already deployed contract.
   296  func bindApproveAndCallFallBack(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   297  	parsed, err := abi.JSON(strings.NewReader(ApproveAndCallFallBackABI))
   298  	if err != nil {
   299  		return nil, err
   300  	}
   301  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   302  }
   303  
   304  // Call invokes the (constant) contract method with params as input values and
   305  // sets the output to result. The result type might be a single field for simple
   306  // returns, a slice of interfaces for anonymous returns and a struct for named
   307  // returns.
   308  func (_ApproveAndCallFallBack *ApproveAndCallFallBackRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   309  	return _ApproveAndCallFallBack.Contract.ApproveAndCallFallBackCaller.contract.Call(opts, result, method, params...)
   310  }
   311  
   312  // Transfer initiates a plain transaction to move funds to the contract, calling
   313  // its default method if one is available.
   314  func (_ApproveAndCallFallBack *ApproveAndCallFallBackRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   315  	return _ApproveAndCallFallBack.Contract.ApproveAndCallFallBackTransactor.contract.Transfer(opts)
   316  }
   317  
   318  // Transact invokes the (paid) contract method with params as input values.
   319  func (_ApproveAndCallFallBack *ApproveAndCallFallBackRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   320  	return _ApproveAndCallFallBack.Contract.ApproveAndCallFallBackTransactor.contract.Transact(opts, method, params...)
   321  }
   322  
   323  // Call invokes the (constant) contract method with params as input values and
   324  // sets the output to result. The result type might be a single field for simple
   325  // returns, a slice of interfaces for anonymous returns and a struct for named
   326  // returns.
   327  func (_ApproveAndCallFallBack *ApproveAndCallFallBackCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   328  	return _ApproveAndCallFallBack.Contract.contract.Call(opts, result, method, params...)
   329  }
   330  
   331  // Transfer initiates a plain transaction to move funds to the contract, calling
   332  // its default method if one is available.
   333  func (_ApproveAndCallFallBack *ApproveAndCallFallBackTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   334  	return _ApproveAndCallFallBack.Contract.contract.Transfer(opts)
   335  }
   336  
   337  // Transact invokes the (paid) contract method with params as input values.
   338  func (_ApproveAndCallFallBack *ApproveAndCallFallBackTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   339  	return _ApproveAndCallFallBack.Contract.contract.Transact(opts, method, params...)
   340  }
   341  
   342  // ReceiveApproval is a paid mutator transaction binding the contract method 0x8f4ffcb1.
   343  //
   344  // Solidity: function receiveApproval(address from, uint256 _amount, address _token, bytes _data) returns()
   345  func (_ApproveAndCallFallBack *ApproveAndCallFallBackTransactor) ReceiveApproval(opts *bind.TransactOpts, from common.Address, _amount *big.Int, _token common.Address, _data []byte) (*types.Transaction, error) {
   346  	return _ApproveAndCallFallBack.contract.Transact(opts, "receiveApproval", from, _amount, _token, _data)
   347  }
   348  
   349  // ReceiveApproval is a paid mutator transaction binding the contract method 0x8f4ffcb1.
   350  //
   351  // Solidity: function receiveApproval(address from, uint256 _amount, address _token, bytes _data) returns()
   352  func (_ApproveAndCallFallBack *ApproveAndCallFallBackSession) ReceiveApproval(from common.Address, _amount *big.Int, _token common.Address, _data []byte) (*types.Transaction, error) {
   353  	return _ApproveAndCallFallBack.Contract.ReceiveApproval(&_ApproveAndCallFallBack.TransactOpts, from, _amount, _token, _data)
   354  }
   355  
   356  // ReceiveApproval is a paid mutator transaction binding the contract method 0x8f4ffcb1.
   357  //
   358  // Solidity: function receiveApproval(address from, uint256 _amount, address _token, bytes _data) returns()
   359  func (_ApproveAndCallFallBack *ApproveAndCallFallBackTransactorSession) ReceiveApproval(from common.Address, _amount *big.Int, _token common.Address, _data []byte) (*types.Transaction, error) {
   360  	return _ApproveAndCallFallBack.Contract.ReceiveApproval(&_ApproveAndCallFallBack.TransactOpts, from, _amount, _token, _data)
   361  }
   362  
   363  // AuthControllerABI is the input ABI used to generate the binding from.
   364  const AuthControllerABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
   365  
   366  // AuthControllerFuncSigs maps the 4-byte function signature to its string representation.
   367  var AuthControllerFuncSigs = map[string]string{
   368  	"8f32d59b": "isOwner()",
   369  	"8da5cb5b": "owner()",
   370  	"5f112c68": "renounceMinter(address)",
   371  	"715018a6": "renounceOwnership()",
   372  	"38bf3cfa": "renounceOwnership(address)",
   373  	"41eb24bb": "renouncePauser(address)",
   374  	"f2fde38b": "transferOwnership(address)",
   375  	"6d435421": "transferOwnership(address,address)",
   376  }
   377  
   378  // AuthControllerBin is the compiled bytecode used for deploying new contracts.
   379  var AuthControllerBin = "0x608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b61062f806100796000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a61461012f5780638da5cb5b146101375780638f32d59b1461015b578063f2fde38b1461017757610088565b806338bf3cfa1461008d57806341eb24bb146100b55780635f112c68146100db5780636d43542114610101575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b031661019d565b005b6100b3600480360360208110156100cb57600080fd5b50356001600160a01b031661023a565b6100b3600480360360208110156100f157600080fd5b50356001600160a01b03166102bc565b6100b36004803603604081101561011757600080fd5b506001600160a01b038135811691602001351661033e565b6100b36103f9565b61013f61048a565b604080516001600160a01b039092168252519081900360200190f35b610163610499565b604080519115158252519081900360200190f35b6100b36004803603602081101561018d57600080fd5b50356001600160a01b03166104bd565b6101a5610499565b6101e4576040805162461bcd60e51b815260206004820181905260248201526000805160206105db833981519152604482015290519081900360640190fd5b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561021f57600080fd5b505af1158015610233573d6000803e3d6000fd5b5050505050565b610242610499565b610281576040805162461bcd60e51b815260206004820181905260248201526000805160206105db833981519152604482015290519081900360640190fd5b806001600160a01b0316636ef8d66d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561021f57600080fd5b6102c4610499565b610303576040805162461bcd60e51b815260206004820181905260248201526000805160206105db833981519152604482015290519081900360640190fd5b806001600160a01b031663986502756040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561021f57600080fd5b610346610499565b610385576040805162461bcd60e51b815260206004820181905260248201526000805160206105db833981519152604482015290519081900360640190fd5b816001600160a01b031663f2fde38b826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156103dd57600080fd5b505af11580156103f1573d6000803e3d6000fd5b505050505050565b610401610499565b610440576040805162461bcd60e51b815260206004820181905260248201526000805160206105db833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b03166104ae610510565b6001600160a01b031614905090565b6104c5610499565b610504576040805162461bcd60e51b815260206004820181905260248201526000805160206105db833981519152604482015290519081900360640190fd5b61050d81610514565b50565b3390565b6001600160a01b0381166105595760405162461bcd60e51b81526004018080602001828103825260268152602001806105b56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820f5dbf027aa9fb336aafe169eae7ece5653dd467fdb8b8d677f8775fa7b10105264736f6c634300050c0032"
   380  
   381  // DeployAuthController deploys a new Ethereum contract, binding an instance of AuthController to it.
   382  func DeployAuthController(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AuthController, error) {
   383  	parsed, err := abi.JSON(strings.NewReader(AuthControllerABI))
   384  	if err != nil {
   385  		return common.Address{}, nil, nil, err
   386  	}
   387  
   388  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AuthControllerBin), backend)
   389  	if err != nil {
   390  		return common.Address{}, nil, nil, err
   391  	}
   392  	return address, tx, &AuthController{AuthControllerCaller: AuthControllerCaller{contract: contract}, AuthControllerTransactor: AuthControllerTransactor{contract: contract}, AuthControllerFilterer: AuthControllerFilterer{contract: contract}}, nil
   393  }
   394  
   395  // AuthController is an auto generated Go binding around an Ethereum contract.
   396  type AuthController struct {
   397  	AuthControllerCaller     // Read-only binding to the contract
   398  	AuthControllerTransactor // Write-only binding to the contract
   399  	AuthControllerFilterer   // Log filterer for contract events
   400  }
   401  
   402  // AuthControllerCaller is an auto generated read-only Go binding around an Ethereum contract.
   403  type AuthControllerCaller struct {
   404  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   405  }
   406  
   407  // AuthControllerTransactor is an auto generated write-only Go binding around an Ethereum contract.
   408  type AuthControllerTransactor struct {
   409  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   410  }
   411  
   412  // AuthControllerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   413  type AuthControllerFilterer struct {
   414  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   415  }
   416  
   417  // AuthControllerSession is an auto generated Go binding around an Ethereum contract,
   418  // with pre-set call and transact options.
   419  type AuthControllerSession struct {
   420  	Contract     *AuthController   // Generic contract binding to set the session for
   421  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   422  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   423  }
   424  
   425  // AuthControllerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   426  // with pre-set call options.
   427  type AuthControllerCallerSession struct {
   428  	Contract *AuthControllerCaller // Generic contract caller binding to set the session for
   429  	CallOpts bind.CallOpts         // Call options to use throughout this session
   430  }
   431  
   432  // AuthControllerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   433  // with pre-set transact options.
   434  type AuthControllerTransactorSession struct {
   435  	Contract     *AuthControllerTransactor // Generic contract transactor binding to set the session for
   436  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
   437  }
   438  
   439  // AuthControllerRaw is an auto generated low-level Go binding around an Ethereum contract.
   440  type AuthControllerRaw struct {
   441  	Contract *AuthController // Generic contract binding to access the raw methods on
   442  }
   443  
   444  // AuthControllerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   445  type AuthControllerCallerRaw struct {
   446  	Contract *AuthControllerCaller // Generic read-only contract binding to access the raw methods on
   447  }
   448  
   449  // AuthControllerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   450  type AuthControllerTransactorRaw struct {
   451  	Contract *AuthControllerTransactor // Generic write-only contract binding to access the raw methods on
   452  }
   453  
   454  // NewAuthController creates a new instance of AuthController, bound to a specific deployed contract.
   455  func NewAuthController(address common.Address, backend bind.ContractBackend) (*AuthController, error) {
   456  	contract, err := bindAuthController(address, backend, backend, backend)
   457  	if err != nil {
   458  		return nil, err
   459  	}
   460  	return &AuthController{AuthControllerCaller: AuthControllerCaller{contract: contract}, AuthControllerTransactor: AuthControllerTransactor{contract: contract}, AuthControllerFilterer: AuthControllerFilterer{contract: contract}}, nil
   461  }
   462  
   463  // NewAuthControllerCaller creates a new read-only instance of AuthController, bound to a specific deployed contract.
   464  func NewAuthControllerCaller(address common.Address, caller bind.ContractCaller) (*AuthControllerCaller, error) {
   465  	contract, err := bindAuthController(address, caller, nil, nil)
   466  	if err != nil {
   467  		return nil, err
   468  	}
   469  	return &AuthControllerCaller{contract: contract}, nil
   470  }
   471  
   472  // NewAuthControllerTransactor creates a new write-only instance of AuthController, bound to a specific deployed contract.
   473  func NewAuthControllerTransactor(address common.Address, transactor bind.ContractTransactor) (*AuthControllerTransactor, error) {
   474  	contract, err := bindAuthController(address, nil, transactor, nil)
   475  	if err != nil {
   476  		return nil, err
   477  	}
   478  	return &AuthControllerTransactor{contract: contract}, nil
   479  }
   480  
   481  // NewAuthControllerFilterer creates a new log filterer instance of AuthController, bound to a specific deployed contract.
   482  func NewAuthControllerFilterer(address common.Address, filterer bind.ContractFilterer) (*AuthControllerFilterer, error) {
   483  	contract, err := bindAuthController(address, nil, nil, filterer)
   484  	if err != nil {
   485  		return nil, err
   486  	}
   487  	return &AuthControllerFilterer{contract: contract}, nil
   488  }
   489  
   490  // bindAuthController binds a generic wrapper to an already deployed contract.
   491  func bindAuthController(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   492  	parsed, err := abi.JSON(strings.NewReader(AuthControllerABI))
   493  	if err != nil {
   494  		return nil, err
   495  	}
   496  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   497  }
   498  
   499  // Call invokes the (constant) contract method with params as input values and
   500  // sets the output to result. The result type might be a single field for simple
   501  // returns, a slice of interfaces for anonymous returns and a struct for named
   502  // returns.
   503  func (_AuthController *AuthControllerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   504  	return _AuthController.Contract.AuthControllerCaller.contract.Call(opts, result, method, params...)
   505  }
   506  
   507  // Transfer initiates a plain transaction to move funds to the contract, calling
   508  // its default method if one is available.
   509  func (_AuthController *AuthControllerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   510  	return _AuthController.Contract.AuthControllerTransactor.contract.Transfer(opts)
   511  }
   512  
   513  // Transact invokes the (paid) contract method with params as input values.
   514  func (_AuthController *AuthControllerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   515  	return _AuthController.Contract.AuthControllerTransactor.contract.Transact(opts, method, params...)
   516  }
   517  
   518  // Call invokes the (constant) contract method with params as input values and
   519  // sets the output to result. The result type might be a single field for simple
   520  // returns, a slice of interfaces for anonymous returns and a struct for named
   521  // returns.
   522  func (_AuthController *AuthControllerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   523  	return _AuthController.Contract.contract.Call(opts, result, method, params...)
   524  }
   525  
   526  // Transfer initiates a plain transaction to move funds to the contract, calling
   527  // its default method if one is available.
   528  func (_AuthController *AuthControllerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   529  	return _AuthController.Contract.contract.Transfer(opts)
   530  }
   531  
   532  // Transact invokes the (paid) contract method with params as input values.
   533  func (_AuthController *AuthControllerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   534  	return _AuthController.Contract.contract.Transact(opts, method, params...)
   535  }
   536  
   537  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
   538  //
   539  // Solidity: function isOwner() constant returns(bool)
   540  func (_AuthController *AuthControllerCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
   541  	var (
   542  		ret0 = new(bool)
   543  	)
   544  	out := ret0
   545  	err := _AuthController.contract.Call(opts, out, "isOwner")
   546  	return *ret0, err
   547  }
   548  
   549  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
   550  //
   551  // Solidity: function isOwner() constant returns(bool)
   552  func (_AuthController *AuthControllerSession) IsOwner() (bool, error) {
   553  	return _AuthController.Contract.IsOwner(&_AuthController.CallOpts)
   554  }
   555  
   556  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
   557  //
   558  // Solidity: function isOwner() constant returns(bool)
   559  func (_AuthController *AuthControllerCallerSession) IsOwner() (bool, error) {
   560  	return _AuthController.Contract.IsOwner(&_AuthController.CallOpts)
   561  }
   562  
   563  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   564  //
   565  // Solidity: function owner() constant returns(address)
   566  func (_AuthController *AuthControllerCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   567  	var (
   568  		ret0 = new(common.Address)
   569  	)
   570  	out := ret0
   571  	err := _AuthController.contract.Call(opts, out, "owner")
   572  	return *ret0, err
   573  }
   574  
   575  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   576  //
   577  // Solidity: function owner() constant returns(address)
   578  func (_AuthController *AuthControllerSession) Owner() (common.Address, error) {
   579  	return _AuthController.Contract.Owner(&_AuthController.CallOpts)
   580  }
   581  
   582  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   583  //
   584  // Solidity: function owner() constant returns(address)
   585  func (_AuthController *AuthControllerCallerSession) Owner() (common.Address, error) {
   586  	return _AuthController.Contract.Owner(&_AuthController.CallOpts)
   587  }
   588  
   589  // RenounceMinter is a paid mutator transaction binding the contract method 0x5f112c68.
   590  //
   591  // Solidity: function renounceMinter(address target) returns()
   592  func (_AuthController *AuthControllerTransactor) RenounceMinter(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) {
   593  	return _AuthController.contract.Transact(opts, "renounceMinter", target)
   594  }
   595  
   596  // RenounceMinter is a paid mutator transaction binding the contract method 0x5f112c68.
   597  //
   598  // Solidity: function renounceMinter(address target) returns()
   599  func (_AuthController *AuthControllerSession) RenounceMinter(target common.Address) (*types.Transaction, error) {
   600  	return _AuthController.Contract.RenounceMinter(&_AuthController.TransactOpts, target)
   601  }
   602  
   603  // RenounceMinter is a paid mutator transaction binding the contract method 0x5f112c68.
   604  //
   605  // Solidity: function renounceMinter(address target) returns()
   606  func (_AuthController *AuthControllerTransactorSession) RenounceMinter(target common.Address) (*types.Transaction, error) {
   607  	return _AuthController.Contract.RenounceMinter(&_AuthController.TransactOpts, target)
   608  }
   609  
   610  // RenounceOwnership is a paid mutator transaction binding the contract method 0x38bf3cfa.
   611  //
   612  // Solidity: function renounceOwnership(address target) returns()
   613  func (_AuthController *AuthControllerTransactor) RenounceOwnership(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) {
   614  	return _AuthController.contract.Transact(opts, "renounceOwnership", target)
   615  }
   616  
   617  // RenounceOwnership is a paid mutator transaction binding the contract method 0x38bf3cfa.
   618  //
   619  // Solidity: function renounceOwnership(address target) returns()
   620  func (_AuthController *AuthControllerSession) RenounceOwnership(target common.Address) (*types.Transaction, error) {
   621  	return _AuthController.Contract.RenounceOwnership(&_AuthController.TransactOpts, target)
   622  }
   623  
   624  // RenounceOwnership is a paid mutator transaction binding the contract method 0x38bf3cfa.
   625  //
   626  // Solidity: function renounceOwnership(address target) returns()
   627  func (_AuthController *AuthControllerTransactorSession) RenounceOwnership(target common.Address) (*types.Transaction, error) {
   628  	return _AuthController.Contract.RenounceOwnership(&_AuthController.TransactOpts, target)
   629  }
   630  
   631  // RenounceOwnership0 is a paid mutator transaction binding the contract method 0x715018a6.
   632  //
   633  // Solidity: function renounceOwnership() returns()
   634  func (_AuthController *AuthControllerTransactor) RenounceOwnership0(opts *bind.TransactOpts) (*types.Transaction, error) {
   635  	return _AuthController.contract.Transact(opts, "renounceOwnership0")
   636  }
   637  
   638  // RenounceOwnership0 is a paid mutator transaction binding the contract method 0x715018a6.
   639  //
   640  // Solidity: function renounceOwnership() returns()
   641  func (_AuthController *AuthControllerSession) RenounceOwnership0() (*types.Transaction, error) {
   642  	return _AuthController.Contract.RenounceOwnership0(&_AuthController.TransactOpts)
   643  }
   644  
   645  // RenounceOwnership0 is a paid mutator transaction binding the contract method 0x715018a6.
   646  //
   647  // Solidity: function renounceOwnership() returns()
   648  func (_AuthController *AuthControllerTransactorSession) RenounceOwnership0() (*types.Transaction, error) {
   649  	return _AuthController.Contract.RenounceOwnership0(&_AuthController.TransactOpts)
   650  }
   651  
   652  // RenouncePauser is a paid mutator transaction binding the contract method 0x41eb24bb.
   653  //
   654  // Solidity: function renouncePauser(address target) returns()
   655  func (_AuthController *AuthControllerTransactor) RenouncePauser(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) {
   656  	return _AuthController.contract.Transact(opts, "renouncePauser", target)
   657  }
   658  
   659  // RenouncePauser is a paid mutator transaction binding the contract method 0x41eb24bb.
   660  //
   661  // Solidity: function renouncePauser(address target) returns()
   662  func (_AuthController *AuthControllerSession) RenouncePauser(target common.Address) (*types.Transaction, error) {
   663  	return _AuthController.Contract.RenouncePauser(&_AuthController.TransactOpts, target)
   664  }
   665  
   666  // RenouncePauser is a paid mutator transaction binding the contract method 0x41eb24bb.
   667  //
   668  // Solidity: function renouncePauser(address target) returns()
   669  func (_AuthController *AuthControllerTransactorSession) RenouncePauser(target common.Address) (*types.Transaction, error) {
   670  	return _AuthController.Contract.RenouncePauser(&_AuthController.TransactOpts, target)
   671  }
   672  
   673  // TransferOwnership is a paid mutator transaction binding the contract method 0x6d435421.
   674  //
   675  // Solidity: function transferOwnership(address target, address newOwner) returns()
   676  func (_AuthController *AuthControllerTransactor) TransferOwnership(opts *bind.TransactOpts, target common.Address, newOwner common.Address) (*types.Transaction, error) {
   677  	return _AuthController.contract.Transact(opts, "transferOwnership", target, newOwner)
   678  }
   679  
   680  // TransferOwnership is a paid mutator transaction binding the contract method 0x6d435421.
   681  //
   682  // Solidity: function transferOwnership(address target, address newOwner) returns()
   683  func (_AuthController *AuthControllerSession) TransferOwnership(target common.Address, newOwner common.Address) (*types.Transaction, error) {
   684  	return _AuthController.Contract.TransferOwnership(&_AuthController.TransactOpts, target, newOwner)
   685  }
   686  
   687  // TransferOwnership is a paid mutator transaction binding the contract method 0x6d435421.
   688  //
   689  // Solidity: function transferOwnership(address target, address newOwner) returns()
   690  func (_AuthController *AuthControllerTransactorSession) TransferOwnership(target common.Address, newOwner common.Address) (*types.Transaction, error) {
   691  	return _AuthController.Contract.TransferOwnership(&_AuthController.TransactOpts, target, newOwner)
   692  }
   693  
   694  // TransferOwnership0 is a paid mutator transaction binding the contract method 0xf2fde38b.
   695  //
   696  // Solidity: function transferOwnership(address newOwner) returns()
   697  func (_AuthController *AuthControllerTransactor) TransferOwnership0(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   698  	return _AuthController.contract.Transact(opts, "transferOwnership0", newOwner)
   699  }
   700  
   701  // TransferOwnership0 is a paid mutator transaction binding the contract method 0xf2fde38b.
   702  //
   703  // Solidity: function transferOwnership(address newOwner) returns()
   704  func (_AuthController *AuthControllerSession) TransferOwnership0(newOwner common.Address) (*types.Transaction, error) {
   705  	return _AuthController.Contract.TransferOwnership0(&_AuthController.TransactOpts, newOwner)
   706  }
   707  
   708  // TransferOwnership0 is a paid mutator transaction binding the contract method 0xf2fde38b.
   709  //
   710  // Solidity: function transferOwnership(address newOwner) returns()
   711  func (_AuthController *AuthControllerTransactorSession) TransferOwnership0(newOwner common.Address) (*types.Transaction, error) {
   712  	return _AuthController.Contract.TransferOwnership0(&_AuthController.TransactOpts, newOwner)
   713  }
   714  
   715  // AuthControllerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the AuthController contract.
   716  type AuthControllerOwnershipTransferredIterator struct {
   717  	Event *AuthControllerOwnershipTransferred // Event containing the contract specifics and raw log
   718  
   719  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   720  	event    string              // Event name to use for unpacking event data
   721  
   722  	logs chan types.Log        // Log channel receiving the found contract events
   723  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   724  	done bool                  // Whether the subscription completed delivering logs
   725  	fail error                 // Occurred error to stop iteration
   726  }
   727  
   728  // Next advances the iterator to the subsequent event, returning whether there
   729  // are any more events found. In case of a retrieval or parsing error, false is
   730  // returned and Error() can be queried for the exact failure.
   731  func (it *AuthControllerOwnershipTransferredIterator) Next() bool {
   732  	// If the iterator failed, stop iterating
   733  	if it.fail != nil {
   734  		return false
   735  	}
   736  	// If the iterator completed, deliver directly whatever's available
   737  	if it.done {
   738  		select {
   739  		case log := <-it.logs:
   740  			it.Event = new(AuthControllerOwnershipTransferred)
   741  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   742  				it.fail = err
   743  				return false
   744  			}
   745  			it.Event.Raw = log
   746  			return true
   747  
   748  		default:
   749  			return false
   750  		}
   751  	}
   752  	// Iterator still in progress, wait for either a data or an error event
   753  	select {
   754  	case log := <-it.logs:
   755  		it.Event = new(AuthControllerOwnershipTransferred)
   756  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   757  			it.fail = err
   758  			return false
   759  		}
   760  		it.Event.Raw = log
   761  		return true
   762  
   763  	case err := <-it.sub.Err():
   764  		it.done = true
   765  		it.fail = err
   766  		return it.Next()
   767  	}
   768  }
   769  
   770  // Error returns any retrieval or parsing error occurred during filtering.
   771  func (it *AuthControllerOwnershipTransferredIterator) Error() error {
   772  	return it.fail
   773  }
   774  
   775  // Close terminates the iteration process, releasing any pending underlying
   776  // resources.
   777  func (it *AuthControllerOwnershipTransferredIterator) Close() error {
   778  	it.sub.Unsubscribe()
   779  	return nil
   780  }
   781  
   782  // AuthControllerOwnershipTransferred represents a OwnershipTransferred event raised by the AuthController contract.
   783  type AuthControllerOwnershipTransferred struct {
   784  	PreviousOwner common.Address
   785  	NewOwner      common.Address
   786  	Raw           types.Log // Blockchain specific contextual infos
   787  }
   788  
   789  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   790  //
   791  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   792  func (_AuthController *AuthControllerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*AuthControllerOwnershipTransferredIterator, error) {
   793  
   794  	var previousOwnerRule []interface{}
   795  	for _, previousOwnerItem := range previousOwner {
   796  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   797  	}
   798  	var newOwnerRule []interface{}
   799  	for _, newOwnerItem := range newOwner {
   800  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   801  	}
   802  
   803  	logs, sub, err := _AuthController.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
   804  	if err != nil {
   805  		return nil, err
   806  	}
   807  	return &AuthControllerOwnershipTransferredIterator{contract: _AuthController.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
   808  }
   809  
   810  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   811  //
   812  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   813  func (_AuthController *AuthControllerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *AuthControllerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
   814  
   815  	var previousOwnerRule []interface{}
   816  	for _, previousOwnerItem := range previousOwner {
   817  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   818  	}
   819  	var newOwnerRule []interface{}
   820  	for _, newOwnerItem := range newOwner {
   821  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   822  	}
   823  
   824  	logs, sub, err := _AuthController.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
   825  	if err != nil {
   826  		return nil, err
   827  	}
   828  	return event.NewSubscription(func(quit <-chan struct{}) error {
   829  		defer sub.Unsubscribe()
   830  		for {
   831  			select {
   832  			case log := <-logs:
   833  				// New log arrived, parse the event and forward to the user
   834  				event := new(AuthControllerOwnershipTransferred)
   835  				if err := _AuthController.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
   836  					return err
   837  				}
   838  				event.Raw = log
   839  
   840  				select {
   841  				case sink <- event:
   842  				case err := <-sub.Err():
   843  					return err
   844  				case <-quit:
   845  					return nil
   846  				}
   847  			case err := <-sub.Err():
   848  				return err
   849  			case <-quit:
   850  				return nil
   851  			}
   852  		}
   853  	}), nil
   854  }
   855  
   856  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   857  //
   858  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   859  func (_AuthController *AuthControllerFilterer) ParseOwnershipTransferred(log types.Log) (*AuthControllerOwnershipTransferred, error) {
   860  	event := new(AuthControllerOwnershipTransferred)
   861  	if err := _AuthController.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
   862  		return nil, err
   863  	}
   864  	return event, nil
   865  }
   866  
   867  // AutoIncrementCoinageABI is the input ABI used to generate the binding from.
   868  const AutoIncrementCoinageABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"factorIncrement\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"v\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
   869  
   870  // AutoIncrementCoinageFuncSigs maps the 4-byte function signature to its string representation.
   871  var AutoIncrementCoinageFuncSigs = map[string]string{
   872  	"dd62ed3e": "allowance(address,address)",
   873  	"095ea7b3": "approve(address,uint256)",
   874  	"70a08231": "balanceOf(address)",
   875  	"313ce567": "decimals()",
   876  	"a457c2d7": "decreaseAllowance(address,uint256)",
   877  	"f41e60c5": "enableTransfers(bool)",
   878  	"54f703f8": "factor()",
   879  	"d4132ee2": "factorIncrement()",
   880  	"39509351": "increaseAllowance(address,uint256)",
   881  	"8f32d59b": "isOwner()",
   882  	"806b984f": "lastBlock()",
   883  	"06fdde03": "name()",
   884  	"8da5cb5b": "owner()",
   885  	"715018a6": "renounceOwnership()",
   886  	"95d89b41": "symbol()",
   887  	"18160ddd": "totalSupply()",
   888  	"a9059cbb": "transfer(address,uint256)",
   889  	"23b872dd": "transferFrom(address,address,uint256)",
   890  	"f2fde38b": "transferOwnership(address)",
   891  	"bef97c87": "transfersEnabled()",
   892  }
   893  
   894  // AutoIncrementCoinageBin is the compiled bytecode used for deploying new contracts.
   895  var AutoIncrementCoinageBin = "0x60806040523480156200001157600080fd5b50604051620014a4380380620014a4833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060909201519093509091508484601b620001ca6001600160e01b036200027916565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620002279060019060208601906200027e565b5081516200023d9060029060208501906200027e565b506003805460ff90921660ff19928316179055600795909555505060089190915543600955600a80549115159190921617905550620003209050565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002c157805160ff1916838001178555620002f1565b82800160010185558215620002f1579182015b82811115620002f1578251825591602001919060010190620002d4565b50620002ff92915062000303565b5090565b6200027b91905b80821115620002ff57600081556001016200030a565b61117480620003306000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063bef97c8711610071578063bef97c8714610354578063d4132ee21461035c578063dd62ed3e14610364578063f2fde38b14610392578063f41e60c5146103b85761012c565b80638da5cb5b146102c85780638f32d59b146102ec57806395d89b41146102f4578063a457c2d7146102fc578063a9059cbb146103285761012c565b806339509351116100f4578063395093511461025c57806354f703f81461028857806370a0823114610290578063715018a6146102b6578063806b984f146102c05761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b6101396103d7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b03813516906020013561046c565b604080519115158252519081900360200190f35b6101f661048a565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b0381358116916020810135909116906040013561049c565b61024661058d565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561027257600080fd5b506001600160a01b038135169060200135610596565b6101f66105ea565b6101f6600480360360208110156102a657600080fd5b50356001600160a01b03166105f7565b6102be610621565b005b6101f66106c4565b6102d06106ca565b604080516001600160a01b039092168252519081900360200190f35b6101da6106d9565b6101396106fd565b6101da6004803603604081101561031257600080fd5b506001600160a01b03813516906020013561075b565b6101da6004803603604081101561033e57600080fd5b506001600160a01b0381351690602001356107c9565b6101da610841565b6101f661084a565b6101f66004803603604081101561037a57600080fd5b506001600160a01b0381358116916020013516610850565b6102be600480360360208110156103a857600080fd5b50356001600160a01b031661087b565b6102be600480360360208110156103ce57600080fd5b503515156108e0565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104625780601f1061043757610100808354040283529160200191610462565b820191906000526020600020905b81548152906001019060200180831161044557829003601f168201915b5050505050905090565b600061048061047961094c565b8484610950565b5060015b92915050565b6000610497600654610a44565b905090565b60006104a66106ca565b6001600160a01b0316336001600160a01b031614806104c75750600a5460ff165b6105025760405162461bcd60e51b815260040180806020018281038252602a8152602001806110df602a913960400191505060405180910390fd5b61050d848484610a8a565b6105838461051961094c565b61057e85604051806060016040528060378152602001611109603791396001600160a01b038a1660009081526005602052604081209061055761094c565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610c0116565b610950565b5060019392505050565b60035460ff1690565b60006104806105a361094c565b8461057e85600560006105b461094c565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610c9816565b6000610497600754610a44565b6001600160a01b03811660009081526004602052604081205461061990610a44565b90505b919050565b6106296106d9565b61067a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60095490565b6000546001600160a01b031690565b600080546001600160a01b03166106ee61094c565b6001600160a01b031614905090565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156104625780601f1061043757610100808354040283529160200191610462565b600061048061076861094c565b8461057e85604051806060016040528060348152602001610fac603491396005600061079261094c565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610c0116565b60006107d36106ca565b6001600160a01b0316336001600160a01b031614806107f45750600a5460ff165b61082f5760405162461bcd60e51b815260040180806020018281038252602a8152602001806110df602a913960400191505060405180910390fd5b61048061083a61094c565b8484610a8a565b600a5460ff1690565b60085490565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6108836106d9565b6108d4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6108dd81610cf2565b50565b6108e86106d9565b610939576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b3390565b610958610d92565b6001600160a01b03831661099d5760405162461bcd60e51b81526004018080602001828103825260338152602001806110146033913960400191505060405180910390fd5b6001600160a01b0382166109e25760405162461bcd60e51b81526004018080602001828103825260318152602001806110476031913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610a535750600061061c565b600954430380610a7157610a6983600754610de4565b91505061061c565b610a8383610a7e83610e25565b610de4565b9392505050565b610a92610d92565b6001600160a01b038316610ad75760405162461bcd60e51b8152600401808060200182810382526034815260200180610fe06034913960400191505060405180910390fd5b6001600160a01b038216610b1c5760405162461bcd60e51b81526004018080602001828103825260328152602001806110786032913960400191505060405180910390fd5b6000610b2782610e39565b9050610b6c816040518060600160405280603581526020016110aa603591396001600160a01b038716600090815260046020526040902054919063ffffffff610c0116565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610ba1908263ffffffff610c9816565b6001600160a01b0380851660008181526004602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bea84610e47565b60408051918252519081900360200190a350505050565b60008184841115610c905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c55578181015183820152602001610c3d565b50505050905090810190601f168015610c825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610a83576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116610d375760405162461bcd60e51b8152600401808060200182810382526026815260200180610f866026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600954430380156108dd57610da681610e25565b60078190554360095560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce8000000610e16610e008585610e55565b60026b033b2e3c9fd0803ce80000005b04610eb8565b81610e1d57fe5b049392505050565b6000610619600754610a7e60085485610f07565b600061061982600754610f61565b600061061982600754610de4565b6000811580610e7057505080820282828281610e6d57fe5b04145b610484576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015610484576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600060028206610f23576b033b2e3c9fd0803ce8000000610f25565b825b90506002820491505b811561048457610f3e8384610de4565b92506002820615610f5657610f538184610de4565b90505b600282049150610f2e565b600081610e16610f7d856b033b2e3c9fd0803ce8000000610e55565b600285610e1056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a723158200f94aae16c81417fd1e96d2c2478fc62258f7d2d29707e6abdfc167f480b4d5364736f6c634300050c0032"
   896  
   897  // DeployAutoIncrementCoinage deploys a new Ethereum contract, binding an instance of AutoIncrementCoinage to it.
   898  func DeployAutoIncrementCoinage(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, factor *big.Int, factorIncrement *big.Int, transfersEnabled bool) (common.Address, *types.Transaction, *AutoIncrementCoinage, error) {
   899  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageABI))
   900  	if err != nil {
   901  		return common.Address{}, nil, nil, err
   902  	}
   903  
   904  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AutoIncrementCoinageBin), backend, name, symbol, factor, factorIncrement, transfersEnabled)
   905  	if err != nil {
   906  		return common.Address{}, nil, nil, err
   907  	}
   908  	return address, tx, &AutoIncrementCoinage{AutoIncrementCoinageCaller: AutoIncrementCoinageCaller{contract: contract}, AutoIncrementCoinageTransactor: AutoIncrementCoinageTransactor{contract: contract}, AutoIncrementCoinageFilterer: AutoIncrementCoinageFilterer{contract: contract}}, nil
   909  }
   910  
   911  // AutoIncrementCoinage is an auto generated Go binding around an Ethereum contract.
   912  type AutoIncrementCoinage struct {
   913  	AutoIncrementCoinageCaller     // Read-only binding to the contract
   914  	AutoIncrementCoinageTransactor // Write-only binding to the contract
   915  	AutoIncrementCoinageFilterer   // Log filterer for contract events
   916  }
   917  
   918  // AutoIncrementCoinageCaller is an auto generated read-only Go binding around an Ethereum contract.
   919  type AutoIncrementCoinageCaller struct {
   920  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   921  }
   922  
   923  // AutoIncrementCoinageTransactor is an auto generated write-only Go binding around an Ethereum contract.
   924  type AutoIncrementCoinageTransactor struct {
   925  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   926  }
   927  
   928  // AutoIncrementCoinageFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   929  type AutoIncrementCoinageFilterer struct {
   930  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   931  }
   932  
   933  // AutoIncrementCoinageSession is an auto generated Go binding around an Ethereum contract,
   934  // with pre-set call and transact options.
   935  type AutoIncrementCoinageSession struct {
   936  	Contract     *AutoIncrementCoinage // Generic contract binding to set the session for
   937  	CallOpts     bind.CallOpts         // Call options to use throughout this session
   938  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
   939  }
   940  
   941  // AutoIncrementCoinageCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   942  // with pre-set call options.
   943  type AutoIncrementCoinageCallerSession struct {
   944  	Contract *AutoIncrementCoinageCaller // Generic contract caller binding to set the session for
   945  	CallOpts bind.CallOpts               // Call options to use throughout this session
   946  }
   947  
   948  // AutoIncrementCoinageTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   949  // with pre-set transact options.
   950  type AutoIncrementCoinageTransactorSession struct {
   951  	Contract     *AutoIncrementCoinageTransactor // Generic contract transactor binding to set the session for
   952  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
   953  }
   954  
   955  // AutoIncrementCoinageRaw is an auto generated low-level Go binding around an Ethereum contract.
   956  type AutoIncrementCoinageRaw struct {
   957  	Contract *AutoIncrementCoinage // Generic contract binding to access the raw methods on
   958  }
   959  
   960  // AutoIncrementCoinageCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   961  type AutoIncrementCoinageCallerRaw struct {
   962  	Contract *AutoIncrementCoinageCaller // Generic read-only contract binding to access the raw methods on
   963  }
   964  
   965  // AutoIncrementCoinageTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   966  type AutoIncrementCoinageTransactorRaw struct {
   967  	Contract *AutoIncrementCoinageTransactor // Generic write-only contract binding to access the raw methods on
   968  }
   969  
   970  // NewAutoIncrementCoinage creates a new instance of AutoIncrementCoinage, bound to a specific deployed contract.
   971  func NewAutoIncrementCoinage(address common.Address, backend bind.ContractBackend) (*AutoIncrementCoinage, error) {
   972  	contract, err := bindAutoIncrementCoinage(address, backend, backend, backend)
   973  	if err != nil {
   974  		return nil, err
   975  	}
   976  	return &AutoIncrementCoinage{AutoIncrementCoinageCaller: AutoIncrementCoinageCaller{contract: contract}, AutoIncrementCoinageTransactor: AutoIncrementCoinageTransactor{contract: contract}, AutoIncrementCoinageFilterer: AutoIncrementCoinageFilterer{contract: contract}}, nil
   977  }
   978  
   979  // NewAutoIncrementCoinageCaller creates a new read-only instance of AutoIncrementCoinage, bound to a specific deployed contract.
   980  func NewAutoIncrementCoinageCaller(address common.Address, caller bind.ContractCaller) (*AutoIncrementCoinageCaller, error) {
   981  	contract, err := bindAutoIncrementCoinage(address, caller, nil, nil)
   982  	if err != nil {
   983  		return nil, err
   984  	}
   985  	return &AutoIncrementCoinageCaller{contract: contract}, nil
   986  }
   987  
   988  // NewAutoIncrementCoinageTransactor creates a new write-only instance of AutoIncrementCoinage, bound to a specific deployed contract.
   989  func NewAutoIncrementCoinageTransactor(address common.Address, transactor bind.ContractTransactor) (*AutoIncrementCoinageTransactor, error) {
   990  	contract, err := bindAutoIncrementCoinage(address, nil, transactor, nil)
   991  	if err != nil {
   992  		return nil, err
   993  	}
   994  	return &AutoIncrementCoinageTransactor{contract: contract}, nil
   995  }
   996  
   997  // NewAutoIncrementCoinageFilterer creates a new log filterer instance of AutoIncrementCoinage, bound to a specific deployed contract.
   998  func NewAutoIncrementCoinageFilterer(address common.Address, filterer bind.ContractFilterer) (*AutoIncrementCoinageFilterer, error) {
   999  	contract, err := bindAutoIncrementCoinage(address, nil, nil, filterer)
  1000  	if err != nil {
  1001  		return nil, err
  1002  	}
  1003  	return &AutoIncrementCoinageFilterer{contract: contract}, nil
  1004  }
  1005  
  1006  // bindAutoIncrementCoinage binds a generic wrapper to an already deployed contract.
  1007  func bindAutoIncrementCoinage(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1008  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageABI))
  1009  	if err != nil {
  1010  		return nil, err
  1011  	}
  1012  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1013  }
  1014  
  1015  // Call invokes the (constant) contract method with params as input values and
  1016  // sets the output to result. The result type might be a single field for simple
  1017  // returns, a slice of interfaces for anonymous returns and a struct for named
  1018  // returns.
  1019  func (_AutoIncrementCoinage *AutoIncrementCoinageRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1020  	return _AutoIncrementCoinage.Contract.AutoIncrementCoinageCaller.contract.Call(opts, result, method, params...)
  1021  }
  1022  
  1023  // Transfer initiates a plain transaction to move funds to the contract, calling
  1024  // its default method if one is available.
  1025  func (_AutoIncrementCoinage *AutoIncrementCoinageRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1026  	return _AutoIncrementCoinage.Contract.AutoIncrementCoinageTransactor.contract.Transfer(opts)
  1027  }
  1028  
  1029  // Transact invokes the (paid) contract method with params as input values.
  1030  func (_AutoIncrementCoinage *AutoIncrementCoinageRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1031  	return _AutoIncrementCoinage.Contract.AutoIncrementCoinageTransactor.contract.Transact(opts, method, params...)
  1032  }
  1033  
  1034  // Call invokes the (constant) contract method with params as input values and
  1035  // sets the output to result. The result type might be a single field for simple
  1036  // returns, a slice of interfaces for anonymous returns and a struct for named
  1037  // returns.
  1038  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1039  	return _AutoIncrementCoinage.Contract.contract.Call(opts, result, method, params...)
  1040  }
  1041  
  1042  // Transfer initiates a plain transaction to move funds to the contract, calling
  1043  // its default method if one is available.
  1044  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1045  	return _AutoIncrementCoinage.Contract.contract.Transfer(opts)
  1046  }
  1047  
  1048  // Transact invokes the (paid) contract method with params as input values.
  1049  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1050  	return _AutoIncrementCoinage.Contract.contract.Transact(opts, method, params...)
  1051  }
  1052  
  1053  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  1054  //
  1055  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  1056  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
  1057  	var (
  1058  		ret0 = new(*big.Int)
  1059  	)
  1060  	out := ret0
  1061  	err := _AutoIncrementCoinage.contract.Call(opts, out, "allowance", owner, spender)
  1062  	return *ret0, err
  1063  }
  1064  
  1065  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  1066  //
  1067  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  1068  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  1069  	return _AutoIncrementCoinage.Contract.Allowance(&_AutoIncrementCoinage.CallOpts, owner, spender)
  1070  }
  1071  
  1072  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  1073  //
  1074  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  1075  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  1076  	return _AutoIncrementCoinage.Contract.Allowance(&_AutoIncrementCoinage.CallOpts, owner, spender)
  1077  }
  1078  
  1079  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  1080  //
  1081  // Solidity: function balanceOf(address account) constant returns(uint256)
  1082  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  1083  	var (
  1084  		ret0 = new(*big.Int)
  1085  	)
  1086  	out := ret0
  1087  	err := _AutoIncrementCoinage.contract.Call(opts, out, "balanceOf", account)
  1088  	return *ret0, err
  1089  }
  1090  
  1091  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  1092  //
  1093  // Solidity: function balanceOf(address account) constant returns(uint256)
  1094  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) BalanceOf(account common.Address) (*big.Int, error) {
  1095  	return _AutoIncrementCoinage.Contract.BalanceOf(&_AutoIncrementCoinage.CallOpts, account)
  1096  }
  1097  
  1098  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  1099  //
  1100  // Solidity: function balanceOf(address account) constant returns(uint256)
  1101  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
  1102  	return _AutoIncrementCoinage.Contract.BalanceOf(&_AutoIncrementCoinage.CallOpts, account)
  1103  }
  1104  
  1105  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  1106  //
  1107  // Solidity: function decimals() constant returns(uint8)
  1108  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
  1109  	var (
  1110  		ret0 = new(uint8)
  1111  	)
  1112  	out := ret0
  1113  	err := _AutoIncrementCoinage.contract.Call(opts, out, "decimals")
  1114  	return *ret0, err
  1115  }
  1116  
  1117  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  1118  //
  1119  // Solidity: function decimals() constant returns(uint8)
  1120  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Decimals() (uint8, error) {
  1121  	return _AutoIncrementCoinage.Contract.Decimals(&_AutoIncrementCoinage.CallOpts)
  1122  }
  1123  
  1124  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  1125  //
  1126  // Solidity: function decimals() constant returns(uint8)
  1127  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) Decimals() (uint8, error) {
  1128  	return _AutoIncrementCoinage.Contract.Decimals(&_AutoIncrementCoinage.CallOpts)
  1129  }
  1130  
  1131  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  1132  //
  1133  // Solidity: function factor() constant returns(uint256)
  1134  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
  1135  	var (
  1136  		ret0 = new(*big.Int)
  1137  	)
  1138  	out := ret0
  1139  	err := _AutoIncrementCoinage.contract.Call(opts, out, "factor")
  1140  	return *ret0, err
  1141  }
  1142  
  1143  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  1144  //
  1145  // Solidity: function factor() constant returns(uint256)
  1146  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Factor() (*big.Int, error) {
  1147  	return _AutoIncrementCoinage.Contract.Factor(&_AutoIncrementCoinage.CallOpts)
  1148  }
  1149  
  1150  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  1151  //
  1152  // Solidity: function factor() constant returns(uint256)
  1153  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) Factor() (*big.Int, error) {
  1154  	return _AutoIncrementCoinage.Contract.Factor(&_AutoIncrementCoinage.CallOpts)
  1155  }
  1156  
  1157  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  1158  //
  1159  // Solidity: function factorIncrement() constant returns(uint256)
  1160  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
  1161  	var (
  1162  		ret0 = new(*big.Int)
  1163  	)
  1164  	out := ret0
  1165  	err := _AutoIncrementCoinage.contract.Call(opts, out, "factorIncrement")
  1166  	return *ret0, err
  1167  }
  1168  
  1169  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  1170  //
  1171  // Solidity: function factorIncrement() constant returns(uint256)
  1172  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) FactorIncrement() (*big.Int, error) {
  1173  	return _AutoIncrementCoinage.Contract.FactorIncrement(&_AutoIncrementCoinage.CallOpts)
  1174  }
  1175  
  1176  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  1177  //
  1178  // Solidity: function factorIncrement() constant returns(uint256)
  1179  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) FactorIncrement() (*big.Int, error) {
  1180  	return _AutoIncrementCoinage.Contract.FactorIncrement(&_AutoIncrementCoinage.CallOpts)
  1181  }
  1182  
  1183  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  1184  //
  1185  // Solidity: function isOwner() constant returns(bool)
  1186  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  1187  	var (
  1188  		ret0 = new(bool)
  1189  	)
  1190  	out := ret0
  1191  	err := _AutoIncrementCoinage.contract.Call(opts, out, "isOwner")
  1192  	return *ret0, err
  1193  }
  1194  
  1195  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  1196  //
  1197  // Solidity: function isOwner() constant returns(bool)
  1198  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) IsOwner() (bool, error) {
  1199  	return _AutoIncrementCoinage.Contract.IsOwner(&_AutoIncrementCoinage.CallOpts)
  1200  }
  1201  
  1202  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  1203  //
  1204  // Solidity: function isOwner() constant returns(bool)
  1205  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) IsOwner() (bool, error) {
  1206  	return _AutoIncrementCoinage.Contract.IsOwner(&_AutoIncrementCoinage.CallOpts)
  1207  }
  1208  
  1209  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  1210  //
  1211  // Solidity: function lastBlock() constant returns(uint256)
  1212  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) LastBlock(opts *bind.CallOpts) (*big.Int, error) {
  1213  	var (
  1214  		ret0 = new(*big.Int)
  1215  	)
  1216  	out := ret0
  1217  	err := _AutoIncrementCoinage.contract.Call(opts, out, "lastBlock")
  1218  	return *ret0, err
  1219  }
  1220  
  1221  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  1222  //
  1223  // Solidity: function lastBlock() constant returns(uint256)
  1224  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) LastBlock() (*big.Int, error) {
  1225  	return _AutoIncrementCoinage.Contract.LastBlock(&_AutoIncrementCoinage.CallOpts)
  1226  }
  1227  
  1228  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  1229  //
  1230  // Solidity: function lastBlock() constant returns(uint256)
  1231  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) LastBlock() (*big.Int, error) {
  1232  	return _AutoIncrementCoinage.Contract.LastBlock(&_AutoIncrementCoinage.CallOpts)
  1233  }
  1234  
  1235  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  1236  //
  1237  // Solidity: function name() constant returns(string)
  1238  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) Name(opts *bind.CallOpts) (string, error) {
  1239  	var (
  1240  		ret0 = new(string)
  1241  	)
  1242  	out := ret0
  1243  	err := _AutoIncrementCoinage.contract.Call(opts, out, "name")
  1244  	return *ret0, err
  1245  }
  1246  
  1247  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  1248  //
  1249  // Solidity: function name() constant returns(string)
  1250  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Name() (string, error) {
  1251  	return _AutoIncrementCoinage.Contract.Name(&_AutoIncrementCoinage.CallOpts)
  1252  }
  1253  
  1254  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  1255  //
  1256  // Solidity: function name() constant returns(string)
  1257  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) Name() (string, error) {
  1258  	return _AutoIncrementCoinage.Contract.Name(&_AutoIncrementCoinage.CallOpts)
  1259  }
  1260  
  1261  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1262  //
  1263  // Solidity: function owner() constant returns(address)
  1264  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  1265  	var (
  1266  		ret0 = new(common.Address)
  1267  	)
  1268  	out := ret0
  1269  	err := _AutoIncrementCoinage.contract.Call(opts, out, "owner")
  1270  	return *ret0, err
  1271  }
  1272  
  1273  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1274  //
  1275  // Solidity: function owner() constant returns(address)
  1276  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Owner() (common.Address, error) {
  1277  	return _AutoIncrementCoinage.Contract.Owner(&_AutoIncrementCoinage.CallOpts)
  1278  }
  1279  
  1280  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1281  //
  1282  // Solidity: function owner() constant returns(address)
  1283  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) Owner() (common.Address, error) {
  1284  	return _AutoIncrementCoinage.Contract.Owner(&_AutoIncrementCoinage.CallOpts)
  1285  }
  1286  
  1287  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  1288  //
  1289  // Solidity: function symbol() constant returns(string)
  1290  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) Symbol(opts *bind.CallOpts) (string, error) {
  1291  	var (
  1292  		ret0 = new(string)
  1293  	)
  1294  	out := ret0
  1295  	err := _AutoIncrementCoinage.contract.Call(opts, out, "symbol")
  1296  	return *ret0, err
  1297  }
  1298  
  1299  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  1300  //
  1301  // Solidity: function symbol() constant returns(string)
  1302  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Symbol() (string, error) {
  1303  	return _AutoIncrementCoinage.Contract.Symbol(&_AutoIncrementCoinage.CallOpts)
  1304  }
  1305  
  1306  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  1307  //
  1308  // Solidity: function symbol() constant returns(string)
  1309  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) Symbol() (string, error) {
  1310  	return _AutoIncrementCoinage.Contract.Symbol(&_AutoIncrementCoinage.CallOpts)
  1311  }
  1312  
  1313  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  1314  //
  1315  // Solidity: function totalSupply() constant returns(uint256)
  1316  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  1317  	var (
  1318  		ret0 = new(*big.Int)
  1319  	)
  1320  	out := ret0
  1321  	err := _AutoIncrementCoinage.contract.Call(opts, out, "totalSupply")
  1322  	return *ret0, err
  1323  }
  1324  
  1325  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  1326  //
  1327  // Solidity: function totalSupply() constant returns(uint256)
  1328  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) TotalSupply() (*big.Int, error) {
  1329  	return _AutoIncrementCoinage.Contract.TotalSupply(&_AutoIncrementCoinage.CallOpts)
  1330  }
  1331  
  1332  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  1333  //
  1334  // Solidity: function totalSupply() constant returns(uint256)
  1335  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) TotalSupply() (*big.Int, error) {
  1336  	return _AutoIncrementCoinage.Contract.TotalSupply(&_AutoIncrementCoinage.CallOpts)
  1337  }
  1338  
  1339  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  1340  //
  1341  // Solidity: function transfersEnabled() constant returns(bool)
  1342  func (_AutoIncrementCoinage *AutoIncrementCoinageCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
  1343  	var (
  1344  		ret0 = new(bool)
  1345  	)
  1346  	out := ret0
  1347  	err := _AutoIncrementCoinage.contract.Call(opts, out, "transfersEnabled")
  1348  	return *ret0, err
  1349  }
  1350  
  1351  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  1352  //
  1353  // Solidity: function transfersEnabled() constant returns(bool)
  1354  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) TransfersEnabled() (bool, error) {
  1355  	return _AutoIncrementCoinage.Contract.TransfersEnabled(&_AutoIncrementCoinage.CallOpts)
  1356  }
  1357  
  1358  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  1359  //
  1360  // Solidity: function transfersEnabled() constant returns(bool)
  1361  func (_AutoIncrementCoinage *AutoIncrementCoinageCallerSession) TransfersEnabled() (bool, error) {
  1362  	return _AutoIncrementCoinage.Contract.TransfersEnabled(&_AutoIncrementCoinage.CallOpts)
  1363  }
  1364  
  1365  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1366  //
  1367  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  1368  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
  1369  	return _AutoIncrementCoinage.contract.Transact(opts, "approve", spender, amount)
  1370  }
  1371  
  1372  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1373  //
  1374  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  1375  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  1376  	return _AutoIncrementCoinage.Contract.Approve(&_AutoIncrementCoinage.TransactOpts, spender, amount)
  1377  }
  1378  
  1379  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1380  //
  1381  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  1382  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  1383  	return _AutoIncrementCoinage.Contract.Approve(&_AutoIncrementCoinage.TransactOpts, spender, amount)
  1384  }
  1385  
  1386  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  1387  //
  1388  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  1389  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  1390  	return _AutoIncrementCoinage.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
  1391  }
  1392  
  1393  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  1394  //
  1395  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  1396  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  1397  	return _AutoIncrementCoinage.Contract.DecreaseAllowance(&_AutoIncrementCoinage.TransactOpts, spender, subtractedValue)
  1398  }
  1399  
  1400  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  1401  //
  1402  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  1403  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  1404  	return _AutoIncrementCoinage.Contract.DecreaseAllowance(&_AutoIncrementCoinage.TransactOpts, spender, subtractedValue)
  1405  }
  1406  
  1407  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  1408  //
  1409  // Solidity: function enableTransfers(bool v) returns()
  1410  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) EnableTransfers(opts *bind.TransactOpts, v bool) (*types.Transaction, error) {
  1411  	return _AutoIncrementCoinage.contract.Transact(opts, "enableTransfers", v)
  1412  }
  1413  
  1414  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  1415  //
  1416  // Solidity: function enableTransfers(bool v) returns()
  1417  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) EnableTransfers(v bool) (*types.Transaction, error) {
  1418  	return _AutoIncrementCoinage.Contract.EnableTransfers(&_AutoIncrementCoinage.TransactOpts, v)
  1419  }
  1420  
  1421  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  1422  //
  1423  // Solidity: function enableTransfers(bool v) returns()
  1424  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) EnableTransfers(v bool) (*types.Transaction, error) {
  1425  	return _AutoIncrementCoinage.Contract.EnableTransfers(&_AutoIncrementCoinage.TransactOpts, v)
  1426  }
  1427  
  1428  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  1429  //
  1430  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  1431  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  1432  	return _AutoIncrementCoinage.contract.Transact(opts, "increaseAllowance", spender, addedValue)
  1433  }
  1434  
  1435  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  1436  //
  1437  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  1438  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  1439  	return _AutoIncrementCoinage.Contract.IncreaseAllowance(&_AutoIncrementCoinage.TransactOpts, spender, addedValue)
  1440  }
  1441  
  1442  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  1443  //
  1444  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  1445  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  1446  	return _AutoIncrementCoinage.Contract.IncreaseAllowance(&_AutoIncrementCoinage.TransactOpts, spender, addedValue)
  1447  }
  1448  
  1449  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1450  //
  1451  // Solidity: function renounceOwnership() returns()
  1452  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1453  	return _AutoIncrementCoinage.contract.Transact(opts, "renounceOwnership")
  1454  }
  1455  
  1456  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1457  //
  1458  // Solidity: function renounceOwnership() returns()
  1459  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) RenounceOwnership() (*types.Transaction, error) {
  1460  	return _AutoIncrementCoinage.Contract.RenounceOwnership(&_AutoIncrementCoinage.TransactOpts)
  1461  }
  1462  
  1463  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1464  //
  1465  // Solidity: function renounceOwnership() returns()
  1466  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1467  	return _AutoIncrementCoinage.Contract.RenounceOwnership(&_AutoIncrementCoinage.TransactOpts)
  1468  }
  1469  
  1470  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  1471  //
  1472  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  1473  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  1474  	return _AutoIncrementCoinage.contract.Transact(opts, "transfer", recipient, amount)
  1475  }
  1476  
  1477  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  1478  //
  1479  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  1480  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  1481  	return _AutoIncrementCoinage.Contract.Transfer(&_AutoIncrementCoinage.TransactOpts, recipient, amount)
  1482  }
  1483  
  1484  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  1485  //
  1486  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  1487  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  1488  	return _AutoIncrementCoinage.Contract.Transfer(&_AutoIncrementCoinage.TransactOpts, recipient, amount)
  1489  }
  1490  
  1491  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1492  //
  1493  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  1494  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  1495  	return _AutoIncrementCoinage.contract.Transact(opts, "transferFrom", sender, recipient, amount)
  1496  }
  1497  
  1498  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1499  //
  1500  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  1501  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  1502  	return _AutoIncrementCoinage.Contract.TransferFrom(&_AutoIncrementCoinage.TransactOpts, sender, recipient, amount)
  1503  }
  1504  
  1505  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1506  //
  1507  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  1508  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  1509  	return _AutoIncrementCoinage.Contract.TransferFrom(&_AutoIncrementCoinage.TransactOpts, sender, recipient, amount)
  1510  }
  1511  
  1512  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1513  //
  1514  // Solidity: function transferOwnership(address newOwner) returns()
  1515  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1516  	return _AutoIncrementCoinage.contract.Transact(opts, "transferOwnership", newOwner)
  1517  }
  1518  
  1519  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1520  //
  1521  // Solidity: function transferOwnership(address newOwner) returns()
  1522  func (_AutoIncrementCoinage *AutoIncrementCoinageSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1523  	return _AutoIncrementCoinage.Contract.TransferOwnership(&_AutoIncrementCoinage.TransactOpts, newOwner)
  1524  }
  1525  
  1526  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1527  //
  1528  // Solidity: function transferOwnership(address newOwner) returns()
  1529  func (_AutoIncrementCoinage *AutoIncrementCoinageTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1530  	return _AutoIncrementCoinage.Contract.TransferOwnership(&_AutoIncrementCoinage.TransactOpts, newOwner)
  1531  }
  1532  
  1533  // AutoIncrementCoinageApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the AutoIncrementCoinage contract.
  1534  type AutoIncrementCoinageApprovalIterator struct {
  1535  	Event *AutoIncrementCoinageApproval // Event containing the contract specifics and raw log
  1536  
  1537  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1538  	event    string              // Event name to use for unpacking event data
  1539  
  1540  	logs chan types.Log        // Log channel receiving the found contract events
  1541  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1542  	done bool                  // Whether the subscription completed delivering logs
  1543  	fail error                 // Occurred error to stop iteration
  1544  }
  1545  
  1546  // Next advances the iterator to the subsequent event, returning whether there
  1547  // are any more events found. In case of a retrieval or parsing error, false is
  1548  // returned and Error() can be queried for the exact failure.
  1549  func (it *AutoIncrementCoinageApprovalIterator) Next() bool {
  1550  	// If the iterator failed, stop iterating
  1551  	if it.fail != nil {
  1552  		return false
  1553  	}
  1554  	// If the iterator completed, deliver directly whatever's available
  1555  	if it.done {
  1556  		select {
  1557  		case log := <-it.logs:
  1558  			it.Event = new(AutoIncrementCoinageApproval)
  1559  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1560  				it.fail = err
  1561  				return false
  1562  			}
  1563  			it.Event.Raw = log
  1564  			return true
  1565  
  1566  		default:
  1567  			return false
  1568  		}
  1569  	}
  1570  	// Iterator still in progress, wait for either a data or an error event
  1571  	select {
  1572  	case log := <-it.logs:
  1573  		it.Event = new(AutoIncrementCoinageApproval)
  1574  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1575  			it.fail = err
  1576  			return false
  1577  		}
  1578  		it.Event.Raw = log
  1579  		return true
  1580  
  1581  	case err := <-it.sub.Err():
  1582  		it.done = true
  1583  		it.fail = err
  1584  		return it.Next()
  1585  	}
  1586  }
  1587  
  1588  // Error returns any retrieval or parsing error occurred during filtering.
  1589  func (it *AutoIncrementCoinageApprovalIterator) Error() error {
  1590  	return it.fail
  1591  }
  1592  
  1593  // Close terminates the iteration process, releasing any pending underlying
  1594  // resources.
  1595  func (it *AutoIncrementCoinageApprovalIterator) Close() error {
  1596  	it.sub.Unsubscribe()
  1597  	return nil
  1598  }
  1599  
  1600  // AutoIncrementCoinageApproval represents a Approval event raised by the AutoIncrementCoinage contract.
  1601  type AutoIncrementCoinageApproval struct {
  1602  	Owner   common.Address
  1603  	Spender common.Address
  1604  	Value   *big.Int
  1605  	Raw     types.Log // Blockchain specific contextual infos
  1606  }
  1607  
  1608  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1609  //
  1610  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1611  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*AutoIncrementCoinageApprovalIterator, error) {
  1612  
  1613  	var ownerRule []interface{}
  1614  	for _, ownerItem := range owner {
  1615  		ownerRule = append(ownerRule, ownerItem)
  1616  	}
  1617  	var spenderRule []interface{}
  1618  	for _, spenderItem := range spender {
  1619  		spenderRule = append(spenderRule, spenderItem)
  1620  	}
  1621  
  1622  	logs, sub, err := _AutoIncrementCoinage.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  1623  	if err != nil {
  1624  		return nil, err
  1625  	}
  1626  	return &AutoIncrementCoinageApprovalIterator{contract: _AutoIncrementCoinage.contract, event: "Approval", logs: logs, sub: sub}, nil
  1627  }
  1628  
  1629  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1630  //
  1631  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1632  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  1633  
  1634  	var ownerRule []interface{}
  1635  	for _, ownerItem := range owner {
  1636  		ownerRule = append(ownerRule, ownerItem)
  1637  	}
  1638  	var spenderRule []interface{}
  1639  	for _, spenderItem := range spender {
  1640  		spenderRule = append(spenderRule, spenderItem)
  1641  	}
  1642  
  1643  	logs, sub, err := _AutoIncrementCoinage.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  1644  	if err != nil {
  1645  		return nil, err
  1646  	}
  1647  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1648  		defer sub.Unsubscribe()
  1649  		for {
  1650  			select {
  1651  			case log := <-logs:
  1652  				// New log arrived, parse the event and forward to the user
  1653  				event := new(AutoIncrementCoinageApproval)
  1654  				if err := _AutoIncrementCoinage.contract.UnpackLog(event, "Approval", log); err != nil {
  1655  					return err
  1656  				}
  1657  				event.Raw = log
  1658  
  1659  				select {
  1660  				case sink <- event:
  1661  				case err := <-sub.Err():
  1662  					return err
  1663  				case <-quit:
  1664  					return nil
  1665  				}
  1666  			case err := <-sub.Err():
  1667  				return err
  1668  			case <-quit:
  1669  				return nil
  1670  			}
  1671  		}
  1672  	}), nil
  1673  }
  1674  
  1675  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1676  //
  1677  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1678  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) ParseApproval(log types.Log) (*AutoIncrementCoinageApproval, error) {
  1679  	event := new(AutoIncrementCoinageApproval)
  1680  	if err := _AutoIncrementCoinage.contract.UnpackLog(event, "Approval", log); err != nil {
  1681  		return nil, err
  1682  	}
  1683  	return event, nil
  1684  }
  1685  
  1686  // AutoIncrementCoinageFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the AutoIncrementCoinage contract.
  1687  type AutoIncrementCoinageFactorIncreasedIterator struct {
  1688  	Event *AutoIncrementCoinageFactorIncreased // Event containing the contract specifics and raw log
  1689  
  1690  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1691  	event    string              // Event name to use for unpacking event data
  1692  
  1693  	logs chan types.Log        // Log channel receiving the found contract events
  1694  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1695  	done bool                  // Whether the subscription completed delivering logs
  1696  	fail error                 // Occurred error to stop iteration
  1697  }
  1698  
  1699  // Next advances the iterator to the subsequent event, returning whether there
  1700  // are any more events found. In case of a retrieval or parsing error, false is
  1701  // returned and Error() can be queried for the exact failure.
  1702  func (it *AutoIncrementCoinageFactorIncreasedIterator) Next() bool {
  1703  	// If the iterator failed, stop iterating
  1704  	if it.fail != nil {
  1705  		return false
  1706  	}
  1707  	// If the iterator completed, deliver directly whatever's available
  1708  	if it.done {
  1709  		select {
  1710  		case log := <-it.logs:
  1711  			it.Event = new(AutoIncrementCoinageFactorIncreased)
  1712  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1713  				it.fail = err
  1714  				return false
  1715  			}
  1716  			it.Event.Raw = log
  1717  			return true
  1718  
  1719  		default:
  1720  			return false
  1721  		}
  1722  	}
  1723  	// Iterator still in progress, wait for either a data or an error event
  1724  	select {
  1725  	case log := <-it.logs:
  1726  		it.Event = new(AutoIncrementCoinageFactorIncreased)
  1727  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1728  			it.fail = err
  1729  			return false
  1730  		}
  1731  		it.Event.Raw = log
  1732  		return true
  1733  
  1734  	case err := <-it.sub.Err():
  1735  		it.done = true
  1736  		it.fail = err
  1737  		return it.Next()
  1738  	}
  1739  }
  1740  
  1741  // Error returns any retrieval or parsing error occurred during filtering.
  1742  func (it *AutoIncrementCoinageFactorIncreasedIterator) Error() error {
  1743  	return it.fail
  1744  }
  1745  
  1746  // Close terminates the iteration process, releasing any pending underlying
  1747  // resources.
  1748  func (it *AutoIncrementCoinageFactorIncreasedIterator) Close() error {
  1749  	it.sub.Unsubscribe()
  1750  	return nil
  1751  }
  1752  
  1753  // AutoIncrementCoinageFactorIncreased represents a FactorIncreased event raised by the AutoIncrementCoinage contract.
  1754  type AutoIncrementCoinageFactorIncreased struct {
  1755  	Factor *big.Int
  1756  	Raw    types.Log // Blockchain specific contextual infos
  1757  }
  1758  
  1759  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  1760  //
  1761  // Solidity: event FactorIncreased(uint256 factor)
  1762  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*AutoIncrementCoinageFactorIncreasedIterator, error) {
  1763  
  1764  	logs, sub, err := _AutoIncrementCoinage.contract.FilterLogs(opts, "FactorIncreased")
  1765  	if err != nil {
  1766  		return nil, err
  1767  	}
  1768  	return &AutoIncrementCoinageFactorIncreasedIterator{contract: _AutoIncrementCoinage.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
  1769  }
  1770  
  1771  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  1772  //
  1773  // Solidity: event FactorIncreased(uint256 factor)
  1774  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageFactorIncreased) (event.Subscription, error) {
  1775  
  1776  	logs, sub, err := _AutoIncrementCoinage.contract.WatchLogs(opts, "FactorIncreased")
  1777  	if err != nil {
  1778  		return nil, err
  1779  	}
  1780  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1781  		defer sub.Unsubscribe()
  1782  		for {
  1783  			select {
  1784  			case log := <-logs:
  1785  				// New log arrived, parse the event and forward to the user
  1786  				event := new(AutoIncrementCoinageFactorIncreased)
  1787  				if err := _AutoIncrementCoinage.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  1788  					return err
  1789  				}
  1790  				event.Raw = log
  1791  
  1792  				select {
  1793  				case sink <- event:
  1794  				case err := <-sub.Err():
  1795  					return err
  1796  				case <-quit:
  1797  					return nil
  1798  				}
  1799  			case err := <-sub.Err():
  1800  				return err
  1801  			case <-quit:
  1802  				return nil
  1803  			}
  1804  		}
  1805  	}), nil
  1806  }
  1807  
  1808  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  1809  //
  1810  // Solidity: event FactorIncreased(uint256 factor)
  1811  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) ParseFactorIncreased(log types.Log) (*AutoIncrementCoinageFactorIncreased, error) {
  1812  	event := new(AutoIncrementCoinageFactorIncreased)
  1813  	if err := _AutoIncrementCoinage.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  1814  		return nil, err
  1815  	}
  1816  	return event, nil
  1817  }
  1818  
  1819  // AutoIncrementCoinageOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the AutoIncrementCoinage contract.
  1820  type AutoIncrementCoinageOwnershipTransferredIterator struct {
  1821  	Event *AutoIncrementCoinageOwnershipTransferred // Event containing the contract specifics and raw log
  1822  
  1823  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1824  	event    string              // Event name to use for unpacking event data
  1825  
  1826  	logs chan types.Log        // Log channel receiving the found contract events
  1827  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1828  	done bool                  // Whether the subscription completed delivering logs
  1829  	fail error                 // Occurred error to stop iteration
  1830  }
  1831  
  1832  // Next advances the iterator to the subsequent event, returning whether there
  1833  // are any more events found. In case of a retrieval or parsing error, false is
  1834  // returned and Error() can be queried for the exact failure.
  1835  func (it *AutoIncrementCoinageOwnershipTransferredIterator) Next() bool {
  1836  	// If the iterator failed, stop iterating
  1837  	if it.fail != nil {
  1838  		return false
  1839  	}
  1840  	// If the iterator completed, deliver directly whatever's available
  1841  	if it.done {
  1842  		select {
  1843  		case log := <-it.logs:
  1844  			it.Event = new(AutoIncrementCoinageOwnershipTransferred)
  1845  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1846  				it.fail = err
  1847  				return false
  1848  			}
  1849  			it.Event.Raw = log
  1850  			return true
  1851  
  1852  		default:
  1853  			return false
  1854  		}
  1855  	}
  1856  	// Iterator still in progress, wait for either a data or an error event
  1857  	select {
  1858  	case log := <-it.logs:
  1859  		it.Event = new(AutoIncrementCoinageOwnershipTransferred)
  1860  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1861  			it.fail = err
  1862  			return false
  1863  		}
  1864  		it.Event.Raw = log
  1865  		return true
  1866  
  1867  	case err := <-it.sub.Err():
  1868  		it.done = true
  1869  		it.fail = err
  1870  		return it.Next()
  1871  	}
  1872  }
  1873  
  1874  // Error returns any retrieval or parsing error occurred during filtering.
  1875  func (it *AutoIncrementCoinageOwnershipTransferredIterator) Error() error {
  1876  	return it.fail
  1877  }
  1878  
  1879  // Close terminates the iteration process, releasing any pending underlying
  1880  // resources.
  1881  func (it *AutoIncrementCoinageOwnershipTransferredIterator) Close() error {
  1882  	it.sub.Unsubscribe()
  1883  	return nil
  1884  }
  1885  
  1886  // AutoIncrementCoinageOwnershipTransferred represents a OwnershipTransferred event raised by the AutoIncrementCoinage contract.
  1887  type AutoIncrementCoinageOwnershipTransferred struct {
  1888  	PreviousOwner common.Address
  1889  	NewOwner      common.Address
  1890  	Raw           types.Log // Blockchain specific contextual infos
  1891  }
  1892  
  1893  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1894  //
  1895  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1896  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*AutoIncrementCoinageOwnershipTransferredIterator, error) {
  1897  
  1898  	var previousOwnerRule []interface{}
  1899  	for _, previousOwnerItem := range previousOwner {
  1900  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1901  	}
  1902  	var newOwnerRule []interface{}
  1903  	for _, newOwnerItem := range newOwner {
  1904  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1905  	}
  1906  
  1907  	logs, sub, err := _AutoIncrementCoinage.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1908  	if err != nil {
  1909  		return nil, err
  1910  	}
  1911  	return &AutoIncrementCoinageOwnershipTransferredIterator{contract: _AutoIncrementCoinage.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1912  }
  1913  
  1914  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1915  //
  1916  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1917  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1918  
  1919  	var previousOwnerRule []interface{}
  1920  	for _, previousOwnerItem := range previousOwner {
  1921  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1922  	}
  1923  	var newOwnerRule []interface{}
  1924  	for _, newOwnerItem := range newOwner {
  1925  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1926  	}
  1927  
  1928  	logs, sub, err := _AutoIncrementCoinage.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1929  	if err != nil {
  1930  		return nil, err
  1931  	}
  1932  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1933  		defer sub.Unsubscribe()
  1934  		for {
  1935  			select {
  1936  			case log := <-logs:
  1937  				// New log arrived, parse the event and forward to the user
  1938  				event := new(AutoIncrementCoinageOwnershipTransferred)
  1939  				if err := _AutoIncrementCoinage.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1940  					return err
  1941  				}
  1942  				event.Raw = log
  1943  
  1944  				select {
  1945  				case sink <- event:
  1946  				case err := <-sub.Err():
  1947  					return err
  1948  				case <-quit:
  1949  					return nil
  1950  				}
  1951  			case err := <-sub.Err():
  1952  				return err
  1953  			case <-quit:
  1954  				return nil
  1955  			}
  1956  		}
  1957  	}), nil
  1958  }
  1959  
  1960  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1961  //
  1962  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1963  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) ParseOwnershipTransferred(log types.Log) (*AutoIncrementCoinageOwnershipTransferred, error) {
  1964  	event := new(AutoIncrementCoinageOwnershipTransferred)
  1965  	if err := _AutoIncrementCoinage.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1966  		return nil, err
  1967  	}
  1968  	return event, nil
  1969  }
  1970  
  1971  // AutoIncrementCoinageTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the AutoIncrementCoinage contract.
  1972  type AutoIncrementCoinageTransferIterator struct {
  1973  	Event *AutoIncrementCoinageTransfer // Event containing the contract specifics and raw log
  1974  
  1975  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1976  	event    string              // Event name to use for unpacking event data
  1977  
  1978  	logs chan types.Log        // Log channel receiving the found contract events
  1979  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1980  	done bool                  // Whether the subscription completed delivering logs
  1981  	fail error                 // Occurred error to stop iteration
  1982  }
  1983  
  1984  // Next advances the iterator to the subsequent event, returning whether there
  1985  // are any more events found. In case of a retrieval or parsing error, false is
  1986  // returned and Error() can be queried for the exact failure.
  1987  func (it *AutoIncrementCoinageTransferIterator) Next() bool {
  1988  	// If the iterator failed, stop iterating
  1989  	if it.fail != nil {
  1990  		return false
  1991  	}
  1992  	// If the iterator completed, deliver directly whatever's available
  1993  	if it.done {
  1994  		select {
  1995  		case log := <-it.logs:
  1996  			it.Event = new(AutoIncrementCoinageTransfer)
  1997  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1998  				it.fail = err
  1999  				return false
  2000  			}
  2001  			it.Event.Raw = log
  2002  			return true
  2003  
  2004  		default:
  2005  			return false
  2006  		}
  2007  	}
  2008  	// Iterator still in progress, wait for either a data or an error event
  2009  	select {
  2010  	case log := <-it.logs:
  2011  		it.Event = new(AutoIncrementCoinageTransfer)
  2012  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2013  			it.fail = err
  2014  			return false
  2015  		}
  2016  		it.Event.Raw = log
  2017  		return true
  2018  
  2019  	case err := <-it.sub.Err():
  2020  		it.done = true
  2021  		it.fail = err
  2022  		return it.Next()
  2023  	}
  2024  }
  2025  
  2026  // Error returns any retrieval or parsing error occurred during filtering.
  2027  func (it *AutoIncrementCoinageTransferIterator) Error() error {
  2028  	return it.fail
  2029  }
  2030  
  2031  // Close terminates the iteration process, releasing any pending underlying
  2032  // resources.
  2033  func (it *AutoIncrementCoinageTransferIterator) Close() error {
  2034  	it.sub.Unsubscribe()
  2035  	return nil
  2036  }
  2037  
  2038  // AutoIncrementCoinageTransfer represents a Transfer event raised by the AutoIncrementCoinage contract.
  2039  type AutoIncrementCoinageTransfer struct {
  2040  	From  common.Address
  2041  	To    common.Address
  2042  	Value *big.Int
  2043  	Raw   types.Log // Blockchain specific contextual infos
  2044  }
  2045  
  2046  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2047  //
  2048  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  2049  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*AutoIncrementCoinageTransferIterator, error) {
  2050  
  2051  	var fromRule []interface{}
  2052  	for _, fromItem := range from {
  2053  		fromRule = append(fromRule, fromItem)
  2054  	}
  2055  	var toRule []interface{}
  2056  	for _, toItem := range to {
  2057  		toRule = append(toRule, toItem)
  2058  	}
  2059  
  2060  	logs, sub, err := _AutoIncrementCoinage.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  2061  	if err != nil {
  2062  		return nil, err
  2063  	}
  2064  	return &AutoIncrementCoinageTransferIterator{contract: _AutoIncrementCoinage.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2065  }
  2066  
  2067  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2068  //
  2069  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  2070  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  2071  
  2072  	var fromRule []interface{}
  2073  	for _, fromItem := range from {
  2074  		fromRule = append(fromRule, fromItem)
  2075  	}
  2076  	var toRule []interface{}
  2077  	for _, toItem := range to {
  2078  		toRule = append(toRule, toItem)
  2079  	}
  2080  
  2081  	logs, sub, err := _AutoIncrementCoinage.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  2082  	if err != nil {
  2083  		return nil, err
  2084  	}
  2085  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2086  		defer sub.Unsubscribe()
  2087  		for {
  2088  			select {
  2089  			case log := <-logs:
  2090  				// New log arrived, parse the event and forward to the user
  2091  				event := new(AutoIncrementCoinageTransfer)
  2092  				if err := _AutoIncrementCoinage.contract.UnpackLog(event, "Transfer", log); err != nil {
  2093  					return err
  2094  				}
  2095  				event.Raw = log
  2096  
  2097  				select {
  2098  				case sink <- event:
  2099  				case err := <-sub.Err():
  2100  					return err
  2101  				case <-quit:
  2102  					return nil
  2103  				}
  2104  			case err := <-sub.Err():
  2105  				return err
  2106  			case <-quit:
  2107  				return nil
  2108  			}
  2109  		}
  2110  	}), nil
  2111  }
  2112  
  2113  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2114  //
  2115  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  2116  func (_AutoIncrementCoinage *AutoIncrementCoinageFilterer) ParseTransfer(log types.Log) (*AutoIncrementCoinageTransfer, error) {
  2117  	event := new(AutoIncrementCoinageTransfer)
  2118  	if err := _AutoIncrementCoinage.contract.UnpackLog(event, "Transfer", log); err != nil {
  2119  		return nil, err
  2120  	}
  2121  	return event, nil
  2122  }
  2123  
  2124  // AutoIncrementCoinageMockABI is the input ABI used to generate the binding from.
  2125  const AutoIncrementCoinageMockABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"factorIncrement\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"v\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  2126  
  2127  // AutoIncrementCoinageMockFuncSigs maps the 4-byte function signature to its string representation.
  2128  var AutoIncrementCoinageMockFuncSigs = map[string]string{
  2129  	"983b2d56": "addMinter(address)",
  2130  	"dd62ed3e": "allowance(address,address)",
  2131  	"095ea7b3": "approve(address,uint256)",
  2132  	"70a08231": "balanceOf(address)",
  2133  	"42966c68": "burn(uint256)",
  2134  	"79cc6790": "burnFrom(address,uint256)",
  2135  	"313ce567": "decimals()",
  2136  	"a457c2d7": "decreaseAllowance(address,uint256)",
  2137  	"f41e60c5": "enableTransfers(bool)",
  2138  	"54f703f8": "factor()",
  2139  	"d4132ee2": "factorIncrement()",
  2140  	"39509351": "increaseAllowance(address,uint256)",
  2141  	"aa271e1a": "isMinter(address)",
  2142  	"8f32d59b": "isOwner()",
  2143  	"806b984f": "lastBlock()",
  2144  	"40c10f19": "mint(address,uint256)",
  2145  	"06fdde03": "name()",
  2146  	"8da5cb5b": "owner()",
  2147  	"98650275": "renounceMinter()",
  2148  	"715018a6": "renounceOwnership()",
  2149  	"95d89b41": "symbol()",
  2150  	"18160ddd": "totalSupply()",
  2151  	"a9059cbb": "transfer(address,uint256)",
  2152  	"23b872dd": "transferFrom(address,address,uint256)",
  2153  	"f2fde38b": "transferOwnership(address)",
  2154  	"bef97c87": "transfersEnabled()",
  2155  }
  2156  
  2157  // AutoIncrementCoinageMockBin is the compiled bytecode used for deploying new contracts.
  2158  var AutoIncrementCoinageMockBin = "0x60806040523480156200001157600080fd5b5060405162001e4938038062001e49833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208201519082015160609092015190935090915084848484848484601b620001e2620001d36001600160e01b03620002ad16565b6001600160e01b03620002b216565b620001f56001600160e01b03620002ad16565b600480546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620002569060059060208601906200042e565b5081516200026c9060069060208501906200042e565b506007805460ff90921660ff19928316179055600b959095555050600c9190915543600d55600e80549115159190921617905550620004d095505050505050565b335b90565b620002cd8160036200030460201b6200140b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200031982826001600160e01b03620003ab16565b156200038657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200040e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001e276022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047157805160ff1916838001178555620004a1565b82800160010185558215620004a1579182015b82811115620004a157825182559160200191906001019062000484565b50620004af929150620004b3565b5090565b620002af91905b80821115620004af5760008155600101620004ba565b61194780620004e06000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063a9059cbb11610097578063d4132ee211610071578063d4132ee214610487578063dd62ed3e1461048f578063f2fde38b146104bd578063f41e60c5146104e35761018e565b8063a9059cbb1461042d578063aa271e1a14610459578063bef97c871461047f5761018e565b80638da5cb5b1461039f5780638f32d59b146103c357806395d89b41146103cb578063983b2d56146103d357806398650275146103f9578063a457c2d7146104015761018e565b806340c10f191161014b57806370a082311161012557806370a082311461033d578063715018a61461036357806379cc67901461036b578063806b984f146103975761018e565b806340c10f19146102ea57806342966c681461031657806354f703f8146103355761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a578063313ce567146102a057806339509351146102be575b600080fd5b61019b610502565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b038135169060200135610598565b604080519115158252519081900360200190f35b6102586105b6565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b6102a86106b9565b6040805160ff9092168252519081900360200190f35b61023c600480360360408110156102d457600080fd5b506001600160a01b0381351690602001356106c2565b61023c6004803603604081101561030057600080fd5b506001600160a01b038135169060200135610716565b6103336004803603602081101561032c57600080fd5b503561076d565b005b610258610781565b6102586004803603602081101561035357600080fd5b50356001600160a01b031661078e565b6103336107b8565b6103336004803603604081101561038157600080fd5b506001600160a01b03813516906020013561085b565b610258610869565b6103a761086f565b604080516001600160a01b039092168252519081900360200190f35b61023c61087e565b61019b6108a4565b610333600480360360208110156103e957600080fd5b50356001600160a01b0316610905565b610333610954565b61023c6004803603604081101561041757600080fd5b506001600160a01b038135169060200135610966565b61023c6004803603604081101561044357600080fd5b506001600160a01b0381351690602001356109d4565b61023c6004803603602081101561046f57600080fd5b50356001600160a01b0316610a4c565b61023c610a5f565b610258610a68565b610258600480360360408110156104a557600080fd5b506001600160a01b0381358116916020013516610a6e565b610333600480360360208110156104d357600080fd5b50356001600160a01b0316610a99565b610333600480360360208110156104f957600080fd5b50351515610afb565b60058054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561058e5780601f106105635761010080835404028352916020019161058e565b820191906000526020600020905b81548152906001019060200180831161057157829003601f168201915b5050505050905090565b60006105ac6105a5610b67565b8484610b6b565b5060015b92915050565b60006105c3600a54610c5f565b905090565b60006105d261086f565b6001600160a01b0316336001600160a01b031614806105f35750600e5460ff165b61062e5760405162461bcd60e51b815260040180806020018281038252602a81526020018061181e602a913960400191505060405180910390fd5b610639848484610ca5565b6106af84610645610b67565b6106aa85604051806060016040528060378152602001611878603791396001600160a01b038a16600090815260096020526040812090610683610b67565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610e1c16565b610b6b565b5060019392505050565b60075460ff1690565b60006105ac6106cf610b67565b846106aa85600960006106e0610b67565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610eb316565b6000610728610723610b67565b610a4c565b6107635760405162461bcd60e51b81526004018080602001828103825260308152602001806117166030913960400191505060405180910390fd5b6105ac8383610f0d565b61077e610778610b67565b82611004565b50565b60006105c3600b54610c5f565b6001600160a01b0381166000908152600860205260408120546107b090610c5f565b90505b919050565b6107c061087e565b610811576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b6108658282611106565b5050565b600d5490565b6004546001600160a01b031690565b6004546000906001600160a01b0316610895610b67565b6001600160a01b031614905090565b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561058e5780601f106105635761010080835404028352916020019161058e565b610910610723610b67565b61094b5760405162461bcd60e51b81526004018080602001828103825260308152602001806117166030913960400191505060405180910390fd5b61077e8161116e565b61096461095f610b67565b6111b6565b565b60006105ac610973610b67565b846106aa8560405180606001604052806034815260200161164a603491396009600061099d610b67565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610e1c16565b60006109de61086f565b6001600160a01b0316336001600160a01b031614806109ff5750600e5460ff165b610a3a5760405162461bcd60e51b815260040180806020018281038252602a81526020018061181e602a913960400191505060405180910390fd5b6105ac610a45610b67565b8484610ca5565b60006107b060038363ffffffff6111fe16565b600e5460ff1690565b600c5490565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610aa161087e565b610af2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61077e81611265565b610b0361087e565b610b54576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600e805460ff1916911515919091179055565b3390565b610b73611306565b6001600160a01b038316610bb85760405162461bcd60e51b81526004018080602001828103825260338152602001806116b26033913960400191505060405180910390fd5b6001600160a01b038216610bfd5760405162461bcd60e51b81526004018080602001828103825260318152602001806116e56031913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610c6e575060006107b3565b600d54430380610c8c57610c8483600b54611358565b9150506107b3565b610c9e83610c9983611399565b611358565b9392505050565b610cad611306565b6001600160a01b038316610cf25760405162461bcd60e51b815260040180806020018281038252603481526020018061167e6034913960400191505060405180910390fd5b6001600160a01b038216610d375760405162461bcd60e51b81526004018080602001828103825260328152602001806117b76032913960400191505060405180910390fd5b6000610d42826113ad565b9050610d87816040518060600160405280603581526020016117e9603591396001600160a01b038716600090815260086020526040902054919063ffffffff610e1c16565b6001600160a01b038086166000908152600860205260408082209390935590851681522054610dbc908263ffffffff610eb316565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e05846113bb565b60408051918252519081900360200190a350505050565b60008184841115610eab5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e70578181015183820152602001610e58565b50505050905090810190601f168015610e9d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c9e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610f15611306565b6001600160a01b038216610f5a5760405162461bcd60e51b815260040180806020018281038252602e815260200180611767602e913960400191505060405180910390fd5b6000610f65826113ad565b600a54909150610f7b908263ffffffff610eb316565b600a556001600160a01b038316600090815260086020526040902054610fa7908263ffffffff610eb316565b6001600160a01b038416600081815260086020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fee846113bb565b60408051918252519081900360200190a3505050565b61100c611306565b6001600160a01b0382166110515760405162461bcd60e51b81526004018080602001828103825260308152602001806118486030913960400191505060405180910390fd5b600061105c826113ad565b90506110a1816040518060600160405280603181526020016118af603191396001600160a01b038616600090815260086020526040902054919063ffffffff610e1c16565b6001600160a01b038416600090815260086020526040902055600a546110cd908263ffffffff6113c916565b600a5560006001600160a01b0384167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fee846113bb565b61110e611306565b6111188282611004565b61112061087e565b6108655761086582611130610b67565b6106aa846040518060600160405280603381526020016118e0603391396001600160a01b038816600090815260096020526040812090610683610b67565b61117f60038263ffffffff61140b16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6111c760038263ffffffff61148c16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b0382166112455760405162461bcd60e51b81526004018080602001828103825260228152602001806117956022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0381166112aa5760405162461bcd60e51b81526004018080602001828103825260268152602001806116246026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600d544303801561077e5761131a81611399565b600b81905543600d5560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce800000061138a61137485856114f3565b60026b033b2e3c9fd0803ce80000005b04611556565b8161139157fe5b049392505050565b60006107b0600b54610c99600c54856115a5565b60006107b082600b546115ff565b60006107b082600b54611358565b6000610c9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e1c565b61141582826111fe565b15611467576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61149682826111fe565b6114d15760405162461bcd60e51b81526004018080602001828103825260218152602001806117466021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081158061150e5750508082028282828161150b57fe5b04145b6105b0576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b808201828110156105b0576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b6000600282066115c1576b033b2e3c9fd0803ce80000006115c3565b825b90506002820491505b81156105b0576115dc8384611358565b925060028206156115f4576115f18184611358565b90505b6002820491506115cc565b60008161138a61161b856b033b2e3c9fd0803ce80000006114f3565b60028561138456fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654175746f496e6372656d656e74436f696e6167653a206d696e7420746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a206275726e2066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a723158204c053a857c3ab98534a858f5d748a4b03e78a94d4fb1e1d76a8216191b87f08764736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373"
  2159  
  2160  // DeployAutoIncrementCoinageMock deploys a new Ethereum contract, binding an instance of AutoIncrementCoinageMock to it.
  2161  func DeployAutoIncrementCoinageMock(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, factor *big.Int, factorIncrement *big.Int, transfersEnabled bool) (common.Address, *types.Transaction, *AutoIncrementCoinageMock, error) {
  2162  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageMockABI))
  2163  	if err != nil {
  2164  		return common.Address{}, nil, nil, err
  2165  	}
  2166  
  2167  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AutoIncrementCoinageMockBin), backend, name, symbol, factor, factorIncrement, transfersEnabled)
  2168  	if err != nil {
  2169  		return common.Address{}, nil, nil, err
  2170  	}
  2171  	return address, tx, &AutoIncrementCoinageMock{AutoIncrementCoinageMockCaller: AutoIncrementCoinageMockCaller{contract: contract}, AutoIncrementCoinageMockTransactor: AutoIncrementCoinageMockTransactor{contract: contract}, AutoIncrementCoinageMockFilterer: AutoIncrementCoinageMockFilterer{contract: contract}}, nil
  2172  }
  2173  
  2174  // AutoIncrementCoinageMock is an auto generated Go binding around an Ethereum contract.
  2175  type AutoIncrementCoinageMock struct {
  2176  	AutoIncrementCoinageMockCaller     // Read-only binding to the contract
  2177  	AutoIncrementCoinageMockTransactor // Write-only binding to the contract
  2178  	AutoIncrementCoinageMockFilterer   // Log filterer for contract events
  2179  }
  2180  
  2181  // AutoIncrementCoinageMockCaller is an auto generated read-only Go binding around an Ethereum contract.
  2182  type AutoIncrementCoinageMockCaller struct {
  2183  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2184  }
  2185  
  2186  // AutoIncrementCoinageMockTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2187  type AutoIncrementCoinageMockTransactor struct {
  2188  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2189  }
  2190  
  2191  // AutoIncrementCoinageMockFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2192  type AutoIncrementCoinageMockFilterer struct {
  2193  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2194  }
  2195  
  2196  // AutoIncrementCoinageMockSession is an auto generated Go binding around an Ethereum contract,
  2197  // with pre-set call and transact options.
  2198  type AutoIncrementCoinageMockSession struct {
  2199  	Contract     *AutoIncrementCoinageMock // Generic contract binding to set the session for
  2200  	CallOpts     bind.CallOpts             // Call options to use throughout this session
  2201  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  2202  }
  2203  
  2204  // AutoIncrementCoinageMockCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2205  // with pre-set call options.
  2206  type AutoIncrementCoinageMockCallerSession struct {
  2207  	Contract *AutoIncrementCoinageMockCaller // Generic contract caller binding to set the session for
  2208  	CallOpts bind.CallOpts                   // Call options to use throughout this session
  2209  }
  2210  
  2211  // AutoIncrementCoinageMockTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2212  // with pre-set transact options.
  2213  type AutoIncrementCoinageMockTransactorSession struct {
  2214  	Contract     *AutoIncrementCoinageMockTransactor // Generic contract transactor binding to set the session for
  2215  	TransactOpts bind.TransactOpts                   // Transaction auth options to use throughout this session
  2216  }
  2217  
  2218  // AutoIncrementCoinageMockRaw is an auto generated low-level Go binding around an Ethereum contract.
  2219  type AutoIncrementCoinageMockRaw struct {
  2220  	Contract *AutoIncrementCoinageMock // Generic contract binding to access the raw methods on
  2221  }
  2222  
  2223  // AutoIncrementCoinageMockCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  2224  type AutoIncrementCoinageMockCallerRaw struct {
  2225  	Contract *AutoIncrementCoinageMockCaller // Generic read-only contract binding to access the raw methods on
  2226  }
  2227  
  2228  // AutoIncrementCoinageMockTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  2229  type AutoIncrementCoinageMockTransactorRaw struct {
  2230  	Contract *AutoIncrementCoinageMockTransactor // Generic write-only contract binding to access the raw methods on
  2231  }
  2232  
  2233  // NewAutoIncrementCoinageMock creates a new instance of AutoIncrementCoinageMock, bound to a specific deployed contract.
  2234  func NewAutoIncrementCoinageMock(address common.Address, backend bind.ContractBackend) (*AutoIncrementCoinageMock, error) {
  2235  	contract, err := bindAutoIncrementCoinageMock(address, backend, backend, backend)
  2236  	if err != nil {
  2237  		return nil, err
  2238  	}
  2239  	return &AutoIncrementCoinageMock{AutoIncrementCoinageMockCaller: AutoIncrementCoinageMockCaller{contract: contract}, AutoIncrementCoinageMockTransactor: AutoIncrementCoinageMockTransactor{contract: contract}, AutoIncrementCoinageMockFilterer: AutoIncrementCoinageMockFilterer{contract: contract}}, nil
  2240  }
  2241  
  2242  // NewAutoIncrementCoinageMockCaller creates a new read-only instance of AutoIncrementCoinageMock, bound to a specific deployed contract.
  2243  func NewAutoIncrementCoinageMockCaller(address common.Address, caller bind.ContractCaller) (*AutoIncrementCoinageMockCaller, error) {
  2244  	contract, err := bindAutoIncrementCoinageMock(address, caller, nil, nil)
  2245  	if err != nil {
  2246  		return nil, err
  2247  	}
  2248  	return &AutoIncrementCoinageMockCaller{contract: contract}, nil
  2249  }
  2250  
  2251  // NewAutoIncrementCoinageMockTransactor creates a new write-only instance of AutoIncrementCoinageMock, bound to a specific deployed contract.
  2252  func NewAutoIncrementCoinageMockTransactor(address common.Address, transactor bind.ContractTransactor) (*AutoIncrementCoinageMockTransactor, error) {
  2253  	contract, err := bindAutoIncrementCoinageMock(address, nil, transactor, nil)
  2254  	if err != nil {
  2255  		return nil, err
  2256  	}
  2257  	return &AutoIncrementCoinageMockTransactor{contract: contract}, nil
  2258  }
  2259  
  2260  // NewAutoIncrementCoinageMockFilterer creates a new log filterer instance of AutoIncrementCoinageMock, bound to a specific deployed contract.
  2261  func NewAutoIncrementCoinageMockFilterer(address common.Address, filterer bind.ContractFilterer) (*AutoIncrementCoinageMockFilterer, error) {
  2262  	contract, err := bindAutoIncrementCoinageMock(address, nil, nil, filterer)
  2263  	if err != nil {
  2264  		return nil, err
  2265  	}
  2266  	return &AutoIncrementCoinageMockFilterer{contract: contract}, nil
  2267  }
  2268  
  2269  // bindAutoIncrementCoinageMock binds a generic wrapper to an already deployed contract.
  2270  func bindAutoIncrementCoinageMock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2271  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageMockABI))
  2272  	if err != nil {
  2273  		return nil, err
  2274  	}
  2275  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2276  }
  2277  
  2278  // Call invokes the (constant) contract method with params as input values and
  2279  // sets the output to result. The result type might be a single field for simple
  2280  // returns, a slice of interfaces for anonymous returns and a struct for named
  2281  // returns.
  2282  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  2283  	return _AutoIncrementCoinageMock.Contract.AutoIncrementCoinageMockCaller.contract.Call(opts, result, method, params...)
  2284  }
  2285  
  2286  // Transfer initiates a plain transaction to move funds to the contract, calling
  2287  // its default method if one is available.
  2288  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2289  	return _AutoIncrementCoinageMock.Contract.AutoIncrementCoinageMockTransactor.contract.Transfer(opts)
  2290  }
  2291  
  2292  // Transact invokes the (paid) contract method with params as input values.
  2293  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2294  	return _AutoIncrementCoinageMock.Contract.AutoIncrementCoinageMockTransactor.contract.Transact(opts, method, params...)
  2295  }
  2296  
  2297  // Call invokes the (constant) contract method with params as input values and
  2298  // sets the output to result. The result type might be a single field for simple
  2299  // returns, a slice of interfaces for anonymous returns and a struct for named
  2300  // returns.
  2301  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  2302  	return _AutoIncrementCoinageMock.Contract.contract.Call(opts, result, method, params...)
  2303  }
  2304  
  2305  // Transfer initiates a plain transaction to move funds to the contract, calling
  2306  // its default method if one is available.
  2307  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2308  	return _AutoIncrementCoinageMock.Contract.contract.Transfer(opts)
  2309  }
  2310  
  2311  // Transact invokes the (paid) contract method with params as input values.
  2312  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2313  	return _AutoIncrementCoinageMock.Contract.contract.Transact(opts, method, params...)
  2314  }
  2315  
  2316  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  2317  //
  2318  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  2319  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
  2320  	var (
  2321  		ret0 = new(*big.Int)
  2322  	)
  2323  	out := ret0
  2324  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "allowance", owner, spender)
  2325  	return *ret0, err
  2326  }
  2327  
  2328  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  2329  //
  2330  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  2331  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  2332  	return _AutoIncrementCoinageMock.Contract.Allowance(&_AutoIncrementCoinageMock.CallOpts, owner, spender)
  2333  }
  2334  
  2335  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  2336  //
  2337  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  2338  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  2339  	return _AutoIncrementCoinageMock.Contract.Allowance(&_AutoIncrementCoinageMock.CallOpts, owner, spender)
  2340  }
  2341  
  2342  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2343  //
  2344  // Solidity: function balanceOf(address account) constant returns(uint256)
  2345  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  2346  	var (
  2347  		ret0 = new(*big.Int)
  2348  	)
  2349  	out := ret0
  2350  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "balanceOf", account)
  2351  	return *ret0, err
  2352  }
  2353  
  2354  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2355  //
  2356  // Solidity: function balanceOf(address account) constant returns(uint256)
  2357  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) BalanceOf(account common.Address) (*big.Int, error) {
  2358  	return _AutoIncrementCoinageMock.Contract.BalanceOf(&_AutoIncrementCoinageMock.CallOpts, account)
  2359  }
  2360  
  2361  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2362  //
  2363  // Solidity: function balanceOf(address account) constant returns(uint256)
  2364  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
  2365  	return _AutoIncrementCoinageMock.Contract.BalanceOf(&_AutoIncrementCoinageMock.CallOpts, account)
  2366  }
  2367  
  2368  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  2369  //
  2370  // Solidity: function decimals() constant returns(uint8)
  2371  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
  2372  	var (
  2373  		ret0 = new(uint8)
  2374  	)
  2375  	out := ret0
  2376  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "decimals")
  2377  	return *ret0, err
  2378  }
  2379  
  2380  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  2381  //
  2382  // Solidity: function decimals() constant returns(uint8)
  2383  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Decimals() (uint8, error) {
  2384  	return _AutoIncrementCoinageMock.Contract.Decimals(&_AutoIncrementCoinageMock.CallOpts)
  2385  }
  2386  
  2387  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  2388  //
  2389  // Solidity: function decimals() constant returns(uint8)
  2390  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) Decimals() (uint8, error) {
  2391  	return _AutoIncrementCoinageMock.Contract.Decimals(&_AutoIncrementCoinageMock.CallOpts)
  2392  }
  2393  
  2394  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  2395  //
  2396  // Solidity: function factor() constant returns(uint256)
  2397  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
  2398  	var (
  2399  		ret0 = new(*big.Int)
  2400  	)
  2401  	out := ret0
  2402  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "factor")
  2403  	return *ret0, err
  2404  }
  2405  
  2406  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  2407  //
  2408  // Solidity: function factor() constant returns(uint256)
  2409  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Factor() (*big.Int, error) {
  2410  	return _AutoIncrementCoinageMock.Contract.Factor(&_AutoIncrementCoinageMock.CallOpts)
  2411  }
  2412  
  2413  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  2414  //
  2415  // Solidity: function factor() constant returns(uint256)
  2416  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) Factor() (*big.Int, error) {
  2417  	return _AutoIncrementCoinageMock.Contract.Factor(&_AutoIncrementCoinageMock.CallOpts)
  2418  }
  2419  
  2420  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  2421  //
  2422  // Solidity: function factorIncrement() constant returns(uint256)
  2423  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
  2424  	var (
  2425  		ret0 = new(*big.Int)
  2426  	)
  2427  	out := ret0
  2428  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "factorIncrement")
  2429  	return *ret0, err
  2430  }
  2431  
  2432  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  2433  //
  2434  // Solidity: function factorIncrement() constant returns(uint256)
  2435  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) FactorIncrement() (*big.Int, error) {
  2436  	return _AutoIncrementCoinageMock.Contract.FactorIncrement(&_AutoIncrementCoinageMock.CallOpts)
  2437  }
  2438  
  2439  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  2440  //
  2441  // Solidity: function factorIncrement() constant returns(uint256)
  2442  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) FactorIncrement() (*big.Int, error) {
  2443  	return _AutoIncrementCoinageMock.Contract.FactorIncrement(&_AutoIncrementCoinageMock.CallOpts)
  2444  }
  2445  
  2446  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  2447  //
  2448  // Solidity: function isMinter(address account) constant returns(bool)
  2449  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
  2450  	var (
  2451  		ret0 = new(bool)
  2452  	)
  2453  	out := ret0
  2454  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "isMinter", account)
  2455  	return *ret0, err
  2456  }
  2457  
  2458  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  2459  //
  2460  // Solidity: function isMinter(address account) constant returns(bool)
  2461  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) IsMinter(account common.Address) (bool, error) {
  2462  	return _AutoIncrementCoinageMock.Contract.IsMinter(&_AutoIncrementCoinageMock.CallOpts, account)
  2463  }
  2464  
  2465  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  2466  //
  2467  // Solidity: function isMinter(address account) constant returns(bool)
  2468  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) IsMinter(account common.Address) (bool, error) {
  2469  	return _AutoIncrementCoinageMock.Contract.IsMinter(&_AutoIncrementCoinageMock.CallOpts, account)
  2470  }
  2471  
  2472  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  2473  //
  2474  // Solidity: function isOwner() constant returns(bool)
  2475  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  2476  	var (
  2477  		ret0 = new(bool)
  2478  	)
  2479  	out := ret0
  2480  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "isOwner")
  2481  	return *ret0, err
  2482  }
  2483  
  2484  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  2485  //
  2486  // Solidity: function isOwner() constant returns(bool)
  2487  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) IsOwner() (bool, error) {
  2488  	return _AutoIncrementCoinageMock.Contract.IsOwner(&_AutoIncrementCoinageMock.CallOpts)
  2489  }
  2490  
  2491  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  2492  //
  2493  // Solidity: function isOwner() constant returns(bool)
  2494  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) IsOwner() (bool, error) {
  2495  	return _AutoIncrementCoinageMock.Contract.IsOwner(&_AutoIncrementCoinageMock.CallOpts)
  2496  }
  2497  
  2498  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  2499  //
  2500  // Solidity: function lastBlock() constant returns(uint256)
  2501  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) LastBlock(opts *bind.CallOpts) (*big.Int, error) {
  2502  	var (
  2503  		ret0 = new(*big.Int)
  2504  	)
  2505  	out := ret0
  2506  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "lastBlock")
  2507  	return *ret0, err
  2508  }
  2509  
  2510  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  2511  //
  2512  // Solidity: function lastBlock() constant returns(uint256)
  2513  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) LastBlock() (*big.Int, error) {
  2514  	return _AutoIncrementCoinageMock.Contract.LastBlock(&_AutoIncrementCoinageMock.CallOpts)
  2515  }
  2516  
  2517  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  2518  //
  2519  // Solidity: function lastBlock() constant returns(uint256)
  2520  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) LastBlock() (*big.Int, error) {
  2521  	return _AutoIncrementCoinageMock.Contract.LastBlock(&_AutoIncrementCoinageMock.CallOpts)
  2522  }
  2523  
  2524  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  2525  //
  2526  // Solidity: function name() constant returns(string)
  2527  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) Name(opts *bind.CallOpts) (string, error) {
  2528  	var (
  2529  		ret0 = new(string)
  2530  	)
  2531  	out := ret0
  2532  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "name")
  2533  	return *ret0, err
  2534  }
  2535  
  2536  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  2537  //
  2538  // Solidity: function name() constant returns(string)
  2539  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Name() (string, error) {
  2540  	return _AutoIncrementCoinageMock.Contract.Name(&_AutoIncrementCoinageMock.CallOpts)
  2541  }
  2542  
  2543  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  2544  //
  2545  // Solidity: function name() constant returns(string)
  2546  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) Name() (string, error) {
  2547  	return _AutoIncrementCoinageMock.Contract.Name(&_AutoIncrementCoinageMock.CallOpts)
  2548  }
  2549  
  2550  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2551  //
  2552  // Solidity: function owner() constant returns(address)
  2553  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  2554  	var (
  2555  		ret0 = new(common.Address)
  2556  	)
  2557  	out := ret0
  2558  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "owner")
  2559  	return *ret0, err
  2560  }
  2561  
  2562  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2563  //
  2564  // Solidity: function owner() constant returns(address)
  2565  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Owner() (common.Address, error) {
  2566  	return _AutoIncrementCoinageMock.Contract.Owner(&_AutoIncrementCoinageMock.CallOpts)
  2567  }
  2568  
  2569  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2570  //
  2571  // Solidity: function owner() constant returns(address)
  2572  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) Owner() (common.Address, error) {
  2573  	return _AutoIncrementCoinageMock.Contract.Owner(&_AutoIncrementCoinageMock.CallOpts)
  2574  }
  2575  
  2576  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  2577  //
  2578  // Solidity: function symbol() constant returns(string)
  2579  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) Symbol(opts *bind.CallOpts) (string, error) {
  2580  	var (
  2581  		ret0 = new(string)
  2582  	)
  2583  	out := ret0
  2584  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "symbol")
  2585  	return *ret0, err
  2586  }
  2587  
  2588  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  2589  //
  2590  // Solidity: function symbol() constant returns(string)
  2591  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Symbol() (string, error) {
  2592  	return _AutoIncrementCoinageMock.Contract.Symbol(&_AutoIncrementCoinageMock.CallOpts)
  2593  }
  2594  
  2595  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  2596  //
  2597  // Solidity: function symbol() constant returns(string)
  2598  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) Symbol() (string, error) {
  2599  	return _AutoIncrementCoinageMock.Contract.Symbol(&_AutoIncrementCoinageMock.CallOpts)
  2600  }
  2601  
  2602  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2603  //
  2604  // Solidity: function totalSupply() constant returns(uint256)
  2605  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  2606  	var (
  2607  		ret0 = new(*big.Int)
  2608  	)
  2609  	out := ret0
  2610  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "totalSupply")
  2611  	return *ret0, err
  2612  }
  2613  
  2614  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2615  //
  2616  // Solidity: function totalSupply() constant returns(uint256)
  2617  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) TotalSupply() (*big.Int, error) {
  2618  	return _AutoIncrementCoinageMock.Contract.TotalSupply(&_AutoIncrementCoinageMock.CallOpts)
  2619  }
  2620  
  2621  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2622  //
  2623  // Solidity: function totalSupply() constant returns(uint256)
  2624  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) TotalSupply() (*big.Int, error) {
  2625  	return _AutoIncrementCoinageMock.Contract.TotalSupply(&_AutoIncrementCoinageMock.CallOpts)
  2626  }
  2627  
  2628  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  2629  //
  2630  // Solidity: function transfersEnabled() constant returns(bool)
  2631  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
  2632  	var (
  2633  		ret0 = new(bool)
  2634  	)
  2635  	out := ret0
  2636  	err := _AutoIncrementCoinageMock.contract.Call(opts, out, "transfersEnabled")
  2637  	return *ret0, err
  2638  }
  2639  
  2640  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  2641  //
  2642  // Solidity: function transfersEnabled() constant returns(bool)
  2643  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) TransfersEnabled() (bool, error) {
  2644  	return _AutoIncrementCoinageMock.Contract.TransfersEnabled(&_AutoIncrementCoinageMock.CallOpts)
  2645  }
  2646  
  2647  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  2648  //
  2649  // Solidity: function transfersEnabled() constant returns(bool)
  2650  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockCallerSession) TransfersEnabled() (bool, error) {
  2651  	return _AutoIncrementCoinageMock.Contract.TransfersEnabled(&_AutoIncrementCoinageMock.CallOpts)
  2652  }
  2653  
  2654  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  2655  //
  2656  // Solidity: function addMinter(address account) returns()
  2657  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
  2658  	return _AutoIncrementCoinageMock.contract.Transact(opts, "addMinter", account)
  2659  }
  2660  
  2661  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  2662  //
  2663  // Solidity: function addMinter(address account) returns()
  2664  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) AddMinter(account common.Address) (*types.Transaction, error) {
  2665  	return _AutoIncrementCoinageMock.Contract.AddMinter(&_AutoIncrementCoinageMock.TransactOpts, account)
  2666  }
  2667  
  2668  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  2669  //
  2670  // Solidity: function addMinter(address account) returns()
  2671  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
  2672  	return _AutoIncrementCoinageMock.Contract.AddMinter(&_AutoIncrementCoinageMock.TransactOpts, account)
  2673  }
  2674  
  2675  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2676  //
  2677  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  2678  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
  2679  	return _AutoIncrementCoinageMock.contract.Transact(opts, "approve", spender, amount)
  2680  }
  2681  
  2682  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2683  //
  2684  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  2685  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  2686  	return _AutoIncrementCoinageMock.Contract.Approve(&_AutoIncrementCoinageMock.TransactOpts, spender, amount)
  2687  }
  2688  
  2689  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2690  //
  2691  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  2692  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  2693  	return _AutoIncrementCoinageMock.Contract.Approve(&_AutoIncrementCoinageMock.TransactOpts, spender, amount)
  2694  }
  2695  
  2696  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  2697  //
  2698  // Solidity: function burn(uint256 amount) returns()
  2699  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
  2700  	return _AutoIncrementCoinageMock.contract.Transact(opts, "burn", amount)
  2701  }
  2702  
  2703  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  2704  //
  2705  // Solidity: function burn(uint256 amount) returns()
  2706  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Burn(amount *big.Int) (*types.Transaction, error) {
  2707  	return _AutoIncrementCoinageMock.Contract.Burn(&_AutoIncrementCoinageMock.TransactOpts, amount)
  2708  }
  2709  
  2710  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  2711  //
  2712  // Solidity: function burn(uint256 amount) returns()
  2713  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) {
  2714  	return _AutoIncrementCoinageMock.Contract.Burn(&_AutoIncrementCoinageMock.TransactOpts, amount)
  2715  }
  2716  
  2717  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
  2718  //
  2719  // Solidity: function burnFrom(address account, uint256 amount) returns()
  2720  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
  2721  	return _AutoIncrementCoinageMock.contract.Transact(opts, "burnFrom", account, amount)
  2722  }
  2723  
  2724  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
  2725  //
  2726  // Solidity: function burnFrom(address account, uint256 amount) returns()
  2727  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
  2728  	return _AutoIncrementCoinageMock.Contract.BurnFrom(&_AutoIncrementCoinageMock.TransactOpts, account, amount)
  2729  }
  2730  
  2731  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
  2732  //
  2733  // Solidity: function burnFrom(address account, uint256 amount) returns()
  2734  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
  2735  	return _AutoIncrementCoinageMock.Contract.BurnFrom(&_AutoIncrementCoinageMock.TransactOpts, account, amount)
  2736  }
  2737  
  2738  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  2739  //
  2740  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  2741  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  2742  	return _AutoIncrementCoinageMock.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
  2743  }
  2744  
  2745  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  2746  //
  2747  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  2748  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  2749  	return _AutoIncrementCoinageMock.Contract.DecreaseAllowance(&_AutoIncrementCoinageMock.TransactOpts, spender, subtractedValue)
  2750  }
  2751  
  2752  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  2753  //
  2754  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  2755  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  2756  	return _AutoIncrementCoinageMock.Contract.DecreaseAllowance(&_AutoIncrementCoinageMock.TransactOpts, spender, subtractedValue)
  2757  }
  2758  
  2759  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  2760  //
  2761  // Solidity: function enableTransfers(bool v) returns()
  2762  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) EnableTransfers(opts *bind.TransactOpts, v bool) (*types.Transaction, error) {
  2763  	return _AutoIncrementCoinageMock.contract.Transact(opts, "enableTransfers", v)
  2764  }
  2765  
  2766  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  2767  //
  2768  // Solidity: function enableTransfers(bool v) returns()
  2769  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) EnableTransfers(v bool) (*types.Transaction, error) {
  2770  	return _AutoIncrementCoinageMock.Contract.EnableTransfers(&_AutoIncrementCoinageMock.TransactOpts, v)
  2771  }
  2772  
  2773  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  2774  //
  2775  // Solidity: function enableTransfers(bool v) returns()
  2776  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) EnableTransfers(v bool) (*types.Transaction, error) {
  2777  	return _AutoIncrementCoinageMock.Contract.EnableTransfers(&_AutoIncrementCoinageMock.TransactOpts, v)
  2778  }
  2779  
  2780  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  2781  //
  2782  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  2783  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  2784  	return _AutoIncrementCoinageMock.contract.Transact(opts, "increaseAllowance", spender, addedValue)
  2785  }
  2786  
  2787  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  2788  //
  2789  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  2790  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  2791  	return _AutoIncrementCoinageMock.Contract.IncreaseAllowance(&_AutoIncrementCoinageMock.TransactOpts, spender, addedValue)
  2792  }
  2793  
  2794  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  2795  //
  2796  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  2797  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  2798  	return _AutoIncrementCoinageMock.Contract.IncreaseAllowance(&_AutoIncrementCoinageMock.TransactOpts, spender, addedValue)
  2799  }
  2800  
  2801  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  2802  //
  2803  // Solidity: function mint(address account, uint256 amount) returns(bool)
  2804  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
  2805  	return _AutoIncrementCoinageMock.contract.Transact(opts, "mint", account, amount)
  2806  }
  2807  
  2808  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  2809  //
  2810  // Solidity: function mint(address account, uint256 amount) returns(bool)
  2811  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
  2812  	return _AutoIncrementCoinageMock.Contract.Mint(&_AutoIncrementCoinageMock.TransactOpts, account, amount)
  2813  }
  2814  
  2815  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  2816  //
  2817  // Solidity: function mint(address account, uint256 amount) returns(bool)
  2818  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
  2819  	return _AutoIncrementCoinageMock.Contract.Mint(&_AutoIncrementCoinageMock.TransactOpts, account, amount)
  2820  }
  2821  
  2822  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  2823  //
  2824  // Solidity: function renounceMinter() returns()
  2825  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
  2826  	return _AutoIncrementCoinageMock.contract.Transact(opts, "renounceMinter")
  2827  }
  2828  
  2829  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  2830  //
  2831  // Solidity: function renounceMinter() returns()
  2832  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) RenounceMinter() (*types.Transaction, error) {
  2833  	return _AutoIncrementCoinageMock.Contract.RenounceMinter(&_AutoIncrementCoinageMock.TransactOpts)
  2834  }
  2835  
  2836  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  2837  //
  2838  // Solidity: function renounceMinter() returns()
  2839  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) RenounceMinter() (*types.Transaction, error) {
  2840  	return _AutoIncrementCoinageMock.Contract.RenounceMinter(&_AutoIncrementCoinageMock.TransactOpts)
  2841  }
  2842  
  2843  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  2844  //
  2845  // Solidity: function renounceOwnership() returns()
  2846  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  2847  	return _AutoIncrementCoinageMock.contract.Transact(opts, "renounceOwnership")
  2848  }
  2849  
  2850  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  2851  //
  2852  // Solidity: function renounceOwnership() returns()
  2853  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) RenounceOwnership() (*types.Transaction, error) {
  2854  	return _AutoIncrementCoinageMock.Contract.RenounceOwnership(&_AutoIncrementCoinageMock.TransactOpts)
  2855  }
  2856  
  2857  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  2858  //
  2859  // Solidity: function renounceOwnership() returns()
  2860  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  2861  	return _AutoIncrementCoinageMock.Contract.RenounceOwnership(&_AutoIncrementCoinageMock.TransactOpts)
  2862  }
  2863  
  2864  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2865  //
  2866  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  2867  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2868  	return _AutoIncrementCoinageMock.contract.Transact(opts, "transfer", recipient, amount)
  2869  }
  2870  
  2871  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2872  //
  2873  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  2874  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2875  	return _AutoIncrementCoinageMock.Contract.Transfer(&_AutoIncrementCoinageMock.TransactOpts, recipient, amount)
  2876  }
  2877  
  2878  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2879  //
  2880  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  2881  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2882  	return _AutoIncrementCoinageMock.Contract.Transfer(&_AutoIncrementCoinageMock.TransactOpts, recipient, amount)
  2883  }
  2884  
  2885  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2886  //
  2887  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  2888  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2889  	return _AutoIncrementCoinageMock.contract.Transact(opts, "transferFrom", sender, recipient, amount)
  2890  }
  2891  
  2892  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2893  //
  2894  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  2895  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2896  	return _AutoIncrementCoinageMock.Contract.TransferFrom(&_AutoIncrementCoinageMock.TransactOpts, sender, recipient, amount)
  2897  }
  2898  
  2899  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2900  //
  2901  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  2902  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2903  	return _AutoIncrementCoinageMock.Contract.TransferFrom(&_AutoIncrementCoinageMock.TransactOpts, sender, recipient, amount)
  2904  }
  2905  
  2906  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2907  //
  2908  // Solidity: function transferOwnership(address newOwner) returns()
  2909  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  2910  	return _AutoIncrementCoinageMock.contract.Transact(opts, "transferOwnership", newOwner)
  2911  }
  2912  
  2913  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2914  //
  2915  // Solidity: function transferOwnership(address newOwner) returns()
  2916  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2917  	return _AutoIncrementCoinageMock.Contract.TransferOwnership(&_AutoIncrementCoinageMock.TransactOpts, newOwner)
  2918  }
  2919  
  2920  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2921  //
  2922  // Solidity: function transferOwnership(address newOwner) returns()
  2923  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2924  	return _AutoIncrementCoinageMock.Contract.TransferOwnership(&_AutoIncrementCoinageMock.TransactOpts, newOwner)
  2925  }
  2926  
  2927  // AutoIncrementCoinageMockApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the AutoIncrementCoinageMock contract.
  2928  type AutoIncrementCoinageMockApprovalIterator struct {
  2929  	Event *AutoIncrementCoinageMockApproval // Event containing the contract specifics and raw log
  2930  
  2931  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2932  	event    string              // Event name to use for unpacking event data
  2933  
  2934  	logs chan types.Log        // Log channel receiving the found contract events
  2935  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2936  	done bool                  // Whether the subscription completed delivering logs
  2937  	fail error                 // Occurred error to stop iteration
  2938  }
  2939  
  2940  // Next advances the iterator to the subsequent event, returning whether there
  2941  // are any more events found. In case of a retrieval or parsing error, false is
  2942  // returned and Error() can be queried for the exact failure.
  2943  func (it *AutoIncrementCoinageMockApprovalIterator) Next() bool {
  2944  	// If the iterator failed, stop iterating
  2945  	if it.fail != nil {
  2946  		return false
  2947  	}
  2948  	// If the iterator completed, deliver directly whatever's available
  2949  	if it.done {
  2950  		select {
  2951  		case log := <-it.logs:
  2952  			it.Event = new(AutoIncrementCoinageMockApproval)
  2953  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2954  				it.fail = err
  2955  				return false
  2956  			}
  2957  			it.Event.Raw = log
  2958  			return true
  2959  
  2960  		default:
  2961  			return false
  2962  		}
  2963  	}
  2964  	// Iterator still in progress, wait for either a data or an error event
  2965  	select {
  2966  	case log := <-it.logs:
  2967  		it.Event = new(AutoIncrementCoinageMockApproval)
  2968  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2969  			it.fail = err
  2970  			return false
  2971  		}
  2972  		it.Event.Raw = log
  2973  		return true
  2974  
  2975  	case err := <-it.sub.Err():
  2976  		it.done = true
  2977  		it.fail = err
  2978  		return it.Next()
  2979  	}
  2980  }
  2981  
  2982  // Error returns any retrieval or parsing error occurred during filtering.
  2983  func (it *AutoIncrementCoinageMockApprovalIterator) Error() error {
  2984  	return it.fail
  2985  }
  2986  
  2987  // Close terminates the iteration process, releasing any pending underlying
  2988  // resources.
  2989  func (it *AutoIncrementCoinageMockApprovalIterator) Close() error {
  2990  	it.sub.Unsubscribe()
  2991  	return nil
  2992  }
  2993  
  2994  // AutoIncrementCoinageMockApproval represents a Approval event raised by the AutoIncrementCoinageMock contract.
  2995  type AutoIncrementCoinageMockApproval struct {
  2996  	Owner   common.Address
  2997  	Spender common.Address
  2998  	Value   *big.Int
  2999  	Raw     types.Log // Blockchain specific contextual infos
  3000  }
  3001  
  3002  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  3003  //
  3004  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  3005  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*AutoIncrementCoinageMockApprovalIterator, error) {
  3006  
  3007  	var ownerRule []interface{}
  3008  	for _, ownerItem := range owner {
  3009  		ownerRule = append(ownerRule, ownerItem)
  3010  	}
  3011  	var spenderRule []interface{}
  3012  	for _, spenderItem := range spender {
  3013  		spenderRule = append(spenderRule, spenderItem)
  3014  	}
  3015  
  3016  	logs, sub, err := _AutoIncrementCoinageMock.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  3017  	if err != nil {
  3018  		return nil, err
  3019  	}
  3020  	return &AutoIncrementCoinageMockApprovalIterator{contract: _AutoIncrementCoinageMock.contract, event: "Approval", logs: logs, sub: sub}, nil
  3021  }
  3022  
  3023  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  3024  //
  3025  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  3026  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageMockApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  3027  
  3028  	var ownerRule []interface{}
  3029  	for _, ownerItem := range owner {
  3030  		ownerRule = append(ownerRule, ownerItem)
  3031  	}
  3032  	var spenderRule []interface{}
  3033  	for _, spenderItem := range spender {
  3034  		spenderRule = append(spenderRule, spenderItem)
  3035  	}
  3036  
  3037  	logs, sub, err := _AutoIncrementCoinageMock.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  3038  	if err != nil {
  3039  		return nil, err
  3040  	}
  3041  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3042  		defer sub.Unsubscribe()
  3043  		for {
  3044  			select {
  3045  			case log := <-logs:
  3046  				// New log arrived, parse the event and forward to the user
  3047  				event := new(AutoIncrementCoinageMockApproval)
  3048  				if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "Approval", log); err != nil {
  3049  					return err
  3050  				}
  3051  				event.Raw = log
  3052  
  3053  				select {
  3054  				case sink <- event:
  3055  				case err := <-sub.Err():
  3056  					return err
  3057  				case <-quit:
  3058  					return nil
  3059  				}
  3060  			case err := <-sub.Err():
  3061  				return err
  3062  			case <-quit:
  3063  				return nil
  3064  			}
  3065  		}
  3066  	}), nil
  3067  }
  3068  
  3069  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  3070  //
  3071  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  3072  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) ParseApproval(log types.Log) (*AutoIncrementCoinageMockApproval, error) {
  3073  	event := new(AutoIncrementCoinageMockApproval)
  3074  	if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "Approval", log); err != nil {
  3075  		return nil, err
  3076  	}
  3077  	return event, nil
  3078  }
  3079  
  3080  // AutoIncrementCoinageMockFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the AutoIncrementCoinageMock contract.
  3081  type AutoIncrementCoinageMockFactorIncreasedIterator struct {
  3082  	Event *AutoIncrementCoinageMockFactorIncreased // Event containing the contract specifics and raw log
  3083  
  3084  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3085  	event    string              // Event name to use for unpacking event data
  3086  
  3087  	logs chan types.Log        // Log channel receiving the found contract events
  3088  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3089  	done bool                  // Whether the subscription completed delivering logs
  3090  	fail error                 // Occurred error to stop iteration
  3091  }
  3092  
  3093  // Next advances the iterator to the subsequent event, returning whether there
  3094  // are any more events found. In case of a retrieval or parsing error, false is
  3095  // returned and Error() can be queried for the exact failure.
  3096  func (it *AutoIncrementCoinageMockFactorIncreasedIterator) Next() bool {
  3097  	// If the iterator failed, stop iterating
  3098  	if it.fail != nil {
  3099  		return false
  3100  	}
  3101  	// If the iterator completed, deliver directly whatever's available
  3102  	if it.done {
  3103  		select {
  3104  		case log := <-it.logs:
  3105  			it.Event = new(AutoIncrementCoinageMockFactorIncreased)
  3106  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3107  				it.fail = err
  3108  				return false
  3109  			}
  3110  			it.Event.Raw = log
  3111  			return true
  3112  
  3113  		default:
  3114  			return false
  3115  		}
  3116  	}
  3117  	// Iterator still in progress, wait for either a data or an error event
  3118  	select {
  3119  	case log := <-it.logs:
  3120  		it.Event = new(AutoIncrementCoinageMockFactorIncreased)
  3121  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3122  			it.fail = err
  3123  			return false
  3124  		}
  3125  		it.Event.Raw = log
  3126  		return true
  3127  
  3128  	case err := <-it.sub.Err():
  3129  		it.done = true
  3130  		it.fail = err
  3131  		return it.Next()
  3132  	}
  3133  }
  3134  
  3135  // Error returns any retrieval or parsing error occurred during filtering.
  3136  func (it *AutoIncrementCoinageMockFactorIncreasedIterator) Error() error {
  3137  	return it.fail
  3138  }
  3139  
  3140  // Close terminates the iteration process, releasing any pending underlying
  3141  // resources.
  3142  func (it *AutoIncrementCoinageMockFactorIncreasedIterator) Close() error {
  3143  	it.sub.Unsubscribe()
  3144  	return nil
  3145  }
  3146  
  3147  // AutoIncrementCoinageMockFactorIncreased represents a FactorIncreased event raised by the AutoIncrementCoinageMock contract.
  3148  type AutoIncrementCoinageMockFactorIncreased struct {
  3149  	Factor *big.Int
  3150  	Raw    types.Log // Blockchain specific contextual infos
  3151  }
  3152  
  3153  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  3154  //
  3155  // Solidity: event FactorIncreased(uint256 factor)
  3156  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*AutoIncrementCoinageMockFactorIncreasedIterator, error) {
  3157  
  3158  	logs, sub, err := _AutoIncrementCoinageMock.contract.FilterLogs(opts, "FactorIncreased")
  3159  	if err != nil {
  3160  		return nil, err
  3161  	}
  3162  	return &AutoIncrementCoinageMockFactorIncreasedIterator{contract: _AutoIncrementCoinageMock.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
  3163  }
  3164  
  3165  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  3166  //
  3167  // Solidity: event FactorIncreased(uint256 factor)
  3168  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageMockFactorIncreased) (event.Subscription, error) {
  3169  
  3170  	logs, sub, err := _AutoIncrementCoinageMock.contract.WatchLogs(opts, "FactorIncreased")
  3171  	if err != nil {
  3172  		return nil, err
  3173  	}
  3174  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3175  		defer sub.Unsubscribe()
  3176  		for {
  3177  			select {
  3178  			case log := <-logs:
  3179  				// New log arrived, parse the event and forward to the user
  3180  				event := new(AutoIncrementCoinageMockFactorIncreased)
  3181  				if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  3182  					return err
  3183  				}
  3184  				event.Raw = log
  3185  
  3186  				select {
  3187  				case sink <- event:
  3188  				case err := <-sub.Err():
  3189  					return err
  3190  				case <-quit:
  3191  					return nil
  3192  				}
  3193  			case err := <-sub.Err():
  3194  				return err
  3195  			case <-quit:
  3196  				return nil
  3197  			}
  3198  		}
  3199  	}), nil
  3200  }
  3201  
  3202  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  3203  //
  3204  // Solidity: event FactorIncreased(uint256 factor)
  3205  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) ParseFactorIncreased(log types.Log) (*AutoIncrementCoinageMockFactorIncreased, error) {
  3206  	event := new(AutoIncrementCoinageMockFactorIncreased)
  3207  	if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  3208  		return nil, err
  3209  	}
  3210  	return event, nil
  3211  }
  3212  
  3213  // AutoIncrementCoinageMockMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the AutoIncrementCoinageMock contract.
  3214  type AutoIncrementCoinageMockMinterAddedIterator struct {
  3215  	Event *AutoIncrementCoinageMockMinterAdded // Event containing the contract specifics and raw log
  3216  
  3217  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3218  	event    string              // Event name to use for unpacking event data
  3219  
  3220  	logs chan types.Log        // Log channel receiving the found contract events
  3221  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3222  	done bool                  // Whether the subscription completed delivering logs
  3223  	fail error                 // Occurred error to stop iteration
  3224  }
  3225  
  3226  // Next advances the iterator to the subsequent event, returning whether there
  3227  // are any more events found. In case of a retrieval or parsing error, false is
  3228  // returned and Error() can be queried for the exact failure.
  3229  func (it *AutoIncrementCoinageMockMinterAddedIterator) Next() bool {
  3230  	// If the iterator failed, stop iterating
  3231  	if it.fail != nil {
  3232  		return false
  3233  	}
  3234  	// If the iterator completed, deliver directly whatever's available
  3235  	if it.done {
  3236  		select {
  3237  		case log := <-it.logs:
  3238  			it.Event = new(AutoIncrementCoinageMockMinterAdded)
  3239  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3240  				it.fail = err
  3241  				return false
  3242  			}
  3243  			it.Event.Raw = log
  3244  			return true
  3245  
  3246  		default:
  3247  			return false
  3248  		}
  3249  	}
  3250  	// Iterator still in progress, wait for either a data or an error event
  3251  	select {
  3252  	case log := <-it.logs:
  3253  		it.Event = new(AutoIncrementCoinageMockMinterAdded)
  3254  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3255  			it.fail = err
  3256  			return false
  3257  		}
  3258  		it.Event.Raw = log
  3259  		return true
  3260  
  3261  	case err := <-it.sub.Err():
  3262  		it.done = true
  3263  		it.fail = err
  3264  		return it.Next()
  3265  	}
  3266  }
  3267  
  3268  // Error returns any retrieval or parsing error occurred during filtering.
  3269  func (it *AutoIncrementCoinageMockMinterAddedIterator) Error() error {
  3270  	return it.fail
  3271  }
  3272  
  3273  // Close terminates the iteration process, releasing any pending underlying
  3274  // resources.
  3275  func (it *AutoIncrementCoinageMockMinterAddedIterator) Close() error {
  3276  	it.sub.Unsubscribe()
  3277  	return nil
  3278  }
  3279  
  3280  // AutoIncrementCoinageMockMinterAdded represents a MinterAdded event raised by the AutoIncrementCoinageMock contract.
  3281  type AutoIncrementCoinageMockMinterAdded struct {
  3282  	Account common.Address
  3283  	Raw     types.Log // Blockchain specific contextual infos
  3284  }
  3285  
  3286  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  3287  //
  3288  // Solidity: event MinterAdded(address indexed account)
  3289  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*AutoIncrementCoinageMockMinterAddedIterator, error) {
  3290  
  3291  	var accountRule []interface{}
  3292  	for _, accountItem := range account {
  3293  		accountRule = append(accountRule, accountItem)
  3294  	}
  3295  
  3296  	logs, sub, err := _AutoIncrementCoinageMock.contract.FilterLogs(opts, "MinterAdded", accountRule)
  3297  	if err != nil {
  3298  		return nil, err
  3299  	}
  3300  	return &AutoIncrementCoinageMockMinterAddedIterator{contract: _AutoIncrementCoinageMock.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
  3301  }
  3302  
  3303  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  3304  //
  3305  // Solidity: event MinterAdded(address indexed account)
  3306  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageMockMinterAdded, account []common.Address) (event.Subscription, error) {
  3307  
  3308  	var accountRule []interface{}
  3309  	for _, accountItem := range account {
  3310  		accountRule = append(accountRule, accountItem)
  3311  	}
  3312  
  3313  	logs, sub, err := _AutoIncrementCoinageMock.contract.WatchLogs(opts, "MinterAdded", accountRule)
  3314  	if err != nil {
  3315  		return nil, err
  3316  	}
  3317  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3318  		defer sub.Unsubscribe()
  3319  		for {
  3320  			select {
  3321  			case log := <-logs:
  3322  				// New log arrived, parse the event and forward to the user
  3323  				event := new(AutoIncrementCoinageMockMinterAdded)
  3324  				if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  3325  					return err
  3326  				}
  3327  				event.Raw = log
  3328  
  3329  				select {
  3330  				case sink <- event:
  3331  				case err := <-sub.Err():
  3332  					return err
  3333  				case <-quit:
  3334  					return nil
  3335  				}
  3336  			case err := <-sub.Err():
  3337  				return err
  3338  			case <-quit:
  3339  				return nil
  3340  			}
  3341  		}
  3342  	}), nil
  3343  }
  3344  
  3345  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  3346  //
  3347  // Solidity: event MinterAdded(address indexed account)
  3348  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) ParseMinterAdded(log types.Log) (*AutoIncrementCoinageMockMinterAdded, error) {
  3349  	event := new(AutoIncrementCoinageMockMinterAdded)
  3350  	if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  3351  		return nil, err
  3352  	}
  3353  	return event, nil
  3354  }
  3355  
  3356  // AutoIncrementCoinageMockMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the AutoIncrementCoinageMock contract.
  3357  type AutoIncrementCoinageMockMinterRemovedIterator struct {
  3358  	Event *AutoIncrementCoinageMockMinterRemoved // Event containing the contract specifics and raw log
  3359  
  3360  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3361  	event    string              // Event name to use for unpacking event data
  3362  
  3363  	logs chan types.Log        // Log channel receiving the found contract events
  3364  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3365  	done bool                  // Whether the subscription completed delivering logs
  3366  	fail error                 // Occurred error to stop iteration
  3367  }
  3368  
  3369  // Next advances the iterator to the subsequent event, returning whether there
  3370  // are any more events found. In case of a retrieval or parsing error, false is
  3371  // returned and Error() can be queried for the exact failure.
  3372  func (it *AutoIncrementCoinageMockMinterRemovedIterator) Next() bool {
  3373  	// If the iterator failed, stop iterating
  3374  	if it.fail != nil {
  3375  		return false
  3376  	}
  3377  	// If the iterator completed, deliver directly whatever's available
  3378  	if it.done {
  3379  		select {
  3380  		case log := <-it.logs:
  3381  			it.Event = new(AutoIncrementCoinageMockMinterRemoved)
  3382  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3383  				it.fail = err
  3384  				return false
  3385  			}
  3386  			it.Event.Raw = log
  3387  			return true
  3388  
  3389  		default:
  3390  			return false
  3391  		}
  3392  	}
  3393  	// Iterator still in progress, wait for either a data or an error event
  3394  	select {
  3395  	case log := <-it.logs:
  3396  		it.Event = new(AutoIncrementCoinageMockMinterRemoved)
  3397  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3398  			it.fail = err
  3399  			return false
  3400  		}
  3401  		it.Event.Raw = log
  3402  		return true
  3403  
  3404  	case err := <-it.sub.Err():
  3405  		it.done = true
  3406  		it.fail = err
  3407  		return it.Next()
  3408  	}
  3409  }
  3410  
  3411  // Error returns any retrieval or parsing error occurred during filtering.
  3412  func (it *AutoIncrementCoinageMockMinterRemovedIterator) Error() error {
  3413  	return it.fail
  3414  }
  3415  
  3416  // Close terminates the iteration process, releasing any pending underlying
  3417  // resources.
  3418  func (it *AutoIncrementCoinageMockMinterRemovedIterator) Close() error {
  3419  	it.sub.Unsubscribe()
  3420  	return nil
  3421  }
  3422  
  3423  // AutoIncrementCoinageMockMinterRemoved represents a MinterRemoved event raised by the AutoIncrementCoinageMock contract.
  3424  type AutoIncrementCoinageMockMinterRemoved struct {
  3425  	Account common.Address
  3426  	Raw     types.Log // Blockchain specific contextual infos
  3427  }
  3428  
  3429  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  3430  //
  3431  // Solidity: event MinterRemoved(address indexed account)
  3432  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*AutoIncrementCoinageMockMinterRemovedIterator, error) {
  3433  
  3434  	var accountRule []interface{}
  3435  	for _, accountItem := range account {
  3436  		accountRule = append(accountRule, accountItem)
  3437  	}
  3438  
  3439  	logs, sub, err := _AutoIncrementCoinageMock.contract.FilterLogs(opts, "MinterRemoved", accountRule)
  3440  	if err != nil {
  3441  		return nil, err
  3442  	}
  3443  	return &AutoIncrementCoinageMockMinterRemovedIterator{contract: _AutoIncrementCoinageMock.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
  3444  }
  3445  
  3446  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  3447  //
  3448  // Solidity: event MinterRemoved(address indexed account)
  3449  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageMockMinterRemoved, account []common.Address) (event.Subscription, error) {
  3450  
  3451  	var accountRule []interface{}
  3452  	for _, accountItem := range account {
  3453  		accountRule = append(accountRule, accountItem)
  3454  	}
  3455  
  3456  	logs, sub, err := _AutoIncrementCoinageMock.contract.WatchLogs(opts, "MinterRemoved", accountRule)
  3457  	if err != nil {
  3458  		return nil, err
  3459  	}
  3460  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3461  		defer sub.Unsubscribe()
  3462  		for {
  3463  			select {
  3464  			case log := <-logs:
  3465  				// New log arrived, parse the event and forward to the user
  3466  				event := new(AutoIncrementCoinageMockMinterRemoved)
  3467  				if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  3468  					return err
  3469  				}
  3470  				event.Raw = log
  3471  
  3472  				select {
  3473  				case sink <- event:
  3474  				case err := <-sub.Err():
  3475  					return err
  3476  				case <-quit:
  3477  					return nil
  3478  				}
  3479  			case err := <-sub.Err():
  3480  				return err
  3481  			case <-quit:
  3482  				return nil
  3483  			}
  3484  		}
  3485  	}), nil
  3486  }
  3487  
  3488  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  3489  //
  3490  // Solidity: event MinterRemoved(address indexed account)
  3491  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) ParseMinterRemoved(log types.Log) (*AutoIncrementCoinageMockMinterRemoved, error) {
  3492  	event := new(AutoIncrementCoinageMockMinterRemoved)
  3493  	if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  3494  		return nil, err
  3495  	}
  3496  	return event, nil
  3497  }
  3498  
  3499  // AutoIncrementCoinageMockOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the AutoIncrementCoinageMock contract.
  3500  type AutoIncrementCoinageMockOwnershipTransferredIterator struct {
  3501  	Event *AutoIncrementCoinageMockOwnershipTransferred // Event containing the contract specifics and raw log
  3502  
  3503  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3504  	event    string              // Event name to use for unpacking event data
  3505  
  3506  	logs chan types.Log        // Log channel receiving the found contract events
  3507  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3508  	done bool                  // Whether the subscription completed delivering logs
  3509  	fail error                 // Occurred error to stop iteration
  3510  }
  3511  
  3512  // Next advances the iterator to the subsequent event, returning whether there
  3513  // are any more events found. In case of a retrieval or parsing error, false is
  3514  // returned and Error() can be queried for the exact failure.
  3515  func (it *AutoIncrementCoinageMockOwnershipTransferredIterator) Next() bool {
  3516  	// If the iterator failed, stop iterating
  3517  	if it.fail != nil {
  3518  		return false
  3519  	}
  3520  	// If the iterator completed, deliver directly whatever's available
  3521  	if it.done {
  3522  		select {
  3523  		case log := <-it.logs:
  3524  			it.Event = new(AutoIncrementCoinageMockOwnershipTransferred)
  3525  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3526  				it.fail = err
  3527  				return false
  3528  			}
  3529  			it.Event.Raw = log
  3530  			return true
  3531  
  3532  		default:
  3533  			return false
  3534  		}
  3535  	}
  3536  	// Iterator still in progress, wait for either a data or an error event
  3537  	select {
  3538  	case log := <-it.logs:
  3539  		it.Event = new(AutoIncrementCoinageMockOwnershipTransferred)
  3540  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3541  			it.fail = err
  3542  			return false
  3543  		}
  3544  		it.Event.Raw = log
  3545  		return true
  3546  
  3547  	case err := <-it.sub.Err():
  3548  		it.done = true
  3549  		it.fail = err
  3550  		return it.Next()
  3551  	}
  3552  }
  3553  
  3554  // Error returns any retrieval or parsing error occurred during filtering.
  3555  func (it *AutoIncrementCoinageMockOwnershipTransferredIterator) Error() error {
  3556  	return it.fail
  3557  }
  3558  
  3559  // Close terminates the iteration process, releasing any pending underlying
  3560  // resources.
  3561  func (it *AutoIncrementCoinageMockOwnershipTransferredIterator) Close() error {
  3562  	it.sub.Unsubscribe()
  3563  	return nil
  3564  }
  3565  
  3566  // AutoIncrementCoinageMockOwnershipTransferred represents a OwnershipTransferred event raised by the AutoIncrementCoinageMock contract.
  3567  type AutoIncrementCoinageMockOwnershipTransferred struct {
  3568  	PreviousOwner common.Address
  3569  	NewOwner      common.Address
  3570  	Raw           types.Log // Blockchain specific contextual infos
  3571  }
  3572  
  3573  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  3574  //
  3575  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  3576  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*AutoIncrementCoinageMockOwnershipTransferredIterator, error) {
  3577  
  3578  	var previousOwnerRule []interface{}
  3579  	for _, previousOwnerItem := range previousOwner {
  3580  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  3581  	}
  3582  	var newOwnerRule []interface{}
  3583  	for _, newOwnerItem := range newOwner {
  3584  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  3585  	}
  3586  
  3587  	logs, sub, err := _AutoIncrementCoinageMock.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  3588  	if err != nil {
  3589  		return nil, err
  3590  	}
  3591  	return &AutoIncrementCoinageMockOwnershipTransferredIterator{contract: _AutoIncrementCoinageMock.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  3592  }
  3593  
  3594  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  3595  //
  3596  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  3597  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageMockOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  3598  
  3599  	var previousOwnerRule []interface{}
  3600  	for _, previousOwnerItem := range previousOwner {
  3601  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  3602  	}
  3603  	var newOwnerRule []interface{}
  3604  	for _, newOwnerItem := range newOwner {
  3605  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  3606  	}
  3607  
  3608  	logs, sub, err := _AutoIncrementCoinageMock.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  3609  	if err != nil {
  3610  		return nil, err
  3611  	}
  3612  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3613  		defer sub.Unsubscribe()
  3614  		for {
  3615  			select {
  3616  			case log := <-logs:
  3617  				// New log arrived, parse the event and forward to the user
  3618  				event := new(AutoIncrementCoinageMockOwnershipTransferred)
  3619  				if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  3620  					return err
  3621  				}
  3622  				event.Raw = log
  3623  
  3624  				select {
  3625  				case sink <- event:
  3626  				case err := <-sub.Err():
  3627  					return err
  3628  				case <-quit:
  3629  					return nil
  3630  				}
  3631  			case err := <-sub.Err():
  3632  				return err
  3633  			case <-quit:
  3634  				return nil
  3635  			}
  3636  		}
  3637  	}), nil
  3638  }
  3639  
  3640  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  3641  //
  3642  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  3643  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) ParseOwnershipTransferred(log types.Log) (*AutoIncrementCoinageMockOwnershipTransferred, error) {
  3644  	event := new(AutoIncrementCoinageMockOwnershipTransferred)
  3645  	if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  3646  		return nil, err
  3647  	}
  3648  	return event, nil
  3649  }
  3650  
  3651  // AutoIncrementCoinageMockTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the AutoIncrementCoinageMock contract.
  3652  type AutoIncrementCoinageMockTransferIterator struct {
  3653  	Event *AutoIncrementCoinageMockTransfer // Event containing the contract specifics and raw log
  3654  
  3655  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3656  	event    string              // Event name to use for unpacking event data
  3657  
  3658  	logs chan types.Log        // Log channel receiving the found contract events
  3659  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3660  	done bool                  // Whether the subscription completed delivering logs
  3661  	fail error                 // Occurred error to stop iteration
  3662  }
  3663  
  3664  // Next advances the iterator to the subsequent event, returning whether there
  3665  // are any more events found. In case of a retrieval or parsing error, false is
  3666  // returned and Error() can be queried for the exact failure.
  3667  func (it *AutoIncrementCoinageMockTransferIterator) Next() bool {
  3668  	// If the iterator failed, stop iterating
  3669  	if it.fail != nil {
  3670  		return false
  3671  	}
  3672  	// If the iterator completed, deliver directly whatever's available
  3673  	if it.done {
  3674  		select {
  3675  		case log := <-it.logs:
  3676  			it.Event = new(AutoIncrementCoinageMockTransfer)
  3677  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3678  				it.fail = err
  3679  				return false
  3680  			}
  3681  			it.Event.Raw = log
  3682  			return true
  3683  
  3684  		default:
  3685  			return false
  3686  		}
  3687  	}
  3688  	// Iterator still in progress, wait for either a data or an error event
  3689  	select {
  3690  	case log := <-it.logs:
  3691  		it.Event = new(AutoIncrementCoinageMockTransfer)
  3692  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3693  			it.fail = err
  3694  			return false
  3695  		}
  3696  		it.Event.Raw = log
  3697  		return true
  3698  
  3699  	case err := <-it.sub.Err():
  3700  		it.done = true
  3701  		it.fail = err
  3702  		return it.Next()
  3703  	}
  3704  }
  3705  
  3706  // Error returns any retrieval or parsing error occurred during filtering.
  3707  func (it *AutoIncrementCoinageMockTransferIterator) Error() error {
  3708  	return it.fail
  3709  }
  3710  
  3711  // Close terminates the iteration process, releasing any pending underlying
  3712  // resources.
  3713  func (it *AutoIncrementCoinageMockTransferIterator) Close() error {
  3714  	it.sub.Unsubscribe()
  3715  	return nil
  3716  }
  3717  
  3718  // AutoIncrementCoinageMockTransfer represents a Transfer event raised by the AutoIncrementCoinageMock contract.
  3719  type AutoIncrementCoinageMockTransfer struct {
  3720  	From  common.Address
  3721  	To    common.Address
  3722  	Value *big.Int
  3723  	Raw   types.Log // Blockchain specific contextual infos
  3724  }
  3725  
  3726  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3727  //
  3728  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  3729  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*AutoIncrementCoinageMockTransferIterator, error) {
  3730  
  3731  	var fromRule []interface{}
  3732  	for _, fromItem := range from {
  3733  		fromRule = append(fromRule, fromItem)
  3734  	}
  3735  	var toRule []interface{}
  3736  	for _, toItem := range to {
  3737  		toRule = append(toRule, toItem)
  3738  	}
  3739  
  3740  	logs, sub, err := _AutoIncrementCoinageMock.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  3741  	if err != nil {
  3742  		return nil, err
  3743  	}
  3744  	return &AutoIncrementCoinageMockTransferIterator{contract: _AutoIncrementCoinageMock.contract, event: "Transfer", logs: logs, sub: sub}, nil
  3745  }
  3746  
  3747  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3748  //
  3749  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  3750  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageMockTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  3751  
  3752  	var fromRule []interface{}
  3753  	for _, fromItem := range from {
  3754  		fromRule = append(fromRule, fromItem)
  3755  	}
  3756  	var toRule []interface{}
  3757  	for _, toItem := range to {
  3758  		toRule = append(toRule, toItem)
  3759  	}
  3760  
  3761  	logs, sub, err := _AutoIncrementCoinageMock.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  3762  	if err != nil {
  3763  		return nil, err
  3764  	}
  3765  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3766  		defer sub.Unsubscribe()
  3767  		for {
  3768  			select {
  3769  			case log := <-logs:
  3770  				// New log arrived, parse the event and forward to the user
  3771  				event := new(AutoIncrementCoinageMockTransfer)
  3772  				if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "Transfer", log); err != nil {
  3773  					return err
  3774  				}
  3775  				event.Raw = log
  3776  
  3777  				select {
  3778  				case sink <- event:
  3779  				case err := <-sub.Err():
  3780  					return err
  3781  				case <-quit:
  3782  					return nil
  3783  				}
  3784  			case err := <-sub.Err():
  3785  				return err
  3786  			case <-quit:
  3787  				return nil
  3788  			}
  3789  		}
  3790  	}), nil
  3791  }
  3792  
  3793  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3794  //
  3795  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  3796  func (_AutoIncrementCoinageMock *AutoIncrementCoinageMockFilterer) ParseTransfer(log types.Log) (*AutoIncrementCoinageMockTransfer, error) {
  3797  	event := new(AutoIncrementCoinageMockTransfer)
  3798  	if err := _AutoIncrementCoinageMock.contract.UnpackLog(event, "Transfer", log); err != nil {
  3799  		return nil, err
  3800  	}
  3801  	return event, nil
  3802  }
  3803  
  3804  // AutoIncrementCoinageSnapshotABI is the input ABI used to generate the binding from.
  3805  const AutoIncrementCoinageSnapshotABI = "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_tokenFactory\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_parentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_parentSnapShotBlock\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_factorIncrement\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"ClaimedTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"cloneToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"snapshotBlock\",\"type\":\"uint256\"}],\"name\":\"NewCloneToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"balanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"basedBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"basedTotalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newController\",\"type\":\"address\"}],\"name\":\"changeController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"claimTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_cloneTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_cloneTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_factorIncrement\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"name\":\"createCloneToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"creationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyTokens\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"factorAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"generateTokens\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"parentSnapShotBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"parentToken\",\"outputs\":[{\"internalType\":\"contractAutoIncrementCoinageSnapshot\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenFactory\",\"outputs\":[{\"internalType\":\"contractAutoIncrementCoinageSnapshotFactory\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  3806  
  3807  // AutoIncrementCoinageSnapshotFuncSigs maps the 4-byte function signature to its string representation.
  3808  var AutoIncrementCoinageSnapshotFuncSigs = map[string]string{
  3809  	"dd62ed3e": "allowance(address,address)",
  3810  	"095ea7b3": "approve(address,uint256)",
  3811  	"cae9ca51": "approveAndCall(address,uint256,bytes)",
  3812  	"70a08231": "balanceOf(address)",
  3813  	"4ee2cd7e": "balanceOfAt(address,uint256)",
  3814  	"ab1e8543": "basedBalanceOfAt(address,uint256)",
  3815  	"11b38ebb": "basedTotalSupplyAt(uint256)",
  3816  	"3cebb823": "changeController(address)",
  3817  	"df8de3e7": "claimTokens(address)",
  3818  	"f77c4791": "controller()",
  3819  	"6c634905": "createCloneToken(string,string,uint256,uint256,uint256,bool)",
  3820  	"17634514": "creationBlock()",
  3821  	"313ce567": "decimals()",
  3822  	"2c6add4b": "defaultFactor()",
  3823  	"d3ce77fe": "destroyTokens(address,uint256)",
  3824  	"f41e60c5": "enableTransfers(bool)",
  3825  	"54f703f8": "factor()",
  3826  	"713a4965": "factorAt(uint256)",
  3827  	"d4132ee2": "factorIncrement()",
  3828  	"827f32c0": "generateTokens(address,uint256)",
  3829  	"06fdde03": "name()",
  3830  	"c5bcc4f1": "parentSnapShotBlock()",
  3831  	"80a54001": "parentToken()",
  3832  	"95d89b41": "symbol()",
  3833  	"e77772fe": "tokenFactory()",
  3834  	"18160ddd": "totalSupply()",
  3835  	"981b24d0": "totalSupplyAt(uint256)",
  3836  	"a9059cbb": "transfer(address,uint256)",
  3837  	"23b872dd": "transferFrom(address,address,uint256)",
  3838  	"bef97c87": "transfersEnabled()",
  3839  	"54fd4d50": "version()",
  3840  }
  3841  
  3842  // AutoIncrementCoinageSnapshotBin is the compiled bytecode used for deploying new contracts.
  3843  var AutoIncrementCoinageSnapshotBin = "0x60c0604052600960808190527f435f4d4d545f302e31000000000000000000000000000000000000000000000060a090815262000040916003919062000417565b503480156200004e57600080fd5b506040516200283b3803806200283b83398181016040526101008110156200007557600080fd5b815160208301516040808501516060860180519251949693959194939182019284640100000000821115620000a957600080fd5b908301906020820185811115620000bf57600080fd5b8251640100000000811182820188101715620000da57600080fd5b82525081516020918201929091019080838360005b8381101562000109578181015183820152602001620000ef565b50505050905090810190601f168015620001375780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015b57600080fd5b9083019060208201858111156200017157600080fd5b82516401000000008111828201881017156200018c57600080fd5b82525081516020918201929091019080838360005b83811015620001bb578181015183820152602001620001a1565b50505050905090810190601f168015620001e95780820380516001836020036101000a031916815260200191505b50604090815260208281015191830151606090930151600080546001600160a01b03191633179055600a80546001600160a01b038d1661010002610100600160a81b031990911617905587519295509293506200024c9160019188019062000417565b5083516200026290600290602087019062000417565b50600480546001600160a01b0319166001600160a01b0389811691909117918290556005889055600c849055600a805460ff1916841515179055436006558491620002ae9116620003ee565b156200034d5760048054600554604080517f713a496500000000000000000000000000000000000000000000000000000000815293840191909152516001600160a01b039091169163713a4965916024808301926020929190829003018186803b1580156200031c57600080fd5b505afa15801562000331573d6000803e3d6000fd5b505050506040513d60208110156200034857600080fd5b505190505b600b6040518060400160405280436001600160801b031681526020018360001462000379578362000383565b670de0b6b3a76400005b6001600160801b039081169091528254600181018455600093845260209384902083519101805494909301518216700100000000000000000000000000000000029082166001600160801b0319909416939093171691909117905550620004bc975050505050505050565b6000806001600160a01b0383166200040b57600091505062000412565b5050803b15155b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200045a57805160ff19168380011785556200048a565b828001600101855582156200048a579182015b828111156200048a5782518255916020019190600101906200046d565b50620004989291506200049c565b5090565b620004b991905b80821115620004985760008155600101620004a3565b90565b61236f80620004cc6000396000f3fe6080604052600436106101d85760003560e01c806380a5400111610102578063cae9ca5111610095578063df8de3e711610064578063df8de3e714610911578063e77772fe14610944578063f41e60c514610959578063f77c479114610985576101d8565b8063cae9ca51146107c0578063d3ce77fe14610888578063d4132ee2146108c1578063dd62ed3e146108d6576101d8565b8063a9059cbb116100d1578063a9059cbb14610724578063ab1e85431461075d578063bef97c8714610796578063c5bcc4f1146107ab576101d8565b806380a5400114610697578063827f32c0146106ac57806395d89b41146106e5578063981b24d0146106fa576101d8565b8063313ce5671161017a57806354fd4d501161014957806354fd4d50146104bc5780636c634905146104d157806370a082311461063a578063713a49651461066d576101d8565b8063313ce567146104105780633cebb8231461043b5780634ee2cd7e1461046e57806354f703f8146104a7576101d8565b806317634514116101b6578063176345141461038e57806318160ddd146103a357806323b872dd146103b85780632c6add4b146103fb576101d8565b806306fdde031461027b578063095ea7b31461030557806311b38ebb14610352575b6000546101ed906001600160a01b031661099a565b6101f657600080fd5b60005460408051633d230c1560e21b815233600482015290516001600160a01b039092169163f48c3054913491602480830192602092919082900301818588803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b50505050506040513d602081101561026e57600080fd5b505161027957600080fd5b005b34801561028757600080fd5b506102906109c1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ca5781810151838201526020016102b2565b50505050905090810190601f1680156102f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031157600080fd5b5061033e6004803603604081101561032857600080fd5b506001600160a01b038135169060200135610a4e565b604080519115158252519081900360200190f35b34801561035e57600080fd5b5061037c6004803603602081101561037557600080fd5b5035610bdf565b60408051918252519081900360200190f35b34801561039a57600080fd5b5061037c610cdb565b3480156103af57600080fd5b5061037c610ce1565b3480156103c457600080fd5b5061033e600480360360608110156103db57600080fd5b506001600160a01b03813581169160208101359091169060400135610cf2565b34801561040757600080fd5b5061037c610df0565b34801561041c57600080fd5b50610425610dfc565b6040805160ff9092168252519081900360200190f35b34801561044757600080fd5b506102796004803603602081101561045e57600080fd5b50356001600160a01b0316610e01565b34801561047a57600080fd5b5061037c6004803603604081101561049157600080fd5b506001600160a01b038135169060200135610e3a565b3480156104b357600080fd5b5061037c610e56565b3480156104c857600080fd5b50610290610e61565b3480156104dd57600080fd5b5061061e600480360360c08110156104f457600080fd5b81019060208101813564010000000081111561050f57600080fd5b82018360208201111561052157600080fd5b8035906020019184600183028401116401000000008311171561054357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561059657600080fd5b8201836020820111156105a857600080fd5b803590602001918460018302840111640100000000831117156105ca57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602081013590604081013590606001351515610ebc565b604080516001600160a01b039092168252519081900360200190f35b34801561064657600080fd5b5061037c6004803603602081101561065d57600080fd5b50356001600160a01b0316611104565b34801561067957600080fd5b5061037c6004803603602081101561069057600080fd5b5035611110565b3480156106a357600080fd5b5061061e6111e5565b3480156106b857600080fd5b5061033e600480360360408110156106cf57600080fd5b506001600160a01b0381351690602001356111f4565b3480156106f157600080fd5b5061029061136d565b34801561070657600080fd5b5061037c6004803603602081101561071d57600080fd5b50356113c5565b34801561073057600080fd5b5061033e6004803603604081101561074757600080fd5b506001600160a01b0381351690602001356113d3565b34801561076957600080fd5b5061037c6004803603604081101561078057600080fd5b506001600160a01b0381351690602001356113f9565b3480156107a257600080fd5b5061033e61150f565b3480156107b757600080fd5b5061037c611518565b3480156107cc57600080fd5b5061033e600480360360608110156107e357600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561081357600080fd5b82018360208201111561082557600080fd5b8035906020019184600183028401116401000000008311171561084757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061151e945050505050565b34801561089457600080fd5b5061033e600480360360408110156108ab57600080fd5b506001600160a01b03813516906020013561161e565b3480156108cd57600080fd5b5061037c611761565b3480156108e257600080fd5b5061037c600480360360408110156108f957600080fd5b506001600160a01b0381358116916020013516611767565b34801561091d57600080fd5b506102796004803603602081101561093457600080fd5b50356001600160a01b0316611792565b34801561095057600080fd5b5061061e611942565b34801561096557600080fd5b506102796004803603602081101561097c57600080fd5b50351515611956565b34801561099157600080fd5b5061061e611980565b6000806001600160a01b0383166109b55760009150506109bc565b5050803b15155b919050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a465780601f10610a1b57610100808354040283529160200191610a46565b820191906000526020600020905b815481529060010190602001808311610a2957829003601f168201915b505050505081565b600a5460009060ff16610a6057600080fd5b811580610a8e57503360009081526008602090815260408083206001600160a01b0387168452909152902054155b610ac95760405162461bcd60e51b81526004018080602001828103825260348152602001806122316034913960400191505060405180910390fd5b600054610ade906001600160a01b031661099a565b15610b7757600080546040805163da682aeb60e01b81523360048201526001600160a01b038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b505050506040513d6020811015610b6c57600080fd5b5051610b7757600080fd5b3360008181526008602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6009546000901580610c125750816009600081548110610bfb57fe5b6000918252602090912001546001600160801b0316115b15610cc9576004546001600160a01b031615610cc1576000610c368360055461198f565b6004805460408051630981b24d60e41b815292830184905251929350610cb9926001600160a01b039091169163981b24d0916024808301926020929190829003018186803b158015610c8757600080fd5b505afa158015610c9b573d6000803e3d6000fd5b505050506040513d6020811015610cb157600080fd5b5051826119a5565b9150506109bc565b5060006109bc565b610cd46009836119b4565b90506109bc565b60065481565b6000610cec436113c5565b90505b90565b600080546001600160a01b03163314610ddb57600a5460ff16610d1457600080fd5b6001600160a01b0384166000908152600860209081526040808320338452909152902054821115610d765760405162461bcd60e51b815260040180806020018281038252603f8152602001806122a2603f913960400191505060405180910390fd5b6001600160a01b03841660008181526008602090815260408083203380855290835292819020805487900390819055815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35b610de68484846119cd565b5060019392505050565b670de0b6b3a764000081565b601281565b6000546001600160a01b03163314610e1857600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e4f610e4984846113f9565b83611d51565b9392505050565b6000610cec43611110565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a465780601f10610a1b57610100808354040283529160200191610a46565b600082610ec7574392505b6000600a60019054906101000a90046001600160a01b03166001600160a01b031663539a3ab930868b8b8b8b8a6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001878152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019080838360005b83811015610f78578181015183820152602001610f60565b50505050905090810190601f168015610fa55780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b83811015610fd8578181015183820152602001610fc0565b50505050905090810190601f1680156110055780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561102b57600080fd5b505af115801561103f573d6000803e3d6000fd5b505050506040513d602081101561105557600080fd5b505160408051633cebb82360e01b815233600482015290519192506001600160a01b03831691633cebb8239160248082019260009290919082900301818387803b1580156110a257600080fd5b505af11580156110b6573d6000803e3d6000fd5b50506040805187815290516001600160a01b03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a2979650505050505050565b6000610bd98243610e3a565b600081600b60008154811061112157fe5b6000918252602090912001546001600160801b031611156111ac57610cd4600b60008154811061114d57fe5b9060005260206000200160000160109054906101000a90046001600160801b03166001600160801b03166111a7600c5485600b60008154811061118c57fe5b6000918252602090912001546001600160801b031603611d60565b611db6565b6000806111ba600b85611de7565b915091506111dc826111d7600c546111d28886611f9e565b611d60565b611fee565b925050506109bc565b6004546001600160a01b031681565b600080546001600160a01b0316331461120c57600080fd5b600b805460009190600019810190811061122257fe5b600091825260209091200180549091506001600160801b03600160801b8204811691164303801561129e5761125d826111d7600c5484611d60565b915061126a600b83612016565b6040805183815290517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a15b60006112aa86436119a5565b905060006112b743610bdf565b9050808282016001600160801b031610156112d157600080fd5b60006112dd89436113f9565b9050808382016001600160801b031610156112f757600080fd5b6113046009848401612016565b6001600160a01b038916600090815260076020526040902061132890828501612016565b6001600160a01b03891660006000805160206122e183398151915261134d8643611d51565b60408051918252519081900360200190a350600198975050505050505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a465780601f10610a1b57610100808354040283529160200191610a46565b6000610bd9610e4983610bdf565b600a5460009060ff166113e557600080fd5b6113f03384846119cd565b50600192915050565b6001600160a01b038216600090815260076020526040812054158061145357506001600160a01b0383166000908152600760205260408120805484929061143c57fe5b6000918252602090912001546001600160801b0316115b156114e6576004546001600160a01b0316156114de5760006114778360055461198f565b600480546040805163277166bf60e11b81526001600160a01b03898116948201949094526024810185905290519394506114d6939290911691634ee2cd7e91604480820192602092909190829003018186803b158015610c8757600080fd5b915050610bd9565b506000610bd9565b6001600160a01b038316600090815260076020526040902061150890836119b4565b9050610bd9565b600a5460ff1681565b60055481565b600061152a8484610a4e565b61153357600080fd5b604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b838110156115ad578181015183820152602001611595565b50505050905090810190601f1680156115da5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115fc57600080fd5b505af1158015611610573d6000803e3d6000fd5b506001979650505050505050565b600080546001600160a01b0316331461163657600080fd5b600b805460009190600019810190811061164c57fe5b600091825260209091200180549091506001600160801b03600160801b820481169116430380156116c857611687826111d7600c5484611d60565b9150611694600b83612016565b6040805183815290517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a15b60006116d486436119a5565b905060006116e143610bdf565b9050818110156116f057600080fd5b60006116fc89436113f9565b90508281101561170b57600080fd5b6117186009848403612016565b6001600160a01b038916600090815260076020526040902061173c90848303612016565b60006001600160a01b038a166000805160206122e183398151915261134d8643611d51565b600c5481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633146117a957600080fd5b6001600160a01b0381166117f857600080546040516001600160a01b0390911691303180156108fc02929091818181858888f193505050501580156117f2573d6000803e3d6000fd5b5061193f565b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050506040513d60208110156118f457600080fd5b50506000546040805183815290516001600160a01b03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a5461010090046001600160a01b031681565b6000546001600160a01b0316331461196d57600080fd5b600a805460ff1916911515919091179055565b6000546001600160a01b031681565b600081831061199e5781610e4f565b5090919050565b6000610e4f836111a784611110565b60008060006119c38585611de7565b5095945050505050565b600b80546000919060001981019081106119e357fe5b600091825260209091200180549091506001600160801b03600160801b82048116911643038015611a5f57611a1e826111d7600c5484611d60565b9150611a2b600b83612016565b6040805183815290517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a15b83611aa257846001600160a01b0316866001600160a01b03166000805160206122e1833981519152866040518082815260200191505060405180910390a3611d49565b4360055410611add576040805162461bcd60e51b8152602060048201526002602482015261543f60f01b604482015290519081900360640190fd5b6001600160a01b038516611b225760405162461bcd60e51b815260040180806020018281038252603a815260200180612301603a913960400191505060405180910390fd5b6001600160a01b038516301415611b6a5760405162461bcd60e51b81526004018080602001828103825260338152602001806121fe6033913960400191505060405180910390fd5b6000611b7687436113f9565b90506000611b8486436119a5565b905080821015611bc55760405162461bcd60e51b815260040180806020018281038252603d815260200180612265603d913960400191505060405180910390fd5b600054611bda906001600160a01b031661099a565b15611c99576000546001600160a01b0316634a3931498989611bfc8543611d51565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611c6457600080fd5b505af1158015611c78573d6000803e3d6000fd5b505050506040513d6020811015611c8e57600080fd5b5051611c9957600080fd5b6001600160a01b0388166000908152600760205260409020611cbd90828403612016565b6000611cc988436113f9565b9050808282016001600160801b03161015611ce357600080fd5b6001600160a01b0388166000908152600760205260409020611d0790828401612016565b876001600160a01b0316896001600160a01b03166000805160206122e1833981519152611d348543611d51565b60408051918252519081900360200190a35050505b505050505050565b6000610e4f836111d784611110565b600060028206611d7857670de0b6b3a7640000611d7a565b825b90506002820491505b8115610bd957611d938384611fee565b92506002820615611dab57611da88184611fee565b90505b600282049150611d83565b600081611dd8611dce85670de0b6b3a7640000612104565b6002855b04612167565b81611ddf57fe5b049392505050565b81546000908190611dfd57506000905080611f97565b835484906000198101908110611e0f57fe5b6000918252602090912001546001600160801b03168310611e8d57835484906000198101908110611e3c57fe5b6000918252602090912001548454600160801b9091046001600160801b03169085906000198101908110611e6c57fe5b6000918252602090912001546001600160801b039182169350169050611f97565b83600081548110611e9a57fe5b6000918252602090912001546001600160801b0316831015611ee457600084600081548110611ec557fe5b6000918252602090912001549092506001600160801b03169050611f97565b8354600090600019015b81811115611f3f576000600260018385010104905085878281548110611f1057fe5b6000918252602090912001546001600160801b031611611f3257809250611f39565b6001810391505b50611eee565b858281548110611f4b57fe5b9060005260206000200160000160109054906101000a90046001600160801b0316868381548110611f7857fe5b6000918252602090912001546001600160801b03918216955016925050505b9250929050565b80820382811115610bd9576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000670de0b6b3a7640000611dd86120068585612104565b6002670de0b6b3a7640000611dd2565b806001600160801b0316811461202b57600080fd5b8154158061205f5750815443908390600019810190811061204857fe5b6000918252602090912001546001600160801b0316105b156120c6578154600090839061207882600183016121b6565b8154811061208257fe5b600091825260209091200180546001600160801b03848116600160801b024382166fffffffffffffffffffffffffffffffff19909316929092171617905550612100565b8154600090839060001981019081106120db57fe5b600091825260209091200180546001600160801b03808516600160801b029116179055505b5050565b600081158061211f5750508082028282828161211c57fe5b04145b610bd9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015610bd9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b8154818355818111156121da576000838152602090206121da9181019083016121df565b505050565b610cef91905b808211156121f957600081556001016121e5565b509056fe4175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220746f2074686520746f6b656e4175746f496e6372656d656e74436f696e616765536e617073686f743a20696e76616c696420617070726f766520616d6f756e744175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220746f20746865207a65726f2061646472657373a265627a7a723158207aeeee210715a1cd34b693ea8c4a67bda83af1a06d724cfbba22c248b33bee4464736f6c634300050c0032"
  3844  
  3845  // DeployAutoIncrementCoinageSnapshot deploys a new Ethereum contract, binding an instance of AutoIncrementCoinageSnapshot to it.
  3846  func DeployAutoIncrementCoinageSnapshot(auth *bind.TransactOpts, backend bind.ContractBackend, _tokenFactory common.Address, _parentToken common.Address, _parentSnapShotBlock *big.Int, _tokenName string, _tokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _transfersEnabled bool) (common.Address, *types.Transaction, *AutoIncrementCoinageSnapshot, error) {
  3847  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageSnapshotABI))
  3848  	if err != nil {
  3849  		return common.Address{}, nil, nil, err
  3850  	}
  3851  
  3852  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AutoIncrementCoinageSnapshotBin), backend, _tokenFactory, _parentToken, _parentSnapShotBlock, _tokenName, _tokenSymbol, _factor, _factorIncrement, _transfersEnabled)
  3853  	if err != nil {
  3854  		return common.Address{}, nil, nil, err
  3855  	}
  3856  	return address, tx, &AutoIncrementCoinageSnapshot{AutoIncrementCoinageSnapshotCaller: AutoIncrementCoinageSnapshotCaller{contract: contract}, AutoIncrementCoinageSnapshotTransactor: AutoIncrementCoinageSnapshotTransactor{contract: contract}, AutoIncrementCoinageSnapshotFilterer: AutoIncrementCoinageSnapshotFilterer{contract: contract}}, nil
  3857  }
  3858  
  3859  // AutoIncrementCoinageSnapshot is an auto generated Go binding around an Ethereum contract.
  3860  type AutoIncrementCoinageSnapshot struct {
  3861  	AutoIncrementCoinageSnapshotCaller     // Read-only binding to the contract
  3862  	AutoIncrementCoinageSnapshotTransactor // Write-only binding to the contract
  3863  	AutoIncrementCoinageSnapshotFilterer   // Log filterer for contract events
  3864  }
  3865  
  3866  // AutoIncrementCoinageSnapshotCaller is an auto generated read-only Go binding around an Ethereum contract.
  3867  type AutoIncrementCoinageSnapshotCaller struct {
  3868  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3869  }
  3870  
  3871  // AutoIncrementCoinageSnapshotTransactor is an auto generated write-only Go binding around an Ethereum contract.
  3872  type AutoIncrementCoinageSnapshotTransactor struct {
  3873  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3874  }
  3875  
  3876  // AutoIncrementCoinageSnapshotFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3877  type AutoIncrementCoinageSnapshotFilterer struct {
  3878  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3879  }
  3880  
  3881  // AutoIncrementCoinageSnapshotSession is an auto generated Go binding around an Ethereum contract,
  3882  // with pre-set call and transact options.
  3883  type AutoIncrementCoinageSnapshotSession struct {
  3884  	Contract     *AutoIncrementCoinageSnapshot // Generic contract binding to set the session for
  3885  	CallOpts     bind.CallOpts                 // Call options to use throughout this session
  3886  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  3887  }
  3888  
  3889  // AutoIncrementCoinageSnapshotCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3890  // with pre-set call options.
  3891  type AutoIncrementCoinageSnapshotCallerSession struct {
  3892  	Contract *AutoIncrementCoinageSnapshotCaller // Generic contract caller binding to set the session for
  3893  	CallOpts bind.CallOpts                       // Call options to use throughout this session
  3894  }
  3895  
  3896  // AutoIncrementCoinageSnapshotTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3897  // with pre-set transact options.
  3898  type AutoIncrementCoinageSnapshotTransactorSession struct {
  3899  	Contract     *AutoIncrementCoinageSnapshotTransactor // Generic contract transactor binding to set the session for
  3900  	TransactOpts bind.TransactOpts                       // Transaction auth options to use throughout this session
  3901  }
  3902  
  3903  // AutoIncrementCoinageSnapshotRaw is an auto generated low-level Go binding around an Ethereum contract.
  3904  type AutoIncrementCoinageSnapshotRaw struct {
  3905  	Contract *AutoIncrementCoinageSnapshot // Generic contract binding to access the raw methods on
  3906  }
  3907  
  3908  // AutoIncrementCoinageSnapshotCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3909  type AutoIncrementCoinageSnapshotCallerRaw struct {
  3910  	Contract *AutoIncrementCoinageSnapshotCaller // Generic read-only contract binding to access the raw methods on
  3911  }
  3912  
  3913  // AutoIncrementCoinageSnapshotTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3914  type AutoIncrementCoinageSnapshotTransactorRaw struct {
  3915  	Contract *AutoIncrementCoinageSnapshotTransactor // Generic write-only contract binding to access the raw methods on
  3916  }
  3917  
  3918  // NewAutoIncrementCoinageSnapshot creates a new instance of AutoIncrementCoinageSnapshot, bound to a specific deployed contract.
  3919  func NewAutoIncrementCoinageSnapshot(address common.Address, backend bind.ContractBackend) (*AutoIncrementCoinageSnapshot, error) {
  3920  	contract, err := bindAutoIncrementCoinageSnapshot(address, backend, backend, backend)
  3921  	if err != nil {
  3922  		return nil, err
  3923  	}
  3924  	return &AutoIncrementCoinageSnapshot{AutoIncrementCoinageSnapshotCaller: AutoIncrementCoinageSnapshotCaller{contract: contract}, AutoIncrementCoinageSnapshotTransactor: AutoIncrementCoinageSnapshotTransactor{contract: contract}, AutoIncrementCoinageSnapshotFilterer: AutoIncrementCoinageSnapshotFilterer{contract: contract}}, nil
  3925  }
  3926  
  3927  // NewAutoIncrementCoinageSnapshotCaller creates a new read-only instance of AutoIncrementCoinageSnapshot, bound to a specific deployed contract.
  3928  func NewAutoIncrementCoinageSnapshotCaller(address common.Address, caller bind.ContractCaller) (*AutoIncrementCoinageSnapshotCaller, error) {
  3929  	contract, err := bindAutoIncrementCoinageSnapshot(address, caller, nil, nil)
  3930  	if err != nil {
  3931  		return nil, err
  3932  	}
  3933  	return &AutoIncrementCoinageSnapshotCaller{contract: contract}, nil
  3934  }
  3935  
  3936  // NewAutoIncrementCoinageSnapshotTransactor creates a new write-only instance of AutoIncrementCoinageSnapshot, bound to a specific deployed contract.
  3937  func NewAutoIncrementCoinageSnapshotTransactor(address common.Address, transactor bind.ContractTransactor) (*AutoIncrementCoinageSnapshotTransactor, error) {
  3938  	contract, err := bindAutoIncrementCoinageSnapshot(address, nil, transactor, nil)
  3939  	if err != nil {
  3940  		return nil, err
  3941  	}
  3942  	return &AutoIncrementCoinageSnapshotTransactor{contract: contract}, nil
  3943  }
  3944  
  3945  // NewAutoIncrementCoinageSnapshotFilterer creates a new log filterer instance of AutoIncrementCoinageSnapshot, bound to a specific deployed contract.
  3946  func NewAutoIncrementCoinageSnapshotFilterer(address common.Address, filterer bind.ContractFilterer) (*AutoIncrementCoinageSnapshotFilterer, error) {
  3947  	contract, err := bindAutoIncrementCoinageSnapshot(address, nil, nil, filterer)
  3948  	if err != nil {
  3949  		return nil, err
  3950  	}
  3951  	return &AutoIncrementCoinageSnapshotFilterer{contract: contract}, nil
  3952  }
  3953  
  3954  // bindAutoIncrementCoinageSnapshot binds a generic wrapper to an already deployed contract.
  3955  func bindAutoIncrementCoinageSnapshot(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3956  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageSnapshotABI))
  3957  	if err != nil {
  3958  		return nil, err
  3959  	}
  3960  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3961  }
  3962  
  3963  // Call invokes the (constant) contract method with params as input values and
  3964  // sets the output to result. The result type might be a single field for simple
  3965  // returns, a slice of interfaces for anonymous returns and a struct for named
  3966  // returns.
  3967  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  3968  	return _AutoIncrementCoinageSnapshot.Contract.AutoIncrementCoinageSnapshotCaller.contract.Call(opts, result, method, params...)
  3969  }
  3970  
  3971  // Transfer initiates a plain transaction to move funds to the contract, calling
  3972  // its default method if one is available.
  3973  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3974  	return _AutoIncrementCoinageSnapshot.Contract.AutoIncrementCoinageSnapshotTransactor.contract.Transfer(opts)
  3975  }
  3976  
  3977  // Transact invokes the (paid) contract method with params as input values.
  3978  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3979  	return _AutoIncrementCoinageSnapshot.Contract.AutoIncrementCoinageSnapshotTransactor.contract.Transact(opts, method, params...)
  3980  }
  3981  
  3982  // Call invokes the (constant) contract method with params as input values and
  3983  // sets the output to result. The result type might be a single field for simple
  3984  // returns, a slice of interfaces for anonymous returns and a struct for named
  3985  // returns.
  3986  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  3987  	return _AutoIncrementCoinageSnapshot.Contract.contract.Call(opts, result, method, params...)
  3988  }
  3989  
  3990  // Transfer initiates a plain transaction to move funds to the contract, calling
  3991  // its default method if one is available.
  3992  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3993  	return _AutoIncrementCoinageSnapshot.Contract.contract.Transfer(opts)
  3994  }
  3995  
  3996  // Transact invokes the (paid) contract method with params as input values.
  3997  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3998  	return _AutoIncrementCoinageSnapshot.Contract.contract.Transact(opts, method, params...)
  3999  }
  4000  
  4001  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  4002  //
  4003  // Solidity: function allowance(address _owner, address _spender) constant returns(uint256 remaining)
  4004  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Allowance(opts *bind.CallOpts, _owner common.Address, _spender common.Address) (*big.Int, error) {
  4005  	var (
  4006  		ret0 = new(*big.Int)
  4007  	)
  4008  	out := ret0
  4009  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "allowance", _owner, _spender)
  4010  	return *ret0, err
  4011  }
  4012  
  4013  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  4014  //
  4015  // Solidity: function allowance(address _owner, address _spender) constant returns(uint256 remaining)
  4016  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) {
  4017  	return _AutoIncrementCoinageSnapshot.Contract.Allowance(&_AutoIncrementCoinageSnapshot.CallOpts, _owner, _spender)
  4018  }
  4019  
  4020  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  4021  //
  4022  // Solidity: function allowance(address _owner, address _spender) constant returns(uint256 remaining)
  4023  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) {
  4024  	return _AutoIncrementCoinageSnapshot.Contract.Allowance(&_AutoIncrementCoinageSnapshot.CallOpts, _owner, _spender)
  4025  }
  4026  
  4027  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  4028  //
  4029  // Solidity: function balanceOf(address _owner) constant returns(uint256 balance)
  4030  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
  4031  	var (
  4032  		ret0 = new(*big.Int)
  4033  	)
  4034  	out := ret0
  4035  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "balanceOf", _owner)
  4036  	return *ret0, err
  4037  }
  4038  
  4039  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  4040  //
  4041  // Solidity: function balanceOf(address _owner) constant returns(uint256 balance)
  4042  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  4043  	return _AutoIncrementCoinageSnapshot.Contract.BalanceOf(&_AutoIncrementCoinageSnapshot.CallOpts, _owner)
  4044  }
  4045  
  4046  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  4047  //
  4048  // Solidity: function balanceOf(address _owner) constant returns(uint256 balance)
  4049  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  4050  	return _AutoIncrementCoinageSnapshot.Contract.BalanceOf(&_AutoIncrementCoinageSnapshot.CallOpts, _owner)
  4051  }
  4052  
  4053  // BalanceOfAt is a free data retrieval call binding the contract method 0x4ee2cd7e.
  4054  //
  4055  // Solidity: function balanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
  4056  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) BalanceOfAt(opts *bind.CallOpts, _owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
  4057  	var (
  4058  		ret0 = new(*big.Int)
  4059  	)
  4060  	out := ret0
  4061  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "balanceOfAt", _owner, _blockNumber)
  4062  	return *ret0, err
  4063  }
  4064  
  4065  // BalanceOfAt is a free data retrieval call binding the contract method 0x4ee2cd7e.
  4066  //
  4067  // Solidity: function balanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
  4068  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) BalanceOfAt(_owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
  4069  	return _AutoIncrementCoinageSnapshot.Contract.BalanceOfAt(&_AutoIncrementCoinageSnapshot.CallOpts, _owner, _blockNumber)
  4070  }
  4071  
  4072  // BalanceOfAt is a free data retrieval call binding the contract method 0x4ee2cd7e.
  4073  //
  4074  // Solidity: function balanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
  4075  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) BalanceOfAt(_owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
  4076  	return _AutoIncrementCoinageSnapshot.Contract.BalanceOfAt(&_AutoIncrementCoinageSnapshot.CallOpts, _owner, _blockNumber)
  4077  }
  4078  
  4079  // BasedBalanceOfAt is a free data retrieval call binding the contract method 0xab1e8543.
  4080  //
  4081  // Solidity: function basedBalanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
  4082  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) BasedBalanceOfAt(opts *bind.CallOpts, _owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
  4083  	var (
  4084  		ret0 = new(*big.Int)
  4085  	)
  4086  	out := ret0
  4087  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "basedBalanceOfAt", _owner, _blockNumber)
  4088  	return *ret0, err
  4089  }
  4090  
  4091  // BasedBalanceOfAt is a free data retrieval call binding the contract method 0xab1e8543.
  4092  //
  4093  // Solidity: function basedBalanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
  4094  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) BasedBalanceOfAt(_owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
  4095  	return _AutoIncrementCoinageSnapshot.Contract.BasedBalanceOfAt(&_AutoIncrementCoinageSnapshot.CallOpts, _owner, _blockNumber)
  4096  }
  4097  
  4098  // BasedBalanceOfAt is a free data retrieval call binding the contract method 0xab1e8543.
  4099  //
  4100  // Solidity: function basedBalanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
  4101  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) BasedBalanceOfAt(_owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
  4102  	return _AutoIncrementCoinageSnapshot.Contract.BasedBalanceOfAt(&_AutoIncrementCoinageSnapshot.CallOpts, _owner, _blockNumber)
  4103  }
  4104  
  4105  // BasedTotalSupplyAt is a free data retrieval call binding the contract method 0x11b38ebb.
  4106  //
  4107  // Solidity: function basedTotalSupplyAt(uint256 _blockNumber) constant returns(uint256)
  4108  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) BasedTotalSupplyAt(opts *bind.CallOpts, _blockNumber *big.Int) (*big.Int, error) {
  4109  	var (
  4110  		ret0 = new(*big.Int)
  4111  	)
  4112  	out := ret0
  4113  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "basedTotalSupplyAt", _blockNumber)
  4114  	return *ret0, err
  4115  }
  4116  
  4117  // BasedTotalSupplyAt is a free data retrieval call binding the contract method 0x11b38ebb.
  4118  //
  4119  // Solidity: function basedTotalSupplyAt(uint256 _blockNumber) constant returns(uint256)
  4120  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) BasedTotalSupplyAt(_blockNumber *big.Int) (*big.Int, error) {
  4121  	return _AutoIncrementCoinageSnapshot.Contract.BasedTotalSupplyAt(&_AutoIncrementCoinageSnapshot.CallOpts, _blockNumber)
  4122  }
  4123  
  4124  // BasedTotalSupplyAt is a free data retrieval call binding the contract method 0x11b38ebb.
  4125  //
  4126  // Solidity: function basedTotalSupplyAt(uint256 _blockNumber) constant returns(uint256)
  4127  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) BasedTotalSupplyAt(_blockNumber *big.Int) (*big.Int, error) {
  4128  	return _AutoIncrementCoinageSnapshot.Contract.BasedTotalSupplyAt(&_AutoIncrementCoinageSnapshot.CallOpts, _blockNumber)
  4129  }
  4130  
  4131  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
  4132  //
  4133  // Solidity: function controller() constant returns(address)
  4134  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Controller(opts *bind.CallOpts) (common.Address, error) {
  4135  	var (
  4136  		ret0 = new(common.Address)
  4137  	)
  4138  	out := ret0
  4139  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "controller")
  4140  	return *ret0, err
  4141  }
  4142  
  4143  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
  4144  //
  4145  // Solidity: function controller() constant returns(address)
  4146  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Controller() (common.Address, error) {
  4147  	return _AutoIncrementCoinageSnapshot.Contract.Controller(&_AutoIncrementCoinageSnapshot.CallOpts)
  4148  }
  4149  
  4150  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
  4151  //
  4152  // Solidity: function controller() constant returns(address)
  4153  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Controller() (common.Address, error) {
  4154  	return _AutoIncrementCoinageSnapshot.Contract.Controller(&_AutoIncrementCoinageSnapshot.CallOpts)
  4155  }
  4156  
  4157  // CreationBlock is a free data retrieval call binding the contract method 0x17634514.
  4158  //
  4159  // Solidity: function creationBlock() constant returns(uint256)
  4160  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) CreationBlock(opts *bind.CallOpts) (*big.Int, error) {
  4161  	var (
  4162  		ret0 = new(*big.Int)
  4163  	)
  4164  	out := ret0
  4165  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "creationBlock")
  4166  	return *ret0, err
  4167  }
  4168  
  4169  // CreationBlock is a free data retrieval call binding the contract method 0x17634514.
  4170  //
  4171  // Solidity: function creationBlock() constant returns(uint256)
  4172  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) CreationBlock() (*big.Int, error) {
  4173  	return _AutoIncrementCoinageSnapshot.Contract.CreationBlock(&_AutoIncrementCoinageSnapshot.CallOpts)
  4174  }
  4175  
  4176  // CreationBlock is a free data retrieval call binding the contract method 0x17634514.
  4177  //
  4178  // Solidity: function creationBlock() constant returns(uint256)
  4179  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) CreationBlock() (*big.Int, error) {
  4180  	return _AutoIncrementCoinageSnapshot.Contract.CreationBlock(&_AutoIncrementCoinageSnapshot.CallOpts)
  4181  }
  4182  
  4183  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  4184  //
  4185  // Solidity: function decimals() constant returns(uint8)
  4186  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
  4187  	var (
  4188  		ret0 = new(uint8)
  4189  	)
  4190  	out := ret0
  4191  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "decimals")
  4192  	return *ret0, err
  4193  }
  4194  
  4195  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  4196  //
  4197  // Solidity: function decimals() constant returns(uint8)
  4198  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Decimals() (uint8, error) {
  4199  	return _AutoIncrementCoinageSnapshot.Contract.Decimals(&_AutoIncrementCoinageSnapshot.CallOpts)
  4200  }
  4201  
  4202  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  4203  //
  4204  // Solidity: function decimals() constant returns(uint8)
  4205  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Decimals() (uint8, error) {
  4206  	return _AutoIncrementCoinageSnapshot.Contract.Decimals(&_AutoIncrementCoinageSnapshot.CallOpts)
  4207  }
  4208  
  4209  // DefaultFactor is a free data retrieval call binding the contract method 0x2c6add4b.
  4210  //
  4211  // Solidity: function defaultFactor() constant returns(uint256)
  4212  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) DefaultFactor(opts *bind.CallOpts) (*big.Int, error) {
  4213  	var (
  4214  		ret0 = new(*big.Int)
  4215  	)
  4216  	out := ret0
  4217  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "defaultFactor")
  4218  	return *ret0, err
  4219  }
  4220  
  4221  // DefaultFactor is a free data retrieval call binding the contract method 0x2c6add4b.
  4222  //
  4223  // Solidity: function defaultFactor() constant returns(uint256)
  4224  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) DefaultFactor() (*big.Int, error) {
  4225  	return _AutoIncrementCoinageSnapshot.Contract.DefaultFactor(&_AutoIncrementCoinageSnapshot.CallOpts)
  4226  }
  4227  
  4228  // DefaultFactor is a free data retrieval call binding the contract method 0x2c6add4b.
  4229  //
  4230  // Solidity: function defaultFactor() constant returns(uint256)
  4231  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) DefaultFactor() (*big.Int, error) {
  4232  	return _AutoIncrementCoinageSnapshot.Contract.DefaultFactor(&_AutoIncrementCoinageSnapshot.CallOpts)
  4233  }
  4234  
  4235  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  4236  //
  4237  // Solidity: function factor() constant returns(uint256)
  4238  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
  4239  	var (
  4240  		ret0 = new(*big.Int)
  4241  	)
  4242  	out := ret0
  4243  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "factor")
  4244  	return *ret0, err
  4245  }
  4246  
  4247  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  4248  //
  4249  // Solidity: function factor() constant returns(uint256)
  4250  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Factor() (*big.Int, error) {
  4251  	return _AutoIncrementCoinageSnapshot.Contract.Factor(&_AutoIncrementCoinageSnapshot.CallOpts)
  4252  }
  4253  
  4254  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  4255  //
  4256  // Solidity: function factor() constant returns(uint256)
  4257  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Factor() (*big.Int, error) {
  4258  	return _AutoIncrementCoinageSnapshot.Contract.Factor(&_AutoIncrementCoinageSnapshot.CallOpts)
  4259  }
  4260  
  4261  // FactorAt is a free data retrieval call binding the contract method 0x713a4965.
  4262  //
  4263  // Solidity: function factorAt(uint256 _blockNumber) constant returns(uint256)
  4264  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) FactorAt(opts *bind.CallOpts, _blockNumber *big.Int) (*big.Int, error) {
  4265  	var (
  4266  		ret0 = new(*big.Int)
  4267  	)
  4268  	out := ret0
  4269  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "factorAt", _blockNumber)
  4270  	return *ret0, err
  4271  }
  4272  
  4273  // FactorAt is a free data retrieval call binding the contract method 0x713a4965.
  4274  //
  4275  // Solidity: function factorAt(uint256 _blockNumber) constant returns(uint256)
  4276  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) FactorAt(_blockNumber *big.Int) (*big.Int, error) {
  4277  	return _AutoIncrementCoinageSnapshot.Contract.FactorAt(&_AutoIncrementCoinageSnapshot.CallOpts, _blockNumber)
  4278  }
  4279  
  4280  // FactorAt is a free data retrieval call binding the contract method 0x713a4965.
  4281  //
  4282  // Solidity: function factorAt(uint256 _blockNumber) constant returns(uint256)
  4283  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) FactorAt(_blockNumber *big.Int) (*big.Int, error) {
  4284  	return _AutoIncrementCoinageSnapshot.Contract.FactorAt(&_AutoIncrementCoinageSnapshot.CallOpts, _blockNumber)
  4285  }
  4286  
  4287  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  4288  //
  4289  // Solidity: function factorIncrement() constant returns(uint256)
  4290  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
  4291  	var (
  4292  		ret0 = new(*big.Int)
  4293  	)
  4294  	out := ret0
  4295  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "factorIncrement")
  4296  	return *ret0, err
  4297  }
  4298  
  4299  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  4300  //
  4301  // Solidity: function factorIncrement() constant returns(uint256)
  4302  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) FactorIncrement() (*big.Int, error) {
  4303  	return _AutoIncrementCoinageSnapshot.Contract.FactorIncrement(&_AutoIncrementCoinageSnapshot.CallOpts)
  4304  }
  4305  
  4306  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  4307  //
  4308  // Solidity: function factorIncrement() constant returns(uint256)
  4309  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) FactorIncrement() (*big.Int, error) {
  4310  	return _AutoIncrementCoinageSnapshot.Contract.FactorIncrement(&_AutoIncrementCoinageSnapshot.CallOpts)
  4311  }
  4312  
  4313  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  4314  //
  4315  // Solidity: function name() constant returns(string)
  4316  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Name(opts *bind.CallOpts) (string, error) {
  4317  	var (
  4318  		ret0 = new(string)
  4319  	)
  4320  	out := ret0
  4321  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "name")
  4322  	return *ret0, err
  4323  }
  4324  
  4325  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  4326  //
  4327  // Solidity: function name() constant returns(string)
  4328  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Name() (string, error) {
  4329  	return _AutoIncrementCoinageSnapshot.Contract.Name(&_AutoIncrementCoinageSnapshot.CallOpts)
  4330  }
  4331  
  4332  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  4333  //
  4334  // Solidity: function name() constant returns(string)
  4335  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Name() (string, error) {
  4336  	return _AutoIncrementCoinageSnapshot.Contract.Name(&_AutoIncrementCoinageSnapshot.CallOpts)
  4337  }
  4338  
  4339  // ParentSnapShotBlock is a free data retrieval call binding the contract method 0xc5bcc4f1.
  4340  //
  4341  // Solidity: function parentSnapShotBlock() constant returns(uint256)
  4342  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) ParentSnapShotBlock(opts *bind.CallOpts) (*big.Int, error) {
  4343  	var (
  4344  		ret0 = new(*big.Int)
  4345  	)
  4346  	out := ret0
  4347  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "parentSnapShotBlock")
  4348  	return *ret0, err
  4349  }
  4350  
  4351  // ParentSnapShotBlock is a free data retrieval call binding the contract method 0xc5bcc4f1.
  4352  //
  4353  // Solidity: function parentSnapShotBlock() constant returns(uint256)
  4354  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) ParentSnapShotBlock() (*big.Int, error) {
  4355  	return _AutoIncrementCoinageSnapshot.Contract.ParentSnapShotBlock(&_AutoIncrementCoinageSnapshot.CallOpts)
  4356  }
  4357  
  4358  // ParentSnapShotBlock is a free data retrieval call binding the contract method 0xc5bcc4f1.
  4359  //
  4360  // Solidity: function parentSnapShotBlock() constant returns(uint256)
  4361  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) ParentSnapShotBlock() (*big.Int, error) {
  4362  	return _AutoIncrementCoinageSnapshot.Contract.ParentSnapShotBlock(&_AutoIncrementCoinageSnapshot.CallOpts)
  4363  }
  4364  
  4365  // ParentToken is a free data retrieval call binding the contract method 0x80a54001.
  4366  //
  4367  // Solidity: function parentToken() constant returns(address)
  4368  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) ParentToken(opts *bind.CallOpts) (common.Address, error) {
  4369  	var (
  4370  		ret0 = new(common.Address)
  4371  	)
  4372  	out := ret0
  4373  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "parentToken")
  4374  	return *ret0, err
  4375  }
  4376  
  4377  // ParentToken is a free data retrieval call binding the contract method 0x80a54001.
  4378  //
  4379  // Solidity: function parentToken() constant returns(address)
  4380  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) ParentToken() (common.Address, error) {
  4381  	return _AutoIncrementCoinageSnapshot.Contract.ParentToken(&_AutoIncrementCoinageSnapshot.CallOpts)
  4382  }
  4383  
  4384  // ParentToken is a free data retrieval call binding the contract method 0x80a54001.
  4385  //
  4386  // Solidity: function parentToken() constant returns(address)
  4387  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) ParentToken() (common.Address, error) {
  4388  	return _AutoIncrementCoinageSnapshot.Contract.ParentToken(&_AutoIncrementCoinageSnapshot.CallOpts)
  4389  }
  4390  
  4391  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  4392  //
  4393  // Solidity: function symbol() constant returns(string)
  4394  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Symbol(opts *bind.CallOpts) (string, error) {
  4395  	var (
  4396  		ret0 = new(string)
  4397  	)
  4398  	out := ret0
  4399  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "symbol")
  4400  	return *ret0, err
  4401  }
  4402  
  4403  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  4404  //
  4405  // Solidity: function symbol() constant returns(string)
  4406  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Symbol() (string, error) {
  4407  	return _AutoIncrementCoinageSnapshot.Contract.Symbol(&_AutoIncrementCoinageSnapshot.CallOpts)
  4408  }
  4409  
  4410  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  4411  //
  4412  // Solidity: function symbol() constant returns(string)
  4413  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Symbol() (string, error) {
  4414  	return _AutoIncrementCoinageSnapshot.Contract.Symbol(&_AutoIncrementCoinageSnapshot.CallOpts)
  4415  }
  4416  
  4417  // TokenFactory is a free data retrieval call binding the contract method 0xe77772fe.
  4418  //
  4419  // Solidity: function tokenFactory() constant returns(address)
  4420  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) TokenFactory(opts *bind.CallOpts) (common.Address, error) {
  4421  	var (
  4422  		ret0 = new(common.Address)
  4423  	)
  4424  	out := ret0
  4425  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "tokenFactory")
  4426  	return *ret0, err
  4427  }
  4428  
  4429  // TokenFactory is a free data retrieval call binding the contract method 0xe77772fe.
  4430  //
  4431  // Solidity: function tokenFactory() constant returns(address)
  4432  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) TokenFactory() (common.Address, error) {
  4433  	return _AutoIncrementCoinageSnapshot.Contract.TokenFactory(&_AutoIncrementCoinageSnapshot.CallOpts)
  4434  }
  4435  
  4436  // TokenFactory is a free data retrieval call binding the contract method 0xe77772fe.
  4437  //
  4438  // Solidity: function tokenFactory() constant returns(address)
  4439  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) TokenFactory() (common.Address, error) {
  4440  	return _AutoIncrementCoinageSnapshot.Contract.TokenFactory(&_AutoIncrementCoinageSnapshot.CallOpts)
  4441  }
  4442  
  4443  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  4444  //
  4445  // Solidity: function totalSupply() constant returns(uint256)
  4446  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  4447  	var (
  4448  		ret0 = new(*big.Int)
  4449  	)
  4450  	out := ret0
  4451  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "totalSupply")
  4452  	return *ret0, err
  4453  }
  4454  
  4455  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  4456  //
  4457  // Solidity: function totalSupply() constant returns(uint256)
  4458  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) TotalSupply() (*big.Int, error) {
  4459  	return _AutoIncrementCoinageSnapshot.Contract.TotalSupply(&_AutoIncrementCoinageSnapshot.CallOpts)
  4460  }
  4461  
  4462  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  4463  //
  4464  // Solidity: function totalSupply() constant returns(uint256)
  4465  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) TotalSupply() (*big.Int, error) {
  4466  	return _AutoIncrementCoinageSnapshot.Contract.TotalSupply(&_AutoIncrementCoinageSnapshot.CallOpts)
  4467  }
  4468  
  4469  // TotalSupplyAt is a free data retrieval call binding the contract method 0x981b24d0.
  4470  //
  4471  // Solidity: function totalSupplyAt(uint256 _blockNumber) constant returns(uint256)
  4472  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) TotalSupplyAt(opts *bind.CallOpts, _blockNumber *big.Int) (*big.Int, error) {
  4473  	var (
  4474  		ret0 = new(*big.Int)
  4475  	)
  4476  	out := ret0
  4477  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "totalSupplyAt", _blockNumber)
  4478  	return *ret0, err
  4479  }
  4480  
  4481  // TotalSupplyAt is a free data retrieval call binding the contract method 0x981b24d0.
  4482  //
  4483  // Solidity: function totalSupplyAt(uint256 _blockNumber) constant returns(uint256)
  4484  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) TotalSupplyAt(_blockNumber *big.Int) (*big.Int, error) {
  4485  	return _AutoIncrementCoinageSnapshot.Contract.TotalSupplyAt(&_AutoIncrementCoinageSnapshot.CallOpts, _blockNumber)
  4486  }
  4487  
  4488  // TotalSupplyAt is a free data retrieval call binding the contract method 0x981b24d0.
  4489  //
  4490  // Solidity: function totalSupplyAt(uint256 _blockNumber) constant returns(uint256)
  4491  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) TotalSupplyAt(_blockNumber *big.Int) (*big.Int, error) {
  4492  	return _AutoIncrementCoinageSnapshot.Contract.TotalSupplyAt(&_AutoIncrementCoinageSnapshot.CallOpts, _blockNumber)
  4493  }
  4494  
  4495  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  4496  //
  4497  // Solidity: function transfersEnabled() constant returns(bool)
  4498  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
  4499  	var (
  4500  		ret0 = new(bool)
  4501  	)
  4502  	out := ret0
  4503  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "transfersEnabled")
  4504  	return *ret0, err
  4505  }
  4506  
  4507  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  4508  //
  4509  // Solidity: function transfersEnabled() constant returns(bool)
  4510  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) TransfersEnabled() (bool, error) {
  4511  	return _AutoIncrementCoinageSnapshot.Contract.TransfersEnabled(&_AutoIncrementCoinageSnapshot.CallOpts)
  4512  }
  4513  
  4514  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  4515  //
  4516  // Solidity: function transfersEnabled() constant returns(bool)
  4517  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) TransfersEnabled() (bool, error) {
  4518  	return _AutoIncrementCoinageSnapshot.Contract.TransfersEnabled(&_AutoIncrementCoinageSnapshot.CallOpts)
  4519  }
  4520  
  4521  // Version is a free data retrieval call binding the contract method 0x54fd4d50.
  4522  //
  4523  // Solidity: function version() constant returns(string)
  4524  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCaller) Version(opts *bind.CallOpts) (string, error) {
  4525  	var (
  4526  		ret0 = new(string)
  4527  	)
  4528  	out := ret0
  4529  	err := _AutoIncrementCoinageSnapshot.contract.Call(opts, out, "version")
  4530  	return *ret0, err
  4531  }
  4532  
  4533  // Version is a free data retrieval call binding the contract method 0x54fd4d50.
  4534  //
  4535  // Solidity: function version() constant returns(string)
  4536  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Version() (string, error) {
  4537  	return _AutoIncrementCoinageSnapshot.Contract.Version(&_AutoIncrementCoinageSnapshot.CallOpts)
  4538  }
  4539  
  4540  // Version is a free data retrieval call binding the contract method 0x54fd4d50.
  4541  //
  4542  // Solidity: function version() constant returns(string)
  4543  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotCallerSession) Version() (string, error) {
  4544  	return _AutoIncrementCoinageSnapshot.Contract.Version(&_AutoIncrementCoinageSnapshot.CallOpts)
  4545  }
  4546  
  4547  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4548  //
  4549  // Solidity: function approve(address _spender, uint256 _amount) returns(bool success)
  4550  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _amount *big.Int) (*types.Transaction, error) {
  4551  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "approve", _spender, _amount)
  4552  }
  4553  
  4554  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4555  //
  4556  // Solidity: function approve(address _spender, uint256 _amount) returns(bool success)
  4557  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Approve(_spender common.Address, _amount *big.Int) (*types.Transaction, error) {
  4558  	return _AutoIncrementCoinageSnapshot.Contract.Approve(&_AutoIncrementCoinageSnapshot.TransactOpts, _spender, _amount)
  4559  }
  4560  
  4561  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4562  //
  4563  // Solidity: function approve(address _spender, uint256 _amount) returns(bool success)
  4564  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) Approve(_spender common.Address, _amount *big.Int) (*types.Transaction, error) {
  4565  	return _AutoIncrementCoinageSnapshot.Contract.Approve(&_AutoIncrementCoinageSnapshot.TransactOpts, _spender, _amount)
  4566  }
  4567  
  4568  // ApproveAndCall is a paid mutator transaction binding the contract method 0xcae9ca51.
  4569  //
  4570  // Solidity: function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns(bool success)
  4571  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) ApproveAndCall(opts *bind.TransactOpts, _spender common.Address, _amount *big.Int, _extraData []byte) (*types.Transaction, error) {
  4572  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "approveAndCall", _spender, _amount, _extraData)
  4573  }
  4574  
  4575  // ApproveAndCall is a paid mutator transaction binding the contract method 0xcae9ca51.
  4576  //
  4577  // Solidity: function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns(bool success)
  4578  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) ApproveAndCall(_spender common.Address, _amount *big.Int, _extraData []byte) (*types.Transaction, error) {
  4579  	return _AutoIncrementCoinageSnapshot.Contract.ApproveAndCall(&_AutoIncrementCoinageSnapshot.TransactOpts, _spender, _amount, _extraData)
  4580  }
  4581  
  4582  // ApproveAndCall is a paid mutator transaction binding the contract method 0xcae9ca51.
  4583  //
  4584  // Solidity: function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns(bool success)
  4585  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) ApproveAndCall(_spender common.Address, _amount *big.Int, _extraData []byte) (*types.Transaction, error) {
  4586  	return _AutoIncrementCoinageSnapshot.Contract.ApproveAndCall(&_AutoIncrementCoinageSnapshot.TransactOpts, _spender, _amount, _extraData)
  4587  }
  4588  
  4589  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
  4590  //
  4591  // Solidity: function changeController(address _newController) returns()
  4592  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) ChangeController(opts *bind.TransactOpts, _newController common.Address) (*types.Transaction, error) {
  4593  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "changeController", _newController)
  4594  }
  4595  
  4596  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
  4597  //
  4598  // Solidity: function changeController(address _newController) returns()
  4599  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
  4600  	return _AutoIncrementCoinageSnapshot.Contract.ChangeController(&_AutoIncrementCoinageSnapshot.TransactOpts, _newController)
  4601  }
  4602  
  4603  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
  4604  //
  4605  // Solidity: function changeController(address _newController) returns()
  4606  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
  4607  	return _AutoIncrementCoinageSnapshot.Contract.ChangeController(&_AutoIncrementCoinageSnapshot.TransactOpts, _newController)
  4608  }
  4609  
  4610  // ClaimTokens is a paid mutator transaction binding the contract method 0xdf8de3e7.
  4611  //
  4612  // Solidity: function claimTokens(address _token) returns()
  4613  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) ClaimTokens(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  4614  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "claimTokens", _token)
  4615  }
  4616  
  4617  // ClaimTokens is a paid mutator transaction binding the contract method 0xdf8de3e7.
  4618  //
  4619  // Solidity: function claimTokens(address _token) returns()
  4620  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) ClaimTokens(_token common.Address) (*types.Transaction, error) {
  4621  	return _AutoIncrementCoinageSnapshot.Contract.ClaimTokens(&_AutoIncrementCoinageSnapshot.TransactOpts, _token)
  4622  }
  4623  
  4624  // ClaimTokens is a paid mutator transaction binding the contract method 0xdf8de3e7.
  4625  //
  4626  // Solidity: function claimTokens(address _token) returns()
  4627  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) ClaimTokens(_token common.Address) (*types.Transaction, error) {
  4628  	return _AutoIncrementCoinageSnapshot.Contract.ClaimTokens(&_AutoIncrementCoinageSnapshot.TransactOpts, _token)
  4629  }
  4630  
  4631  // CreateCloneToken is a paid mutator transaction binding the contract method 0x6c634905.
  4632  //
  4633  // Solidity: function createCloneToken(string _cloneTokenName, string _cloneTokenSymbol, uint256 _factor, uint256 _factorIncrement, uint256 _snapshotBlock, bool _transfersEnabled) returns(address)
  4634  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) CreateCloneToken(opts *bind.TransactOpts, _cloneTokenName string, _cloneTokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _snapshotBlock *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
  4635  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "createCloneToken", _cloneTokenName, _cloneTokenSymbol, _factor, _factorIncrement, _snapshotBlock, _transfersEnabled)
  4636  }
  4637  
  4638  // CreateCloneToken is a paid mutator transaction binding the contract method 0x6c634905.
  4639  //
  4640  // Solidity: function createCloneToken(string _cloneTokenName, string _cloneTokenSymbol, uint256 _factor, uint256 _factorIncrement, uint256 _snapshotBlock, bool _transfersEnabled) returns(address)
  4641  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) CreateCloneToken(_cloneTokenName string, _cloneTokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _snapshotBlock *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
  4642  	return _AutoIncrementCoinageSnapshot.Contract.CreateCloneToken(&_AutoIncrementCoinageSnapshot.TransactOpts, _cloneTokenName, _cloneTokenSymbol, _factor, _factorIncrement, _snapshotBlock, _transfersEnabled)
  4643  }
  4644  
  4645  // CreateCloneToken is a paid mutator transaction binding the contract method 0x6c634905.
  4646  //
  4647  // Solidity: function createCloneToken(string _cloneTokenName, string _cloneTokenSymbol, uint256 _factor, uint256 _factorIncrement, uint256 _snapshotBlock, bool _transfersEnabled) returns(address)
  4648  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) CreateCloneToken(_cloneTokenName string, _cloneTokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _snapshotBlock *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
  4649  	return _AutoIncrementCoinageSnapshot.Contract.CreateCloneToken(&_AutoIncrementCoinageSnapshot.TransactOpts, _cloneTokenName, _cloneTokenSymbol, _factor, _factorIncrement, _snapshotBlock, _transfersEnabled)
  4650  }
  4651  
  4652  // DestroyTokens is a paid mutator transaction binding the contract method 0xd3ce77fe.
  4653  //
  4654  // Solidity: function destroyTokens(address _owner, uint256 _amount) returns(bool)
  4655  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) DestroyTokens(opts *bind.TransactOpts, _owner common.Address, _amount *big.Int) (*types.Transaction, error) {
  4656  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "destroyTokens", _owner, _amount)
  4657  }
  4658  
  4659  // DestroyTokens is a paid mutator transaction binding the contract method 0xd3ce77fe.
  4660  //
  4661  // Solidity: function destroyTokens(address _owner, uint256 _amount) returns(bool)
  4662  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) DestroyTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
  4663  	return _AutoIncrementCoinageSnapshot.Contract.DestroyTokens(&_AutoIncrementCoinageSnapshot.TransactOpts, _owner, _amount)
  4664  }
  4665  
  4666  // DestroyTokens is a paid mutator transaction binding the contract method 0xd3ce77fe.
  4667  //
  4668  // Solidity: function destroyTokens(address _owner, uint256 _amount) returns(bool)
  4669  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) DestroyTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
  4670  	return _AutoIncrementCoinageSnapshot.Contract.DestroyTokens(&_AutoIncrementCoinageSnapshot.TransactOpts, _owner, _amount)
  4671  }
  4672  
  4673  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  4674  //
  4675  // Solidity: function enableTransfers(bool _transfersEnabled) returns()
  4676  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) EnableTransfers(opts *bind.TransactOpts, _transfersEnabled bool) (*types.Transaction, error) {
  4677  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "enableTransfers", _transfersEnabled)
  4678  }
  4679  
  4680  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  4681  //
  4682  // Solidity: function enableTransfers(bool _transfersEnabled) returns()
  4683  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) EnableTransfers(_transfersEnabled bool) (*types.Transaction, error) {
  4684  	return _AutoIncrementCoinageSnapshot.Contract.EnableTransfers(&_AutoIncrementCoinageSnapshot.TransactOpts, _transfersEnabled)
  4685  }
  4686  
  4687  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  4688  //
  4689  // Solidity: function enableTransfers(bool _transfersEnabled) returns()
  4690  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) EnableTransfers(_transfersEnabled bool) (*types.Transaction, error) {
  4691  	return _AutoIncrementCoinageSnapshot.Contract.EnableTransfers(&_AutoIncrementCoinageSnapshot.TransactOpts, _transfersEnabled)
  4692  }
  4693  
  4694  // GenerateTokens is a paid mutator transaction binding the contract method 0x827f32c0.
  4695  //
  4696  // Solidity: function generateTokens(address _owner, uint256 _amount) returns(bool)
  4697  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) GenerateTokens(opts *bind.TransactOpts, _owner common.Address, _amount *big.Int) (*types.Transaction, error) {
  4698  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "generateTokens", _owner, _amount)
  4699  }
  4700  
  4701  // GenerateTokens is a paid mutator transaction binding the contract method 0x827f32c0.
  4702  //
  4703  // Solidity: function generateTokens(address _owner, uint256 _amount) returns(bool)
  4704  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) GenerateTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
  4705  	return _AutoIncrementCoinageSnapshot.Contract.GenerateTokens(&_AutoIncrementCoinageSnapshot.TransactOpts, _owner, _amount)
  4706  }
  4707  
  4708  // GenerateTokens is a paid mutator transaction binding the contract method 0x827f32c0.
  4709  //
  4710  // Solidity: function generateTokens(address _owner, uint256 _amount) returns(bool)
  4711  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) GenerateTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
  4712  	return _AutoIncrementCoinageSnapshot.Contract.GenerateTokens(&_AutoIncrementCoinageSnapshot.TransactOpts, _owner, _amount)
  4713  }
  4714  
  4715  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  4716  //
  4717  // Solidity: function transfer(address _to, uint256 _amount) returns(bool success)
  4718  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
  4719  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "transfer", _to, _amount)
  4720  }
  4721  
  4722  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  4723  //
  4724  // Solidity: function transfer(address _to, uint256 _amount) returns(bool success)
  4725  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) Transfer(_to common.Address, _amount *big.Int) (*types.Transaction, error) {
  4726  	return _AutoIncrementCoinageSnapshot.Contract.Transfer(&_AutoIncrementCoinageSnapshot.TransactOpts, _to, _amount)
  4727  }
  4728  
  4729  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  4730  //
  4731  // Solidity: function transfer(address _to, uint256 _amount) returns(bool success)
  4732  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) Transfer(_to common.Address, _amount *big.Int) (*types.Transaction, error) {
  4733  	return _AutoIncrementCoinageSnapshot.Contract.Transfer(&_AutoIncrementCoinageSnapshot.TransactOpts, _to, _amount)
  4734  }
  4735  
  4736  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4737  //
  4738  // Solidity: function transferFrom(address _from, address _to, uint256 _amount) returns(bool success)
  4739  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
  4740  	return _AutoIncrementCoinageSnapshot.contract.Transact(opts, "transferFrom", _from, _to, _amount)
  4741  }
  4742  
  4743  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4744  //
  4745  // Solidity: function transferFrom(address _from, address _to, uint256 _amount) returns(bool success)
  4746  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotSession) TransferFrom(_from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
  4747  	return _AutoIncrementCoinageSnapshot.Contract.TransferFrom(&_AutoIncrementCoinageSnapshot.TransactOpts, _from, _to, _amount)
  4748  }
  4749  
  4750  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4751  //
  4752  // Solidity: function transferFrom(address _from, address _to, uint256 _amount) returns(bool success)
  4753  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotTransactorSession) TransferFrom(_from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
  4754  	return _AutoIncrementCoinageSnapshot.Contract.TransferFrom(&_AutoIncrementCoinageSnapshot.TransactOpts, _from, _to, _amount)
  4755  }
  4756  
  4757  // AutoIncrementCoinageSnapshotApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the AutoIncrementCoinageSnapshot contract.
  4758  type AutoIncrementCoinageSnapshotApprovalIterator struct {
  4759  	Event *AutoIncrementCoinageSnapshotApproval // Event containing the contract specifics and raw log
  4760  
  4761  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4762  	event    string              // Event name to use for unpacking event data
  4763  
  4764  	logs chan types.Log        // Log channel receiving the found contract events
  4765  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4766  	done bool                  // Whether the subscription completed delivering logs
  4767  	fail error                 // Occurred error to stop iteration
  4768  }
  4769  
  4770  // Next advances the iterator to the subsequent event, returning whether there
  4771  // are any more events found. In case of a retrieval or parsing error, false is
  4772  // returned and Error() can be queried for the exact failure.
  4773  func (it *AutoIncrementCoinageSnapshotApprovalIterator) Next() bool {
  4774  	// If the iterator failed, stop iterating
  4775  	if it.fail != nil {
  4776  		return false
  4777  	}
  4778  	// If the iterator completed, deliver directly whatever's available
  4779  	if it.done {
  4780  		select {
  4781  		case log := <-it.logs:
  4782  			it.Event = new(AutoIncrementCoinageSnapshotApproval)
  4783  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4784  				it.fail = err
  4785  				return false
  4786  			}
  4787  			it.Event.Raw = log
  4788  			return true
  4789  
  4790  		default:
  4791  			return false
  4792  		}
  4793  	}
  4794  	// Iterator still in progress, wait for either a data or an error event
  4795  	select {
  4796  	case log := <-it.logs:
  4797  		it.Event = new(AutoIncrementCoinageSnapshotApproval)
  4798  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4799  			it.fail = err
  4800  			return false
  4801  		}
  4802  		it.Event.Raw = log
  4803  		return true
  4804  
  4805  	case err := <-it.sub.Err():
  4806  		it.done = true
  4807  		it.fail = err
  4808  		return it.Next()
  4809  	}
  4810  }
  4811  
  4812  // Error returns any retrieval or parsing error occurred during filtering.
  4813  func (it *AutoIncrementCoinageSnapshotApprovalIterator) Error() error {
  4814  	return it.fail
  4815  }
  4816  
  4817  // Close terminates the iteration process, releasing any pending underlying
  4818  // resources.
  4819  func (it *AutoIncrementCoinageSnapshotApprovalIterator) Close() error {
  4820  	it.sub.Unsubscribe()
  4821  	return nil
  4822  }
  4823  
  4824  // AutoIncrementCoinageSnapshotApproval represents a Approval event raised by the AutoIncrementCoinageSnapshot contract.
  4825  type AutoIncrementCoinageSnapshotApproval struct {
  4826  	Owner   common.Address
  4827  	Spender common.Address
  4828  	Value   *big.Int
  4829  	Raw     types.Log // Blockchain specific contextual infos
  4830  }
  4831  
  4832  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  4833  //
  4834  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  4835  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*AutoIncrementCoinageSnapshotApprovalIterator, error) {
  4836  
  4837  	var ownerRule []interface{}
  4838  	for _, ownerItem := range owner {
  4839  		ownerRule = append(ownerRule, ownerItem)
  4840  	}
  4841  	var spenderRule []interface{}
  4842  	for _, spenderItem := range spender {
  4843  		spenderRule = append(spenderRule, spenderItem)
  4844  	}
  4845  
  4846  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  4847  	if err != nil {
  4848  		return nil, err
  4849  	}
  4850  	return &AutoIncrementCoinageSnapshotApprovalIterator{contract: _AutoIncrementCoinageSnapshot.contract, event: "Approval", logs: logs, sub: sub}, nil
  4851  }
  4852  
  4853  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  4854  //
  4855  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  4856  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageSnapshotApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  4857  
  4858  	var ownerRule []interface{}
  4859  	for _, ownerItem := range owner {
  4860  		ownerRule = append(ownerRule, ownerItem)
  4861  	}
  4862  	var spenderRule []interface{}
  4863  	for _, spenderItem := range spender {
  4864  		spenderRule = append(spenderRule, spenderItem)
  4865  	}
  4866  
  4867  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  4868  	if err != nil {
  4869  		return nil, err
  4870  	}
  4871  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4872  		defer sub.Unsubscribe()
  4873  		for {
  4874  			select {
  4875  			case log := <-logs:
  4876  				// New log arrived, parse the event and forward to the user
  4877  				event := new(AutoIncrementCoinageSnapshotApproval)
  4878  				if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "Approval", log); err != nil {
  4879  					return err
  4880  				}
  4881  				event.Raw = log
  4882  
  4883  				select {
  4884  				case sink <- event:
  4885  				case err := <-sub.Err():
  4886  					return err
  4887  				case <-quit:
  4888  					return nil
  4889  				}
  4890  			case err := <-sub.Err():
  4891  				return err
  4892  			case <-quit:
  4893  				return nil
  4894  			}
  4895  		}
  4896  	}), nil
  4897  }
  4898  
  4899  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  4900  //
  4901  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  4902  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) ParseApproval(log types.Log) (*AutoIncrementCoinageSnapshotApproval, error) {
  4903  	event := new(AutoIncrementCoinageSnapshotApproval)
  4904  	if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "Approval", log); err != nil {
  4905  		return nil, err
  4906  	}
  4907  	return event, nil
  4908  }
  4909  
  4910  // AutoIncrementCoinageSnapshotClaimedTokensIterator is returned from FilterClaimedTokens and is used to iterate over the raw logs and unpacked data for ClaimedTokens events raised by the AutoIncrementCoinageSnapshot contract.
  4911  type AutoIncrementCoinageSnapshotClaimedTokensIterator struct {
  4912  	Event *AutoIncrementCoinageSnapshotClaimedTokens // Event containing the contract specifics and raw log
  4913  
  4914  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4915  	event    string              // Event name to use for unpacking event data
  4916  
  4917  	logs chan types.Log        // Log channel receiving the found contract events
  4918  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4919  	done bool                  // Whether the subscription completed delivering logs
  4920  	fail error                 // Occurred error to stop iteration
  4921  }
  4922  
  4923  // Next advances the iterator to the subsequent event, returning whether there
  4924  // are any more events found. In case of a retrieval or parsing error, false is
  4925  // returned and Error() can be queried for the exact failure.
  4926  func (it *AutoIncrementCoinageSnapshotClaimedTokensIterator) Next() bool {
  4927  	// If the iterator failed, stop iterating
  4928  	if it.fail != nil {
  4929  		return false
  4930  	}
  4931  	// If the iterator completed, deliver directly whatever's available
  4932  	if it.done {
  4933  		select {
  4934  		case log := <-it.logs:
  4935  			it.Event = new(AutoIncrementCoinageSnapshotClaimedTokens)
  4936  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4937  				it.fail = err
  4938  				return false
  4939  			}
  4940  			it.Event.Raw = log
  4941  			return true
  4942  
  4943  		default:
  4944  			return false
  4945  		}
  4946  	}
  4947  	// Iterator still in progress, wait for either a data or an error event
  4948  	select {
  4949  	case log := <-it.logs:
  4950  		it.Event = new(AutoIncrementCoinageSnapshotClaimedTokens)
  4951  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4952  			it.fail = err
  4953  			return false
  4954  		}
  4955  		it.Event.Raw = log
  4956  		return true
  4957  
  4958  	case err := <-it.sub.Err():
  4959  		it.done = true
  4960  		it.fail = err
  4961  		return it.Next()
  4962  	}
  4963  }
  4964  
  4965  // Error returns any retrieval or parsing error occurred during filtering.
  4966  func (it *AutoIncrementCoinageSnapshotClaimedTokensIterator) Error() error {
  4967  	return it.fail
  4968  }
  4969  
  4970  // Close terminates the iteration process, releasing any pending underlying
  4971  // resources.
  4972  func (it *AutoIncrementCoinageSnapshotClaimedTokensIterator) Close() error {
  4973  	it.sub.Unsubscribe()
  4974  	return nil
  4975  }
  4976  
  4977  // AutoIncrementCoinageSnapshotClaimedTokens represents a ClaimedTokens event raised by the AutoIncrementCoinageSnapshot contract.
  4978  type AutoIncrementCoinageSnapshotClaimedTokens struct {
  4979  	Token      common.Address
  4980  	Controller common.Address
  4981  	Value      *big.Int
  4982  	Raw        types.Log // Blockchain specific contextual infos
  4983  }
  4984  
  4985  // FilterClaimedTokens is a free log retrieval operation binding the contract event 0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c.
  4986  //
  4987  // Solidity: event ClaimedTokens(address indexed token, address indexed controller, uint256 value)
  4988  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) FilterClaimedTokens(opts *bind.FilterOpts, token []common.Address, controller []common.Address) (*AutoIncrementCoinageSnapshotClaimedTokensIterator, error) {
  4989  
  4990  	var tokenRule []interface{}
  4991  	for _, tokenItem := range token {
  4992  		tokenRule = append(tokenRule, tokenItem)
  4993  	}
  4994  	var controllerRule []interface{}
  4995  	for _, controllerItem := range controller {
  4996  		controllerRule = append(controllerRule, controllerItem)
  4997  	}
  4998  
  4999  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.FilterLogs(opts, "ClaimedTokens", tokenRule, controllerRule)
  5000  	if err != nil {
  5001  		return nil, err
  5002  	}
  5003  	return &AutoIncrementCoinageSnapshotClaimedTokensIterator{contract: _AutoIncrementCoinageSnapshot.contract, event: "ClaimedTokens", logs: logs, sub: sub}, nil
  5004  }
  5005  
  5006  // WatchClaimedTokens is a free log subscription operation binding the contract event 0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c.
  5007  //
  5008  // Solidity: event ClaimedTokens(address indexed token, address indexed controller, uint256 value)
  5009  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) WatchClaimedTokens(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageSnapshotClaimedTokens, token []common.Address, controller []common.Address) (event.Subscription, error) {
  5010  
  5011  	var tokenRule []interface{}
  5012  	for _, tokenItem := range token {
  5013  		tokenRule = append(tokenRule, tokenItem)
  5014  	}
  5015  	var controllerRule []interface{}
  5016  	for _, controllerItem := range controller {
  5017  		controllerRule = append(controllerRule, controllerItem)
  5018  	}
  5019  
  5020  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.WatchLogs(opts, "ClaimedTokens", tokenRule, controllerRule)
  5021  	if err != nil {
  5022  		return nil, err
  5023  	}
  5024  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5025  		defer sub.Unsubscribe()
  5026  		for {
  5027  			select {
  5028  			case log := <-logs:
  5029  				// New log arrived, parse the event and forward to the user
  5030  				event := new(AutoIncrementCoinageSnapshotClaimedTokens)
  5031  				if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "ClaimedTokens", log); err != nil {
  5032  					return err
  5033  				}
  5034  				event.Raw = log
  5035  
  5036  				select {
  5037  				case sink <- event:
  5038  				case err := <-sub.Err():
  5039  					return err
  5040  				case <-quit:
  5041  					return nil
  5042  				}
  5043  			case err := <-sub.Err():
  5044  				return err
  5045  			case <-quit:
  5046  				return nil
  5047  			}
  5048  		}
  5049  	}), nil
  5050  }
  5051  
  5052  // ParseClaimedTokens is a log parse operation binding the contract event 0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c.
  5053  //
  5054  // Solidity: event ClaimedTokens(address indexed token, address indexed controller, uint256 value)
  5055  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) ParseClaimedTokens(log types.Log) (*AutoIncrementCoinageSnapshotClaimedTokens, error) {
  5056  	event := new(AutoIncrementCoinageSnapshotClaimedTokens)
  5057  	if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "ClaimedTokens", log); err != nil {
  5058  		return nil, err
  5059  	}
  5060  	return event, nil
  5061  }
  5062  
  5063  // AutoIncrementCoinageSnapshotFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the AutoIncrementCoinageSnapshot contract.
  5064  type AutoIncrementCoinageSnapshotFactorIncreasedIterator struct {
  5065  	Event *AutoIncrementCoinageSnapshotFactorIncreased // Event containing the contract specifics and raw log
  5066  
  5067  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5068  	event    string              // Event name to use for unpacking event data
  5069  
  5070  	logs chan types.Log        // Log channel receiving the found contract events
  5071  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5072  	done bool                  // Whether the subscription completed delivering logs
  5073  	fail error                 // Occurred error to stop iteration
  5074  }
  5075  
  5076  // Next advances the iterator to the subsequent event, returning whether there
  5077  // are any more events found. In case of a retrieval or parsing error, false is
  5078  // returned and Error() can be queried for the exact failure.
  5079  func (it *AutoIncrementCoinageSnapshotFactorIncreasedIterator) Next() bool {
  5080  	// If the iterator failed, stop iterating
  5081  	if it.fail != nil {
  5082  		return false
  5083  	}
  5084  	// If the iterator completed, deliver directly whatever's available
  5085  	if it.done {
  5086  		select {
  5087  		case log := <-it.logs:
  5088  			it.Event = new(AutoIncrementCoinageSnapshotFactorIncreased)
  5089  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5090  				it.fail = err
  5091  				return false
  5092  			}
  5093  			it.Event.Raw = log
  5094  			return true
  5095  
  5096  		default:
  5097  			return false
  5098  		}
  5099  	}
  5100  	// Iterator still in progress, wait for either a data or an error event
  5101  	select {
  5102  	case log := <-it.logs:
  5103  		it.Event = new(AutoIncrementCoinageSnapshotFactorIncreased)
  5104  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5105  			it.fail = err
  5106  			return false
  5107  		}
  5108  		it.Event.Raw = log
  5109  		return true
  5110  
  5111  	case err := <-it.sub.Err():
  5112  		it.done = true
  5113  		it.fail = err
  5114  		return it.Next()
  5115  	}
  5116  }
  5117  
  5118  // Error returns any retrieval or parsing error occurred during filtering.
  5119  func (it *AutoIncrementCoinageSnapshotFactorIncreasedIterator) Error() error {
  5120  	return it.fail
  5121  }
  5122  
  5123  // Close terminates the iteration process, releasing any pending underlying
  5124  // resources.
  5125  func (it *AutoIncrementCoinageSnapshotFactorIncreasedIterator) Close() error {
  5126  	it.sub.Unsubscribe()
  5127  	return nil
  5128  }
  5129  
  5130  // AutoIncrementCoinageSnapshotFactorIncreased represents a FactorIncreased event raised by the AutoIncrementCoinageSnapshot contract.
  5131  type AutoIncrementCoinageSnapshotFactorIncreased struct {
  5132  	Factor *big.Int
  5133  	Raw    types.Log // Blockchain specific contextual infos
  5134  }
  5135  
  5136  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  5137  //
  5138  // Solidity: event FactorIncreased(uint256 factor)
  5139  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*AutoIncrementCoinageSnapshotFactorIncreasedIterator, error) {
  5140  
  5141  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.FilterLogs(opts, "FactorIncreased")
  5142  	if err != nil {
  5143  		return nil, err
  5144  	}
  5145  	return &AutoIncrementCoinageSnapshotFactorIncreasedIterator{contract: _AutoIncrementCoinageSnapshot.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
  5146  }
  5147  
  5148  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  5149  //
  5150  // Solidity: event FactorIncreased(uint256 factor)
  5151  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageSnapshotFactorIncreased) (event.Subscription, error) {
  5152  
  5153  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.WatchLogs(opts, "FactorIncreased")
  5154  	if err != nil {
  5155  		return nil, err
  5156  	}
  5157  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5158  		defer sub.Unsubscribe()
  5159  		for {
  5160  			select {
  5161  			case log := <-logs:
  5162  				// New log arrived, parse the event and forward to the user
  5163  				event := new(AutoIncrementCoinageSnapshotFactorIncreased)
  5164  				if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  5165  					return err
  5166  				}
  5167  				event.Raw = log
  5168  
  5169  				select {
  5170  				case sink <- event:
  5171  				case err := <-sub.Err():
  5172  					return err
  5173  				case <-quit:
  5174  					return nil
  5175  				}
  5176  			case err := <-sub.Err():
  5177  				return err
  5178  			case <-quit:
  5179  				return nil
  5180  			}
  5181  		}
  5182  	}), nil
  5183  }
  5184  
  5185  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  5186  //
  5187  // Solidity: event FactorIncreased(uint256 factor)
  5188  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) ParseFactorIncreased(log types.Log) (*AutoIncrementCoinageSnapshotFactorIncreased, error) {
  5189  	event := new(AutoIncrementCoinageSnapshotFactorIncreased)
  5190  	if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  5191  		return nil, err
  5192  	}
  5193  	return event, nil
  5194  }
  5195  
  5196  // AutoIncrementCoinageSnapshotNewCloneTokenIterator is returned from FilterNewCloneToken and is used to iterate over the raw logs and unpacked data for NewCloneToken events raised by the AutoIncrementCoinageSnapshot contract.
  5197  type AutoIncrementCoinageSnapshotNewCloneTokenIterator struct {
  5198  	Event *AutoIncrementCoinageSnapshotNewCloneToken // Event containing the contract specifics and raw log
  5199  
  5200  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5201  	event    string              // Event name to use for unpacking event data
  5202  
  5203  	logs chan types.Log        // Log channel receiving the found contract events
  5204  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5205  	done bool                  // Whether the subscription completed delivering logs
  5206  	fail error                 // Occurred error to stop iteration
  5207  }
  5208  
  5209  // Next advances the iterator to the subsequent event, returning whether there
  5210  // are any more events found. In case of a retrieval or parsing error, false is
  5211  // returned and Error() can be queried for the exact failure.
  5212  func (it *AutoIncrementCoinageSnapshotNewCloneTokenIterator) Next() bool {
  5213  	// If the iterator failed, stop iterating
  5214  	if it.fail != nil {
  5215  		return false
  5216  	}
  5217  	// If the iterator completed, deliver directly whatever's available
  5218  	if it.done {
  5219  		select {
  5220  		case log := <-it.logs:
  5221  			it.Event = new(AutoIncrementCoinageSnapshotNewCloneToken)
  5222  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5223  				it.fail = err
  5224  				return false
  5225  			}
  5226  			it.Event.Raw = log
  5227  			return true
  5228  
  5229  		default:
  5230  			return false
  5231  		}
  5232  	}
  5233  	// Iterator still in progress, wait for either a data or an error event
  5234  	select {
  5235  	case log := <-it.logs:
  5236  		it.Event = new(AutoIncrementCoinageSnapshotNewCloneToken)
  5237  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5238  			it.fail = err
  5239  			return false
  5240  		}
  5241  		it.Event.Raw = log
  5242  		return true
  5243  
  5244  	case err := <-it.sub.Err():
  5245  		it.done = true
  5246  		it.fail = err
  5247  		return it.Next()
  5248  	}
  5249  }
  5250  
  5251  // Error returns any retrieval or parsing error occurred during filtering.
  5252  func (it *AutoIncrementCoinageSnapshotNewCloneTokenIterator) Error() error {
  5253  	return it.fail
  5254  }
  5255  
  5256  // Close terminates the iteration process, releasing any pending underlying
  5257  // resources.
  5258  func (it *AutoIncrementCoinageSnapshotNewCloneTokenIterator) Close() error {
  5259  	it.sub.Unsubscribe()
  5260  	return nil
  5261  }
  5262  
  5263  // AutoIncrementCoinageSnapshotNewCloneToken represents a NewCloneToken event raised by the AutoIncrementCoinageSnapshot contract.
  5264  type AutoIncrementCoinageSnapshotNewCloneToken struct {
  5265  	CloneToken    common.Address
  5266  	SnapshotBlock *big.Int
  5267  	Raw           types.Log // Blockchain specific contextual infos
  5268  }
  5269  
  5270  // FilterNewCloneToken is a free log retrieval operation binding the contract event 0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade.
  5271  //
  5272  // Solidity: event NewCloneToken(address indexed cloneToken, uint256 snapshotBlock)
  5273  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) FilterNewCloneToken(opts *bind.FilterOpts, cloneToken []common.Address) (*AutoIncrementCoinageSnapshotNewCloneTokenIterator, error) {
  5274  
  5275  	var cloneTokenRule []interface{}
  5276  	for _, cloneTokenItem := range cloneToken {
  5277  		cloneTokenRule = append(cloneTokenRule, cloneTokenItem)
  5278  	}
  5279  
  5280  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.FilterLogs(opts, "NewCloneToken", cloneTokenRule)
  5281  	if err != nil {
  5282  		return nil, err
  5283  	}
  5284  	return &AutoIncrementCoinageSnapshotNewCloneTokenIterator{contract: _AutoIncrementCoinageSnapshot.contract, event: "NewCloneToken", logs: logs, sub: sub}, nil
  5285  }
  5286  
  5287  // WatchNewCloneToken is a free log subscription operation binding the contract event 0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade.
  5288  //
  5289  // Solidity: event NewCloneToken(address indexed cloneToken, uint256 snapshotBlock)
  5290  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) WatchNewCloneToken(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageSnapshotNewCloneToken, cloneToken []common.Address) (event.Subscription, error) {
  5291  
  5292  	var cloneTokenRule []interface{}
  5293  	for _, cloneTokenItem := range cloneToken {
  5294  		cloneTokenRule = append(cloneTokenRule, cloneTokenItem)
  5295  	}
  5296  
  5297  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.WatchLogs(opts, "NewCloneToken", cloneTokenRule)
  5298  	if err != nil {
  5299  		return nil, err
  5300  	}
  5301  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5302  		defer sub.Unsubscribe()
  5303  		for {
  5304  			select {
  5305  			case log := <-logs:
  5306  				// New log arrived, parse the event and forward to the user
  5307  				event := new(AutoIncrementCoinageSnapshotNewCloneToken)
  5308  				if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "NewCloneToken", log); err != nil {
  5309  					return err
  5310  				}
  5311  				event.Raw = log
  5312  
  5313  				select {
  5314  				case sink <- event:
  5315  				case err := <-sub.Err():
  5316  					return err
  5317  				case <-quit:
  5318  					return nil
  5319  				}
  5320  			case err := <-sub.Err():
  5321  				return err
  5322  			case <-quit:
  5323  				return nil
  5324  			}
  5325  		}
  5326  	}), nil
  5327  }
  5328  
  5329  // ParseNewCloneToken is a log parse operation binding the contract event 0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade.
  5330  //
  5331  // Solidity: event NewCloneToken(address indexed cloneToken, uint256 snapshotBlock)
  5332  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) ParseNewCloneToken(log types.Log) (*AutoIncrementCoinageSnapshotNewCloneToken, error) {
  5333  	event := new(AutoIncrementCoinageSnapshotNewCloneToken)
  5334  	if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "NewCloneToken", log); err != nil {
  5335  		return nil, err
  5336  	}
  5337  	return event, nil
  5338  }
  5339  
  5340  // AutoIncrementCoinageSnapshotTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the AutoIncrementCoinageSnapshot contract.
  5341  type AutoIncrementCoinageSnapshotTransferIterator struct {
  5342  	Event *AutoIncrementCoinageSnapshotTransfer // Event containing the contract specifics and raw log
  5343  
  5344  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5345  	event    string              // Event name to use for unpacking event data
  5346  
  5347  	logs chan types.Log        // Log channel receiving the found contract events
  5348  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5349  	done bool                  // Whether the subscription completed delivering logs
  5350  	fail error                 // Occurred error to stop iteration
  5351  }
  5352  
  5353  // Next advances the iterator to the subsequent event, returning whether there
  5354  // are any more events found. In case of a retrieval or parsing error, false is
  5355  // returned and Error() can be queried for the exact failure.
  5356  func (it *AutoIncrementCoinageSnapshotTransferIterator) Next() bool {
  5357  	// If the iterator failed, stop iterating
  5358  	if it.fail != nil {
  5359  		return false
  5360  	}
  5361  	// If the iterator completed, deliver directly whatever's available
  5362  	if it.done {
  5363  		select {
  5364  		case log := <-it.logs:
  5365  			it.Event = new(AutoIncrementCoinageSnapshotTransfer)
  5366  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5367  				it.fail = err
  5368  				return false
  5369  			}
  5370  			it.Event.Raw = log
  5371  			return true
  5372  
  5373  		default:
  5374  			return false
  5375  		}
  5376  	}
  5377  	// Iterator still in progress, wait for either a data or an error event
  5378  	select {
  5379  	case log := <-it.logs:
  5380  		it.Event = new(AutoIncrementCoinageSnapshotTransfer)
  5381  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5382  			it.fail = err
  5383  			return false
  5384  		}
  5385  		it.Event.Raw = log
  5386  		return true
  5387  
  5388  	case err := <-it.sub.Err():
  5389  		it.done = true
  5390  		it.fail = err
  5391  		return it.Next()
  5392  	}
  5393  }
  5394  
  5395  // Error returns any retrieval or parsing error occurred during filtering.
  5396  func (it *AutoIncrementCoinageSnapshotTransferIterator) Error() error {
  5397  	return it.fail
  5398  }
  5399  
  5400  // Close terminates the iteration process, releasing any pending underlying
  5401  // resources.
  5402  func (it *AutoIncrementCoinageSnapshotTransferIterator) Close() error {
  5403  	it.sub.Unsubscribe()
  5404  	return nil
  5405  }
  5406  
  5407  // AutoIncrementCoinageSnapshotTransfer represents a Transfer event raised by the AutoIncrementCoinageSnapshot contract.
  5408  type AutoIncrementCoinageSnapshotTransfer struct {
  5409  	From  common.Address
  5410  	To    common.Address
  5411  	Value *big.Int
  5412  	Raw   types.Log // Blockchain specific contextual infos
  5413  }
  5414  
  5415  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  5416  //
  5417  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  5418  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*AutoIncrementCoinageSnapshotTransferIterator, error) {
  5419  
  5420  	var fromRule []interface{}
  5421  	for _, fromItem := range from {
  5422  		fromRule = append(fromRule, fromItem)
  5423  	}
  5424  	var toRule []interface{}
  5425  	for _, toItem := range to {
  5426  		toRule = append(toRule, toItem)
  5427  	}
  5428  
  5429  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  5430  	if err != nil {
  5431  		return nil, err
  5432  	}
  5433  	return &AutoIncrementCoinageSnapshotTransferIterator{contract: _AutoIncrementCoinageSnapshot.contract, event: "Transfer", logs: logs, sub: sub}, nil
  5434  }
  5435  
  5436  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  5437  //
  5438  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  5439  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *AutoIncrementCoinageSnapshotTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  5440  
  5441  	var fromRule []interface{}
  5442  	for _, fromItem := range from {
  5443  		fromRule = append(fromRule, fromItem)
  5444  	}
  5445  	var toRule []interface{}
  5446  	for _, toItem := range to {
  5447  		toRule = append(toRule, toItem)
  5448  	}
  5449  
  5450  	logs, sub, err := _AutoIncrementCoinageSnapshot.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  5451  	if err != nil {
  5452  		return nil, err
  5453  	}
  5454  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5455  		defer sub.Unsubscribe()
  5456  		for {
  5457  			select {
  5458  			case log := <-logs:
  5459  				// New log arrived, parse the event and forward to the user
  5460  				event := new(AutoIncrementCoinageSnapshotTransfer)
  5461  				if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "Transfer", log); err != nil {
  5462  					return err
  5463  				}
  5464  				event.Raw = log
  5465  
  5466  				select {
  5467  				case sink <- event:
  5468  				case err := <-sub.Err():
  5469  					return err
  5470  				case <-quit:
  5471  					return nil
  5472  				}
  5473  			case err := <-sub.Err():
  5474  				return err
  5475  			case <-quit:
  5476  				return nil
  5477  			}
  5478  		}
  5479  	}), nil
  5480  }
  5481  
  5482  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  5483  //
  5484  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  5485  func (_AutoIncrementCoinageSnapshot *AutoIncrementCoinageSnapshotFilterer) ParseTransfer(log types.Log) (*AutoIncrementCoinageSnapshotTransfer, error) {
  5486  	event := new(AutoIncrementCoinageSnapshotTransfer)
  5487  	if err := _AutoIncrementCoinageSnapshot.contract.UnpackLog(event, "Transfer", log); err != nil {
  5488  		return nil, err
  5489  	}
  5490  	return event, nil
  5491  }
  5492  
  5493  // AutoIncrementCoinageSnapshotFactoryABI is the input ABI used to generate the binding from.
  5494  const AutoIncrementCoinageSnapshotFactoryABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_parentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotBlock\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_factorIncrement\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"name\":\"createCloneToken\",\"outputs\":[{\"internalType\":\"contractAutoIncrementCoinageSnapshot\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  5495  
  5496  // AutoIncrementCoinageSnapshotFactoryFuncSigs maps the 4-byte function signature to its string representation.
  5497  var AutoIncrementCoinageSnapshotFactoryFuncSigs = map[string]string{
  5498  	"539a3ab9": "createCloneToken(address,uint256,string,string,uint256,uint256,bool)",
  5499  }
  5500  
  5501  // AutoIncrementCoinageSnapshotFactoryBin is the compiled bytecode used for deploying new contracts.
  5502  var AutoIncrementCoinageSnapshotFactoryBin = "0x608060405234801561001057600080fd5b50612be0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063539a3ab914610030575b600080fd5b61017f600480360360e081101561004657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561007657600080fd5b82018360208201111561008857600080fd5b803590602001918460018302840111640100000000831117156100aa57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156100fd57600080fd5b82018360208201111561010f57600080fd5b8035906020019184600183028401116401000000008311171561013157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060208101359060400135151561019b565b604080516001600160a01b039092168252519081900360200190f35b60008030898989898989896040516101b290610363565b80896001600160a01b03166001600160a01b03168152602001886001600160a01b03166001600160a01b03168152602001878152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019080838360005b8381101561023c578181015183820152602001610224565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561029c578181015183820152602001610284565b50505050905090810190601f1680156102c95780820380516001836020036101000a031916815260200191505b509a5050505050505050505050604051809103906000f0801580156102f2573d6000803e3d6000fd5b5060408051633cebb82360e01b815233600482015290519192506001600160a01b03831691633cebb8239160248082019260009290919082900301818387803b15801561033e57600080fd5b505af1158015610352573d6000803e3d6000fd5b50929b9a5050505050505050505050565b61283b806103718339019056fe60c0604052600960808190527f435f4d4d545f302e31000000000000000000000000000000000000000000000060a090815262000040916003919062000417565b503480156200004e57600080fd5b506040516200283b3803806200283b83398181016040526101008110156200007557600080fd5b815160208301516040808501516060860180519251949693959194939182019284640100000000821115620000a957600080fd5b908301906020820185811115620000bf57600080fd5b8251640100000000811182820188101715620000da57600080fd5b82525081516020918201929091019080838360005b8381101562000109578181015183820152602001620000ef565b50505050905090810190601f168015620001375780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015b57600080fd5b9083019060208201858111156200017157600080fd5b82516401000000008111828201881017156200018c57600080fd5b82525081516020918201929091019080838360005b83811015620001bb578181015183820152602001620001a1565b50505050905090810190601f168015620001e95780820380516001836020036101000a031916815260200191505b50604090815260208281015191830151606090930151600080546001600160a01b03191633179055600a80546001600160a01b038d1661010002610100600160a81b031990911617905587519295509293506200024c9160019188019062000417565b5083516200026290600290602087019062000417565b50600480546001600160a01b0319166001600160a01b0389811691909117918290556005889055600c849055600a805460ff1916841515179055436006558491620002ae9116620003ee565b156200034d5760048054600554604080517f713a496500000000000000000000000000000000000000000000000000000000815293840191909152516001600160a01b039091169163713a4965916024808301926020929190829003018186803b1580156200031c57600080fd5b505afa15801562000331573d6000803e3d6000fd5b505050506040513d60208110156200034857600080fd5b505190505b600b6040518060400160405280436001600160801b031681526020018360001462000379578362000383565b670de0b6b3a76400005b6001600160801b039081169091528254600181018455600093845260209384902083519101805494909301518216700100000000000000000000000000000000029082166001600160801b0319909416939093171691909117905550620004bc975050505050505050565b6000806001600160a01b0383166200040b57600091505062000412565b5050803b15155b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200045a57805160ff19168380011785556200048a565b828001600101855582156200048a579182015b828111156200048a5782518255916020019190600101906200046d565b50620004989291506200049c565b5090565b620004b991905b80821115620004985760008155600101620004a3565b90565b61236f80620004cc6000396000f3fe6080604052600436106101d85760003560e01c806380a5400111610102578063cae9ca5111610095578063df8de3e711610064578063df8de3e714610911578063e77772fe14610944578063f41e60c514610959578063f77c479114610985576101d8565b8063cae9ca51146107c0578063d3ce77fe14610888578063d4132ee2146108c1578063dd62ed3e146108d6576101d8565b8063a9059cbb116100d1578063a9059cbb14610724578063ab1e85431461075d578063bef97c8714610796578063c5bcc4f1146107ab576101d8565b806380a5400114610697578063827f32c0146106ac57806395d89b41146106e5578063981b24d0146106fa576101d8565b8063313ce5671161017a57806354fd4d501161014957806354fd4d50146104bc5780636c634905146104d157806370a082311461063a578063713a49651461066d576101d8565b8063313ce567146104105780633cebb8231461043b5780634ee2cd7e1461046e57806354f703f8146104a7576101d8565b806317634514116101b6578063176345141461038e57806318160ddd146103a357806323b872dd146103b85780632c6add4b146103fb576101d8565b806306fdde031461027b578063095ea7b31461030557806311b38ebb14610352575b6000546101ed906001600160a01b031661099a565b6101f657600080fd5b60005460408051633d230c1560e21b815233600482015290516001600160a01b039092169163f48c3054913491602480830192602092919082900301818588803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b50505050506040513d602081101561026e57600080fd5b505161027957600080fd5b005b34801561028757600080fd5b506102906109c1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ca5781810151838201526020016102b2565b50505050905090810190601f1680156102f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031157600080fd5b5061033e6004803603604081101561032857600080fd5b506001600160a01b038135169060200135610a4e565b604080519115158252519081900360200190f35b34801561035e57600080fd5b5061037c6004803603602081101561037557600080fd5b5035610bdf565b60408051918252519081900360200190f35b34801561039a57600080fd5b5061037c610cdb565b3480156103af57600080fd5b5061037c610ce1565b3480156103c457600080fd5b5061033e600480360360608110156103db57600080fd5b506001600160a01b03813581169160208101359091169060400135610cf2565b34801561040757600080fd5b5061037c610df0565b34801561041c57600080fd5b50610425610dfc565b6040805160ff9092168252519081900360200190f35b34801561044757600080fd5b506102796004803603602081101561045e57600080fd5b50356001600160a01b0316610e01565b34801561047a57600080fd5b5061037c6004803603604081101561049157600080fd5b506001600160a01b038135169060200135610e3a565b3480156104b357600080fd5b5061037c610e56565b3480156104c857600080fd5b50610290610e61565b3480156104dd57600080fd5b5061061e600480360360c08110156104f457600080fd5b81019060208101813564010000000081111561050f57600080fd5b82018360208201111561052157600080fd5b8035906020019184600183028401116401000000008311171561054357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561059657600080fd5b8201836020820111156105a857600080fd5b803590602001918460018302840111640100000000831117156105ca57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602081013590604081013590606001351515610ebc565b604080516001600160a01b039092168252519081900360200190f35b34801561064657600080fd5b5061037c6004803603602081101561065d57600080fd5b50356001600160a01b0316611104565b34801561067957600080fd5b5061037c6004803603602081101561069057600080fd5b5035611110565b3480156106a357600080fd5b5061061e6111e5565b3480156106b857600080fd5b5061033e600480360360408110156106cf57600080fd5b506001600160a01b0381351690602001356111f4565b3480156106f157600080fd5b5061029061136d565b34801561070657600080fd5b5061037c6004803603602081101561071d57600080fd5b50356113c5565b34801561073057600080fd5b5061033e6004803603604081101561074757600080fd5b506001600160a01b0381351690602001356113d3565b34801561076957600080fd5b5061037c6004803603604081101561078057600080fd5b506001600160a01b0381351690602001356113f9565b3480156107a257600080fd5b5061033e61150f565b3480156107b757600080fd5b5061037c611518565b3480156107cc57600080fd5b5061033e600480360360608110156107e357600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561081357600080fd5b82018360208201111561082557600080fd5b8035906020019184600183028401116401000000008311171561084757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061151e945050505050565b34801561089457600080fd5b5061033e600480360360408110156108ab57600080fd5b506001600160a01b03813516906020013561161e565b3480156108cd57600080fd5b5061037c611761565b3480156108e257600080fd5b5061037c600480360360408110156108f957600080fd5b506001600160a01b0381358116916020013516611767565b34801561091d57600080fd5b506102796004803603602081101561093457600080fd5b50356001600160a01b0316611792565b34801561095057600080fd5b5061061e611942565b34801561096557600080fd5b506102796004803603602081101561097c57600080fd5b50351515611956565b34801561099157600080fd5b5061061e611980565b6000806001600160a01b0383166109b55760009150506109bc565b5050803b15155b919050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a465780601f10610a1b57610100808354040283529160200191610a46565b820191906000526020600020905b815481529060010190602001808311610a2957829003601f168201915b505050505081565b600a5460009060ff16610a6057600080fd5b811580610a8e57503360009081526008602090815260408083206001600160a01b0387168452909152902054155b610ac95760405162461bcd60e51b81526004018080602001828103825260348152602001806122316034913960400191505060405180910390fd5b600054610ade906001600160a01b031661099a565b15610b7757600080546040805163da682aeb60e01b81523360048201526001600160a01b038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b505050506040513d6020811015610b6c57600080fd5b5051610b7757600080fd5b3360008181526008602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6009546000901580610c125750816009600081548110610bfb57fe5b6000918252602090912001546001600160801b0316115b15610cc9576004546001600160a01b031615610cc1576000610c368360055461198f565b6004805460408051630981b24d60e41b815292830184905251929350610cb9926001600160a01b039091169163981b24d0916024808301926020929190829003018186803b158015610c8757600080fd5b505afa158015610c9b573d6000803e3d6000fd5b505050506040513d6020811015610cb157600080fd5b5051826119a5565b9150506109bc565b5060006109bc565b610cd46009836119b4565b90506109bc565b60065481565b6000610cec436113c5565b90505b90565b600080546001600160a01b03163314610ddb57600a5460ff16610d1457600080fd5b6001600160a01b0384166000908152600860209081526040808320338452909152902054821115610d765760405162461bcd60e51b815260040180806020018281038252603f8152602001806122a2603f913960400191505060405180910390fd5b6001600160a01b03841660008181526008602090815260408083203380855290835292819020805487900390819055815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35b610de68484846119cd565b5060019392505050565b670de0b6b3a764000081565b601281565b6000546001600160a01b03163314610e1857600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e4f610e4984846113f9565b83611d51565b9392505050565b6000610cec43611110565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a465780601f10610a1b57610100808354040283529160200191610a46565b600082610ec7574392505b6000600a60019054906101000a90046001600160a01b03166001600160a01b031663539a3ab930868b8b8b8b8a6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001878152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019080838360005b83811015610f78578181015183820152602001610f60565b50505050905090810190601f168015610fa55780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b83811015610fd8578181015183820152602001610fc0565b50505050905090810190601f1680156110055780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561102b57600080fd5b505af115801561103f573d6000803e3d6000fd5b505050506040513d602081101561105557600080fd5b505160408051633cebb82360e01b815233600482015290519192506001600160a01b03831691633cebb8239160248082019260009290919082900301818387803b1580156110a257600080fd5b505af11580156110b6573d6000803e3d6000fd5b50506040805187815290516001600160a01b03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a2979650505050505050565b6000610bd98243610e3a565b600081600b60008154811061112157fe5b6000918252602090912001546001600160801b031611156111ac57610cd4600b60008154811061114d57fe5b9060005260206000200160000160109054906101000a90046001600160801b03166001600160801b03166111a7600c5485600b60008154811061118c57fe5b6000918252602090912001546001600160801b031603611d60565b611db6565b6000806111ba600b85611de7565b915091506111dc826111d7600c546111d28886611f9e565b611d60565b611fee565b925050506109bc565b6004546001600160a01b031681565b600080546001600160a01b0316331461120c57600080fd5b600b805460009190600019810190811061122257fe5b600091825260209091200180549091506001600160801b03600160801b8204811691164303801561129e5761125d826111d7600c5484611d60565b915061126a600b83612016565b6040805183815290517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a15b60006112aa86436119a5565b905060006112b743610bdf565b9050808282016001600160801b031610156112d157600080fd5b60006112dd89436113f9565b9050808382016001600160801b031610156112f757600080fd5b6113046009848401612016565b6001600160a01b038916600090815260076020526040902061132890828501612016565b6001600160a01b03891660006000805160206122e183398151915261134d8643611d51565b60408051918252519081900360200190a350600198975050505050505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a465780601f10610a1b57610100808354040283529160200191610a46565b6000610bd9610e4983610bdf565b600a5460009060ff166113e557600080fd5b6113f03384846119cd565b50600192915050565b6001600160a01b038216600090815260076020526040812054158061145357506001600160a01b0383166000908152600760205260408120805484929061143c57fe5b6000918252602090912001546001600160801b0316115b156114e6576004546001600160a01b0316156114de5760006114778360055461198f565b600480546040805163277166bf60e11b81526001600160a01b03898116948201949094526024810185905290519394506114d6939290911691634ee2cd7e91604480820192602092909190829003018186803b158015610c8757600080fd5b915050610bd9565b506000610bd9565b6001600160a01b038316600090815260076020526040902061150890836119b4565b9050610bd9565b600a5460ff1681565b60055481565b600061152a8484610a4e565b61153357600080fd5b604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b838110156115ad578181015183820152602001611595565b50505050905090810190601f1680156115da5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115fc57600080fd5b505af1158015611610573d6000803e3d6000fd5b506001979650505050505050565b600080546001600160a01b0316331461163657600080fd5b600b805460009190600019810190811061164c57fe5b600091825260209091200180549091506001600160801b03600160801b820481169116430380156116c857611687826111d7600c5484611d60565b9150611694600b83612016565b6040805183815290517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a15b60006116d486436119a5565b905060006116e143610bdf565b9050818110156116f057600080fd5b60006116fc89436113f9565b90508281101561170b57600080fd5b6117186009848403612016565b6001600160a01b038916600090815260076020526040902061173c90848303612016565b60006001600160a01b038a166000805160206122e183398151915261134d8643611d51565b600c5481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633146117a957600080fd5b6001600160a01b0381166117f857600080546040516001600160a01b0390911691303180156108fc02929091818181858888f193505050501580156117f2573d6000803e3d6000fd5b5061193f565b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050506040513d60208110156118f457600080fd5b50506000546040805183815290516001600160a01b03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a5461010090046001600160a01b031681565b6000546001600160a01b0316331461196d57600080fd5b600a805460ff1916911515919091179055565b6000546001600160a01b031681565b600081831061199e5781610e4f565b5090919050565b6000610e4f836111a784611110565b60008060006119c38585611de7565b5095945050505050565b600b80546000919060001981019081106119e357fe5b600091825260209091200180549091506001600160801b03600160801b82048116911643038015611a5f57611a1e826111d7600c5484611d60565b9150611a2b600b83612016565b6040805183815290517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a15b83611aa257846001600160a01b0316866001600160a01b03166000805160206122e1833981519152866040518082815260200191505060405180910390a3611d49565b4360055410611add576040805162461bcd60e51b8152602060048201526002602482015261543f60f01b604482015290519081900360640190fd5b6001600160a01b038516611b225760405162461bcd60e51b815260040180806020018281038252603a815260200180612301603a913960400191505060405180910390fd5b6001600160a01b038516301415611b6a5760405162461bcd60e51b81526004018080602001828103825260338152602001806121fe6033913960400191505060405180910390fd5b6000611b7687436113f9565b90506000611b8486436119a5565b905080821015611bc55760405162461bcd60e51b815260040180806020018281038252603d815260200180612265603d913960400191505060405180910390fd5b600054611bda906001600160a01b031661099a565b15611c99576000546001600160a01b0316634a3931498989611bfc8543611d51565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611c6457600080fd5b505af1158015611c78573d6000803e3d6000fd5b505050506040513d6020811015611c8e57600080fd5b5051611c9957600080fd5b6001600160a01b0388166000908152600760205260409020611cbd90828403612016565b6000611cc988436113f9565b9050808282016001600160801b03161015611ce357600080fd5b6001600160a01b0388166000908152600760205260409020611d0790828401612016565b876001600160a01b0316896001600160a01b03166000805160206122e1833981519152611d348543611d51565b60408051918252519081900360200190a35050505b505050505050565b6000610e4f836111d784611110565b600060028206611d7857670de0b6b3a7640000611d7a565b825b90506002820491505b8115610bd957611d938384611fee565b92506002820615611dab57611da88184611fee565b90505b600282049150611d83565b600081611dd8611dce85670de0b6b3a7640000612104565b6002855b04612167565b81611ddf57fe5b049392505050565b81546000908190611dfd57506000905080611f97565b835484906000198101908110611e0f57fe5b6000918252602090912001546001600160801b03168310611e8d57835484906000198101908110611e3c57fe5b6000918252602090912001548454600160801b9091046001600160801b03169085906000198101908110611e6c57fe5b6000918252602090912001546001600160801b039182169350169050611f97565b83600081548110611e9a57fe5b6000918252602090912001546001600160801b0316831015611ee457600084600081548110611ec557fe5b6000918252602090912001549092506001600160801b03169050611f97565b8354600090600019015b81811115611f3f576000600260018385010104905085878281548110611f1057fe5b6000918252602090912001546001600160801b031611611f3257809250611f39565b6001810391505b50611eee565b858281548110611f4b57fe5b9060005260206000200160000160109054906101000a90046001600160801b0316868381548110611f7857fe5b6000918252602090912001546001600160801b03918216955016925050505b9250929050565b80820382811115610bd9576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000670de0b6b3a7640000611dd86120068585612104565b6002670de0b6b3a7640000611dd2565b806001600160801b0316811461202b57600080fd5b8154158061205f5750815443908390600019810190811061204857fe5b6000918252602090912001546001600160801b0316105b156120c6578154600090839061207882600183016121b6565b8154811061208257fe5b600091825260209091200180546001600160801b03848116600160801b024382166fffffffffffffffffffffffffffffffff19909316929092171617905550612100565b8154600090839060001981019081106120db57fe5b600091825260209091200180546001600160801b03808516600160801b029116179055505b5050565b600081158061211f5750508082028282828161211c57fe5b04145b610bd9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015610bd9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b8154818355818111156121da576000838152602090206121da9181019083016121df565b505050565b610cef91905b808211156121f957600081556001016121e5565b509056fe4175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220746f2074686520746f6b656e4175746f496e6372656d656e74436f696e616765536e617073686f743a20696e76616c696420617070726f766520616d6f756e744175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4175746f496e6372656d656e74436f696e616765536e617073686f743a207472616e7366657220746f20746865207a65726f2061646472657373a265627a7a723158207aeeee210715a1cd34b693ea8c4a67bda83af1a06d724cfbba22c248b33bee4464736f6c634300050c0032a265627a7a72315820aec18d9e7381efd5715436f67d2e27b54a9e7aa1f47eb4bced0ea2b09a30e54064736f6c634300050c0032"
  5503  
  5504  // DeployAutoIncrementCoinageSnapshotFactory deploys a new Ethereum contract, binding an instance of AutoIncrementCoinageSnapshotFactory to it.
  5505  func DeployAutoIncrementCoinageSnapshotFactory(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AutoIncrementCoinageSnapshotFactory, error) {
  5506  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageSnapshotFactoryABI))
  5507  	if err != nil {
  5508  		return common.Address{}, nil, nil, err
  5509  	}
  5510  
  5511  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AutoIncrementCoinageSnapshotFactoryBin), backend)
  5512  	if err != nil {
  5513  		return common.Address{}, nil, nil, err
  5514  	}
  5515  	return address, tx, &AutoIncrementCoinageSnapshotFactory{AutoIncrementCoinageSnapshotFactoryCaller: AutoIncrementCoinageSnapshotFactoryCaller{contract: contract}, AutoIncrementCoinageSnapshotFactoryTransactor: AutoIncrementCoinageSnapshotFactoryTransactor{contract: contract}, AutoIncrementCoinageSnapshotFactoryFilterer: AutoIncrementCoinageSnapshotFactoryFilterer{contract: contract}}, nil
  5516  }
  5517  
  5518  // AutoIncrementCoinageSnapshotFactory is an auto generated Go binding around an Ethereum contract.
  5519  type AutoIncrementCoinageSnapshotFactory struct {
  5520  	AutoIncrementCoinageSnapshotFactoryCaller     // Read-only binding to the contract
  5521  	AutoIncrementCoinageSnapshotFactoryTransactor // Write-only binding to the contract
  5522  	AutoIncrementCoinageSnapshotFactoryFilterer   // Log filterer for contract events
  5523  }
  5524  
  5525  // AutoIncrementCoinageSnapshotFactoryCaller is an auto generated read-only Go binding around an Ethereum contract.
  5526  type AutoIncrementCoinageSnapshotFactoryCaller struct {
  5527  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5528  }
  5529  
  5530  // AutoIncrementCoinageSnapshotFactoryTransactor is an auto generated write-only Go binding around an Ethereum contract.
  5531  type AutoIncrementCoinageSnapshotFactoryTransactor struct {
  5532  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5533  }
  5534  
  5535  // AutoIncrementCoinageSnapshotFactoryFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  5536  type AutoIncrementCoinageSnapshotFactoryFilterer struct {
  5537  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5538  }
  5539  
  5540  // AutoIncrementCoinageSnapshotFactorySession is an auto generated Go binding around an Ethereum contract,
  5541  // with pre-set call and transact options.
  5542  type AutoIncrementCoinageSnapshotFactorySession struct {
  5543  	Contract     *AutoIncrementCoinageSnapshotFactory // Generic contract binding to set the session for
  5544  	CallOpts     bind.CallOpts                        // Call options to use throughout this session
  5545  	TransactOpts bind.TransactOpts                    // Transaction auth options to use throughout this session
  5546  }
  5547  
  5548  // AutoIncrementCoinageSnapshotFactoryCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  5549  // with pre-set call options.
  5550  type AutoIncrementCoinageSnapshotFactoryCallerSession struct {
  5551  	Contract *AutoIncrementCoinageSnapshotFactoryCaller // Generic contract caller binding to set the session for
  5552  	CallOpts bind.CallOpts                              // Call options to use throughout this session
  5553  }
  5554  
  5555  // AutoIncrementCoinageSnapshotFactoryTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  5556  // with pre-set transact options.
  5557  type AutoIncrementCoinageSnapshotFactoryTransactorSession struct {
  5558  	Contract     *AutoIncrementCoinageSnapshotFactoryTransactor // Generic contract transactor binding to set the session for
  5559  	TransactOpts bind.TransactOpts                              // Transaction auth options to use throughout this session
  5560  }
  5561  
  5562  // AutoIncrementCoinageSnapshotFactoryRaw is an auto generated low-level Go binding around an Ethereum contract.
  5563  type AutoIncrementCoinageSnapshotFactoryRaw struct {
  5564  	Contract *AutoIncrementCoinageSnapshotFactory // Generic contract binding to access the raw methods on
  5565  }
  5566  
  5567  // AutoIncrementCoinageSnapshotFactoryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  5568  type AutoIncrementCoinageSnapshotFactoryCallerRaw struct {
  5569  	Contract *AutoIncrementCoinageSnapshotFactoryCaller // Generic read-only contract binding to access the raw methods on
  5570  }
  5571  
  5572  // AutoIncrementCoinageSnapshotFactoryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  5573  type AutoIncrementCoinageSnapshotFactoryTransactorRaw struct {
  5574  	Contract *AutoIncrementCoinageSnapshotFactoryTransactor // Generic write-only contract binding to access the raw methods on
  5575  }
  5576  
  5577  // NewAutoIncrementCoinageSnapshotFactory creates a new instance of AutoIncrementCoinageSnapshotFactory, bound to a specific deployed contract.
  5578  func NewAutoIncrementCoinageSnapshotFactory(address common.Address, backend bind.ContractBackend) (*AutoIncrementCoinageSnapshotFactory, error) {
  5579  	contract, err := bindAutoIncrementCoinageSnapshotFactory(address, backend, backend, backend)
  5580  	if err != nil {
  5581  		return nil, err
  5582  	}
  5583  	return &AutoIncrementCoinageSnapshotFactory{AutoIncrementCoinageSnapshotFactoryCaller: AutoIncrementCoinageSnapshotFactoryCaller{contract: contract}, AutoIncrementCoinageSnapshotFactoryTransactor: AutoIncrementCoinageSnapshotFactoryTransactor{contract: contract}, AutoIncrementCoinageSnapshotFactoryFilterer: AutoIncrementCoinageSnapshotFactoryFilterer{contract: contract}}, nil
  5584  }
  5585  
  5586  // NewAutoIncrementCoinageSnapshotFactoryCaller creates a new read-only instance of AutoIncrementCoinageSnapshotFactory, bound to a specific deployed contract.
  5587  func NewAutoIncrementCoinageSnapshotFactoryCaller(address common.Address, caller bind.ContractCaller) (*AutoIncrementCoinageSnapshotFactoryCaller, error) {
  5588  	contract, err := bindAutoIncrementCoinageSnapshotFactory(address, caller, nil, nil)
  5589  	if err != nil {
  5590  		return nil, err
  5591  	}
  5592  	return &AutoIncrementCoinageSnapshotFactoryCaller{contract: contract}, nil
  5593  }
  5594  
  5595  // NewAutoIncrementCoinageSnapshotFactoryTransactor creates a new write-only instance of AutoIncrementCoinageSnapshotFactory, bound to a specific deployed contract.
  5596  func NewAutoIncrementCoinageSnapshotFactoryTransactor(address common.Address, transactor bind.ContractTransactor) (*AutoIncrementCoinageSnapshotFactoryTransactor, error) {
  5597  	contract, err := bindAutoIncrementCoinageSnapshotFactory(address, nil, transactor, nil)
  5598  	if err != nil {
  5599  		return nil, err
  5600  	}
  5601  	return &AutoIncrementCoinageSnapshotFactoryTransactor{contract: contract}, nil
  5602  }
  5603  
  5604  // NewAutoIncrementCoinageSnapshotFactoryFilterer creates a new log filterer instance of AutoIncrementCoinageSnapshotFactory, bound to a specific deployed contract.
  5605  func NewAutoIncrementCoinageSnapshotFactoryFilterer(address common.Address, filterer bind.ContractFilterer) (*AutoIncrementCoinageSnapshotFactoryFilterer, error) {
  5606  	contract, err := bindAutoIncrementCoinageSnapshotFactory(address, nil, nil, filterer)
  5607  	if err != nil {
  5608  		return nil, err
  5609  	}
  5610  	return &AutoIncrementCoinageSnapshotFactoryFilterer{contract: contract}, nil
  5611  }
  5612  
  5613  // bindAutoIncrementCoinageSnapshotFactory binds a generic wrapper to an already deployed contract.
  5614  func bindAutoIncrementCoinageSnapshotFactory(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5615  	parsed, err := abi.JSON(strings.NewReader(AutoIncrementCoinageSnapshotFactoryABI))
  5616  	if err != nil {
  5617  		return nil, err
  5618  	}
  5619  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  5620  }
  5621  
  5622  // Call invokes the (constant) contract method with params as input values and
  5623  // sets the output to result. The result type might be a single field for simple
  5624  // returns, a slice of interfaces for anonymous returns and a struct for named
  5625  // returns.
  5626  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  5627  	return _AutoIncrementCoinageSnapshotFactory.Contract.AutoIncrementCoinageSnapshotFactoryCaller.contract.Call(opts, result, method, params...)
  5628  }
  5629  
  5630  // Transfer initiates a plain transaction to move funds to the contract, calling
  5631  // its default method if one is available.
  5632  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5633  	return _AutoIncrementCoinageSnapshotFactory.Contract.AutoIncrementCoinageSnapshotFactoryTransactor.contract.Transfer(opts)
  5634  }
  5635  
  5636  // Transact invokes the (paid) contract method with params as input values.
  5637  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5638  	return _AutoIncrementCoinageSnapshotFactory.Contract.AutoIncrementCoinageSnapshotFactoryTransactor.contract.Transact(opts, method, params...)
  5639  }
  5640  
  5641  // Call invokes the (constant) contract method with params as input values and
  5642  // sets the output to result. The result type might be a single field for simple
  5643  // returns, a slice of interfaces for anonymous returns and a struct for named
  5644  // returns.
  5645  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  5646  	return _AutoIncrementCoinageSnapshotFactory.Contract.contract.Call(opts, result, method, params...)
  5647  }
  5648  
  5649  // Transfer initiates a plain transaction to move funds to the contract, calling
  5650  // its default method if one is available.
  5651  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5652  	return _AutoIncrementCoinageSnapshotFactory.Contract.contract.Transfer(opts)
  5653  }
  5654  
  5655  // Transact invokes the (paid) contract method with params as input values.
  5656  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5657  	return _AutoIncrementCoinageSnapshotFactory.Contract.contract.Transact(opts, method, params...)
  5658  }
  5659  
  5660  // CreateCloneToken is a paid mutator transaction binding the contract method 0x539a3ab9.
  5661  //
  5662  // Solidity: function createCloneToken(address _parentToken, uint256 _snapshotBlock, string _tokenName, string _tokenSymbol, uint256 _factor, uint256 _factorIncrement, bool _transfersEnabled) returns(address)
  5663  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryTransactor) CreateCloneToken(opts *bind.TransactOpts, _parentToken common.Address, _snapshotBlock *big.Int, _tokenName string, _tokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
  5664  	return _AutoIncrementCoinageSnapshotFactory.contract.Transact(opts, "createCloneToken", _parentToken, _snapshotBlock, _tokenName, _tokenSymbol, _factor, _factorIncrement, _transfersEnabled)
  5665  }
  5666  
  5667  // CreateCloneToken is a paid mutator transaction binding the contract method 0x539a3ab9.
  5668  //
  5669  // Solidity: function createCloneToken(address _parentToken, uint256 _snapshotBlock, string _tokenName, string _tokenSymbol, uint256 _factor, uint256 _factorIncrement, bool _transfersEnabled) returns(address)
  5670  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactorySession) CreateCloneToken(_parentToken common.Address, _snapshotBlock *big.Int, _tokenName string, _tokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
  5671  	return _AutoIncrementCoinageSnapshotFactory.Contract.CreateCloneToken(&_AutoIncrementCoinageSnapshotFactory.TransactOpts, _parentToken, _snapshotBlock, _tokenName, _tokenSymbol, _factor, _factorIncrement, _transfersEnabled)
  5672  }
  5673  
  5674  // CreateCloneToken is a paid mutator transaction binding the contract method 0x539a3ab9.
  5675  //
  5676  // Solidity: function createCloneToken(address _parentToken, uint256 _snapshotBlock, string _tokenName, string _tokenSymbol, uint256 _factor, uint256 _factorIncrement, bool _transfersEnabled) returns(address)
  5677  func (_AutoIncrementCoinageSnapshotFactory *AutoIncrementCoinageSnapshotFactoryTransactorSession) CreateCloneToken(_parentToken common.Address, _snapshotBlock *big.Int, _tokenName string, _tokenSymbol string, _factor *big.Int, _factorIncrement *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
  5678  	return _AutoIncrementCoinageSnapshotFactory.Contract.CreateCloneToken(&_AutoIncrementCoinageSnapshotFactory.TransactOpts, _parentToken, _snapshotBlock, _tokenName, _tokenSymbol, _factor, _factorIncrement, _transfersEnabled)
  5679  }
  5680  
  5681  // ContextABI is the input ABI used to generate the binding from.
  5682  const ContextABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]"
  5683  
  5684  // Context is an auto generated Go binding around an Ethereum contract.
  5685  type Context struct {
  5686  	ContextCaller     // Read-only binding to the contract
  5687  	ContextTransactor // Write-only binding to the contract
  5688  	ContextFilterer   // Log filterer for contract events
  5689  }
  5690  
  5691  // ContextCaller is an auto generated read-only Go binding around an Ethereum contract.
  5692  type ContextCaller struct {
  5693  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5694  }
  5695  
  5696  // ContextTransactor is an auto generated write-only Go binding around an Ethereum contract.
  5697  type ContextTransactor struct {
  5698  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5699  }
  5700  
  5701  // ContextFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  5702  type ContextFilterer struct {
  5703  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5704  }
  5705  
  5706  // ContextSession is an auto generated Go binding around an Ethereum contract,
  5707  // with pre-set call and transact options.
  5708  type ContextSession struct {
  5709  	Contract     *Context          // Generic contract binding to set the session for
  5710  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5711  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5712  }
  5713  
  5714  // ContextCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  5715  // with pre-set call options.
  5716  type ContextCallerSession struct {
  5717  	Contract *ContextCaller // Generic contract caller binding to set the session for
  5718  	CallOpts bind.CallOpts  // Call options to use throughout this session
  5719  }
  5720  
  5721  // ContextTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  5722  // with pre-set transact options.
  5723  type ContextTransactorSession struct {
  5724  	Contract     *ContextTransactor // Generic contract transactor binding to set the session for
  5725  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  5726  }
  5727  
  5728  // ContextRaw is an auto generated low-level Go binding around an Ethereum contract.
  5729  type ContextRaw struct {
  5730  	Contract *Context // Generic contract binding to access the raw methods on
  5731  }
  5732  
  5733  // ContextCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  5734  type ContextCallerRaw struct {
  5735  	Contract *ContextCaller // Generic read-only contract binding to access the raw methods on
  5736  }
  5737  
  5738  // ContextTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  5739  type ContextTransactorRaw struct {
  5740  	Contract *ContextTransactor // Generic write-only contract binding to access the raw methods on
  5741  }
  5742  
  5743  // NewContext creates a new instance of Context, bound to a specific deployed contract.
  5744  func NewContext(address common.Address, backend bind.ContractBackend) (*Context, error) {
  5745  	contract, err := bindContext(address, backend, backend, backend)
  5746  	if err != nil {
  5747  		return nil, err
  5748  	}
  5749  	return &Context{ContextCaller: ContextCaller{contract: contract}, ContextTransactor: ContextTransactor{contract: contract}, ContextFilterer: ContextFilterer{contract: contract}}, nil
  5750  }
  5751  
  5752  // NewContextCaller creates a new read-only instance of Context, bound to a specific deployed contract.
  5753  func NewContextCaller(address common.Address, caller bind.ContractCaller) (*ContextCaller, error) {
  5754  	contract, err := bindContext(address, caller, nil, nil)
  5755  	if err != nil {
  5756  		return nil, err
  5757  	}
  5758  	return &ContextCaller{contract: contract}, nil
  5759  }
  5760  
  5761  // NewContextTransactor creates a new write-only instance of Context, bound to a specific deployed contract.
  5762  func NewContextTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextTransactor, error) {
  5763  	contract, err := bindContext(address, nil, transactor, nil)
  5764  	if err != nil {
  5765  		return nil, err
  5766  	}
  5767  	return &ContextTransactor{contract: contract}, nil
  5768  }
  5769  
  5770  // NewContextFilterer creates a new log filterer instance of Context, bound to a specific deployed contract.
  5771  func NewContextFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextFilterer, error) {
  5772  	contract, err := bindContext(address, nil, nil, filterer)
  5773  	if err != nil {
  5774  		return nil, err
  5775  	}
  5776  	return &ContextFilterer{contract: contract}, nil
  5777  }
  5778  
  5779  // bindContext binds a generic wrapper to an already deployed contract.
  5780  func bindContext(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5781  	parsed, err := abi.JSON(strings.NewReader(ContextABI))
  5782  	if err != nil {
  5783  		return nil, err
  5784  	}
  5785  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  5786  }
  5787  
  5788  // Call invokes the (constant) contract method with params as input values and
  5789  // sets the output to result. The result type might be a single field for simple
  5790  // returns, a slice of interfaces for anonymous returns and a struct for named
  5791  // returns.
  5792  func (_Context *ContextRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  5793  	return _Context.Contract.ContextCaller.contract.Call(opts, result, method, params...)
  5794  }
  5795  
  5796  // Transfer initiates a plain transaction to move funds to the contract, calling
  5797  // its default method if one is available.
  5798  func (_Context *ContextRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5799  	return _Context.Contract.ContextTransactor.contract.Transfer(opts)
  5800  }
  5801  
  5802  // Transact invokes the (paid) contract method with params as input values.
  5803  func (_Context *ContextRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5804  	return _Context.Contract.ContextTransactor.contract.Transact(opts, method, params...)
  5805  }
  5806  
  5807  // Call invokes the (constant) contract method with params as input values and
  5808  // sets the output to result. The result type might be a single field for simple
  5809  // returns, a slice of interfaces for anonymous returns and a struct for named
  5810  // returns.
  5811  func (_Context *ContextCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  5812  	return _Context.Contract.contract.Call(opts, result, method, params...)
  5813  }
  5814  
  5815  // Transfer initiates a plain transaction to move funds to the contract, calling
  5816  // its default method if one is available.
  5817  func (_Context *ContextTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5818  	return _Context.Contract.contract.Transfer(opts)
  5819  }
  5820  
  5821  // Transact invokes the (paid) contract method with params as input values.
  5822  func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5823  	return _Context.Contract.contract.Transact(opts, method, params...)
  5824  }
  5825  
  5826  // ControlledABI is the input ABI used to generate the binding from.
  5827  const ControlledABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newController\",\"type\":\"address\"}],\"name\":\"changeController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  5828  
  5829  // ControlledFuncSigs maps the 4-byte function signature to its string representation.
  5830  var ControlledFuncSigs = map[string]string{
  5831  	"3cebb823": "changeController(address)",
  5832  	"f77c4791": "controller()",
  5833  }
  5834  
  5835  // ControlledBin is the compiled bytecode used for deploying new contracts.
  5836  var ControlledBin = "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905560fa806100316000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80633cebb823146037578063f77c479114605c575b600080fd5b605a60048036036020811015604b57600080fd5b50356001600160a01b0316607e565b005b606260b6565b604080516001600160a01b039092168252519081900360200190f35b6000546001600160a01b03163314609457600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03168156fea265627a7a72315820bd5a1001fe40436fac6f4b558c0efe5f9b52127067f376011e85be7fc00cd70064736f6c634300050c0032"
  5837  
  5838  // DeployControlled deploys a new Ethereum contract, binding an instance of Controlled to it.
  5839  func DeployControlled(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Controlled, error) {
  5840  	parsed, err := abi.JSON(strings.NewReader(ControlledABI))
  5841  	if err != nil {
  5842  		return common.Address{}, nil, nil, err
  5843  	}
  5844  
  5845  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ControlledBin), backend)
  5846  	if err != nil {
  5847  		return common.Address{}, nil, nil, err
  5848  	}
  5849  	return address, tx, &Controlled{ControlledCaller: ControlledCaller{contract: contract}, ControlledTransactor: ControlledTransactor{contract: contract}, ControlledFilterer: ControlledFilterer{contract: contract}}, nil
  5850  }
  5851  
  5852  // Controlled is an auto generated Go binding around an Ethereum contract.
  5853  type Controlled struct {
  5854  	ControlledCaller     // Read-only binding to the contract
  5855  	ControlledTransactor // Write-only binding to the contract
  5856  	ControlledFilterer   // Log filterer for contract events
  5857  }
  5858  
  5859  // ControlledCaller is an auto generated read-only Go binding around an Ethereum contract.
  5860  type ControlledCaller struct {
  5861  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5862  }
  5863  
  5864  // ControlledTransactor is an auto generated write-only Go binding around an Ethereum contract.
  5865  type ControlledTransactor struct {
  5866  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5867  }
  5868  
  5869  // ControlledFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  5870  type ControlledFilterer struct {
  5871  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5872  }
  5873  
  5874  // ControlledSession is an auto generated Go binding around an Ethereum contract,
  5875  // with pre-set call and transact options.
  5876  type ControlledSession struct {
  5877  	Contract     *Controlled       // Generic contract binding to set the session for
  5878  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5879  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5880  }
  5881  
  5882  // ControlledCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  5883  // with pre-set call options.
  5884  type ControlledCallerSession struct {
  5885  	Contract *ControlledCaller // Generic contract caller binding to set the session for
  5886  	CallOpts bind.CallOpts     // Call options to use throughout this session
  5887  }
  5888  
  5889  // ControlledTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  5890  // with pre-set transact options.
  5891  type ControlledTransactorSession struct {
  5892  	Contract     *ControlledTransactor // Generic contract transactor binding to set the session for
  5893  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  5894  }
  5895  
  5896  // ControlledRaw is an auto generated low-level Go binding around an Ethereum contract.
  5897  type ControlledRaw struct {
  5898  	Contract *Controlled // Generic contract binding to access the raw methods on
  5899  }
  5900  
  5901  // ControlledCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  5902  type ControlledCallerRaw struct {
  5903  	Contract *ControlledCaller // Generic read-only contract binding to access the raw methods on
  5904  }
  5905  
  5906  // ControlledTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  5907  type ControlledTransactorRaw struct {
  5908  	Contract *ControlledTransactor // Generic write-only contract binding to access the raw methods on
  5909  }
  5910  
  5911  // NewControlled creates a new instance of Controlled, bound to a specific deployed contract.
  5912  func NewControlled(address common.Address, backend bind.ContractBackend) (*Controlled, error) {
  5913  	contract, err := bindControlled(address, backend, backend, backend)
  5914  	if err != nil {
  5915  		return nil, err
  5916  	}
  5917  	return &Controlled{ControlledCaller: ControlledCaller{contract: contract}, ControlledTransactor: ControlledTransactor{contract: contract}, ControlledFilterer: ControlledFilterer{contract: contract}}, nil
  5918  }
  5919  
  5920  // NewControlledCaller creates a new read-only instance of Controlled, bound to a specific deployed contract.
  5921  func NewControlledCaller(address common.Address, caller bind.ContractCaller) (*ControlledCaller, error) {
  5922  	contract, err := bindControlled(address, caller, nil, nil)
  5923  	if err != nil {
  5924  		return nil, err
  5925  	}
  5926  	return &ControlledCaller{contract: contract}, nil
  5927  }
  5928  
  5929  // NewControlledTransactor creates a new write-only instance of Controlled, bound to a specific deployed contract.
  5930  func NewControlledTransactor(address common.Address, transactor bind.ContractTransactor) (*ControlledTransactor, error) {
  5931  	contract, err := bindControlled(address, nil, transactor, nil)
  5932  	if err != nil {
  5933  		return nil, err
  5934  	}
  5935  	return &ControlledTransactor{contract: contract}, nil
  5936  }
  5937  
  5938  // NewControlledFilterer creates a new log filterer instance of Controlled, bound to a specific deployed contract.
  5939  func NewControlledFilterer(address common.Address, filterer bind.ContractFilterer) (*ControlledFilterer, error) {
  5940  	contract, err := bindControlled(address, nil, nil, filterer)
  5941  	if err != nil {
  5942  		return nil, err
  5943  	}
  5944  	return &ControlledFilterer{contract: contract}, nil
  5945  }
  5946  
  5947  // bindControlled binds a generic wrapper to an already deployed contract.
  5948  func bindControlled(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5949  	parsed, err := abi.JSON(strings.NewReader(ControlledABI))
  5950  	if err != nil {
  5951  		return nil, err
  5952  	}
  5953  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  5954  }
  5955  
  5956  // Call invokes the (constant) contract method with params as input values and
  5957  // sets the output to result. The result type might be a single field for simple
  5958  // returns, a slice of interfaces for anonymous returns and a struct for named
  5959  // returns.
  5960  func (_Controlled *ControlledRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  5961  	return _Controlled.Contract.ControlledCaller.contract.Call(opts, result, method, params...)
  5962  }
  5963  
  5964  // Transfer initiates a plain transaction to move funds to the contract, calling
  5965  // its default method if one is available.
  5966  func (_Controlled *ControlledRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5967  	return _Controlled.Contract.ControlledTransactor.contract.Transfer(opts)
  5968  }
  5969  
  5970  // Transact invokes the (paid) contract method with params as input values.
  5971  func (_Controlled *ControlledRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5972  	return _Controlled.Contract.ControlledTransactor.contract.Transact(opts, method, params...)
  5973  }
  5974  
  5975  // Call invokes the (constant) contract method with params as input values and
  5976  // sets the output to result. The result type might be a single field for simple
  5977  // returns, a slice of interfaces for anonymous returns and a struct for named
  5978  // returns.
  5979  func (_Controlled *ControlledCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  5980  	return _Controlled.Contract.contract.Call(opts, result, method, params...)
  5981  }
  5982  
  5983  // Transfer initiates a plain transaction to move funds to the contract, calling
  5984  // its default method if one is available.
  5985  func (_Controlled *ControlledTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5986  	return _Controlled.Contract.contract.Transfer(opts)
  5987  }
  5988  
  5989  // Transact invokes the (paid) contract method with params as input values.
  5990  func (_Controlled *ControlledTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5991  	return _Controlled.Contract.contract.Transact(opts, method, params...)
  5992  }
  5993  
  5994  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
  5995  //
  5996  // Solidity: function controller() constant returns(address)
  5997  func (_Controlled *ControlledCaller) Controller(opts *bind.CallOpts) (common.Address, error) {
  5998  	var (
  5999  		ret0 = new(common.Address)
  6000  	)
  6001  	out := ret0
  6002  	err := _Controlled.contract.Call(opts, out, "controller")
  6003  	return *ret0, err
  6004  }
  6005  
  6006  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
  6007  //
  6008  // Solidity: function controller() constant returns(address)
  6009  func (_Controlled *ControlledSession) Controller() (common.Address, error) {
  6010  	return _Controlled.Contract.Controller(&_Controlled.CallOpts)
  6011  }
  6012  
  6013  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
  6014  //
  6015  // Solidity: function controller() constant returns(address)
  6016  func (_Controlled *ControlledCallerSession) Controller() (common.Address, error) {
  6017  	return _Controlled.Contract.Controller(&_Controlled.CallOpts)
  6018  }
  6019  
  6020  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
  6021  //
  6022  // Solidity: function changeController(address _newController) returns()
  6023  func (_Controlled *ControlledTransactor) ChangeController(opts *bind.TransactOpts, _newController common.Address) (*types.Transaction, error) {
  6024  	return _Controlled.contract.Transact(opts, "changeController", _newController)
  6025  }
  6026  
  6027  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
  6028  //
  6029  // Solidity: function changeController(address _newController) returns()
  6030  func (_Controlled *ControlledSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
  6031  	return _Controlled.Contract.ChangeController(&_Controlled.TransactOpts, _newController)
  6032  }
  6033  
  6034  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
  6035  //
  6036  // Solidity: function changeController(address _newController) returns()
  6037  func (_Controlled *ControlledTransactorSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
  6038  	return _Controlled.Contract.ChangeController(&_Controlled.TransactOpts, _newController)
  6039  }
  6040  
  6041  // CustomIncrementCoinageABI is the input ABI used to generate the binding from.
  6042  const CustomIncrementCoinageABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"}],\"name\":\"FactorSet\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"v\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"setFactor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  6043  
  6044  // CustomIncrementCoinageFuncSigs maps the 4-byte function signature to its string representation.
  6045  var CustomIncrementCoinageFuncSigs = map[string]string{
  6046  	"dd62ed3e": "allowance(address,address)",
  6047  	"095ea7b3": "approve(address,uint256)",
  6048  	"70a08231": "balanceOf(address)",
  6049  	"313ce567": "decimals()",
  6050  	"a457c2d7": "decreaseAllowance(address,uint256)",
  6051  	"f41e60c5": "enableTransfers(bool)",
  6052  	"54f703f8": "factor()",
  6053  	"d4132ee2": "factorIncrement()",
  6054  	"39509351": "increaseAllowance(address,uint256)",
  6055  	"8f32d59b": "isOwner()",
  6056  	"806b984f": "lastBlock()",
  6057  	"06fdde03": "name()",
  6058  	"8da5cb5b": "owner()",
  6059  	"715018a6": "renounceOwnership()",
  6060  	"817e9d31": "setFactor(uint256)",
  6061  	"95d89b41": "symbol()",
  6062  	"18160ddd": "totalSupply()",
  6063  	"a9059cbb": "transfer(address,uint256)",
  6064  	"23b872dd": "transferFrom(address,address,uint256)",
  6065  	"f2fde38b": "transferOwnership(address)",
  6066  	"bef97c87": "transfersEnabled()",
  6067  }
  6068  
  6069  // CustomIncrementCoinageBin is the compiled bytecode used for deploying new contracts.
  6070  var CustomIncrementCoinageBin = "0x60806040523480156200001157600080fd5b50604051620014dc380380620014dc833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b506040908152602082015191015190925090508383836000848484601b620001c86001600160e01b036200027b16565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a382516200022590600190602086019062000280565b5081516200023b90600290602085019062000280565b506003805460ff90921660ff19928316179055600795909555505060089190915543600955600a8054911515919092161790555062000322945050505050565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002c357805160ff1916838001178555620002f3565b82800160010185558215620002f3579182015b82811115620002f3578251825591602001919060010190620002d6565b506200030192915062000305565b5090565b6200027d91905b808211156200030157600081556001016200030c565b6111aa80620003326000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063817e9d31116100b8578063a9059cbb1161007c578063a9059cbb14610350578063bef97c871461037c578063d4132ee214610384578063dd62ed3e1461038c578063f2fde38b146103ba578063f41e60c5146103e057610137565b8063817e9d31146102d35780638da5cb5b146102f05780638f32d59b1461031457806395d89b411461031c578063a457c2d71461032457610137565b806339509351116100ff578063395093511461026757806354f703f81461029357806370a082311461029b578063715018a6146102c1578063806b984f146102cb57610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806323b872dd14610213578063313ce56714610249575b600080fd5b6101446103ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b038135169060200135610494565b604080519115158252519081900360200190f35b6102016104b2565b60408051918252519081900360200190f35b6101e56004803603606081101561022957600080fd5b506001600160a01b038135811691602081013590911690604001356104c4565b6102516105b5565b6040805160ff9092168252519081900360200190f35b6101e56004803603604081101561027d57600080fd5b506001600160a01b0381351690602001356105be565b610201610612565b610201600480360360208110156102b157600080fd5b50356001600160a01b0316610618565b6102c9610642565b005b6102016106d3565b6101e5600480360360208110156102e957600080fd5b50356106d9565b6102f861076b565b604080516001600160a01b039092168252519081900360200190f35b6101e561077a565b61014461079e565b6101e56004803603604081101561033a57600080fd5b506001600160a01b0381351690602001356107fc565b6101e56004803603604081101561036657600080fd5b506001600160a01b03813516906020013561086a565b6101e56108e2565b6102016108eb565b610201600480360360408110156103a257600080fd5b506001600160a01b03813581169160200135166108f1565b6102c9600480360360208110156103d057600080fd5b50356001600160a01b031661091c565b6102c9600480360360208110156103f657600080fd5b5035151561096f565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561048a5780601f1061045f5761010080835404028352916020019161048a565b820191906000526020600020905b81548152906001019060200180831161046d57829003601f168201915b5050505050905090565b60006104a86104a16109c9565b84846109cd565b5060015b92915050565b60006104bf600654610ac1565b905090565b60006104ce61076b565b6001600160a01b0316336001600160a01b031614806104ef5750600a5460ff165b61052a5760405162461bcd60e51b815260040180806020018281038252602a815260200180611115602a913960400191505060405180910390fd5b610535848484610b07565b6105ab846105416109c9565b6105a68560405180606001604052806037815260200161113f603791396001600160a01b038a1660009081526005602052604081209061057f6109c9565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610c7e16565b6109cd565b5060019392505050565b60035460ff1690565b60006104a86105cb6109c9565b846105a685600560006105dc6109c9565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610d1516565b60075490565b6001600160a01b03811660009081526004602052604081205461063a90610ac1565b90505b919050565b61064a61077a565b610689576040805162461bcd60e51b8152602060048201819052602482015260008051602061108e833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60095490565b60006106e361077a565b610722576040805162461bcd60e51b8152602060048201819052602482015260008051602061108e833981519152604482015290519081900360640190fd5b6007805490839055604080518281526020810185905281517fafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430929181900390910190a150919050565b6000546001600160a01b031690565b600080546001600160a01b031661078f6109c9565b6001600160a01b031614905090565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561048a5780601f1061045f5761010080835404028352916020019161048a565b60006104a86108096109c9565b846105a685604051806060016040528060348152602001610fc260349139600560006108336109c9565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610c7e16565b600061087461076b565b6001600160a01b0316336001600160a01b031614806108955750600a5460ff165b6108d05760405162461bcd60e51b815260040180806020018281038252602a815260200180611115602a913960400191505060405180910390fd5b6104a86108db6109c9565b8484610b07565b600a5460ff1690565b60085490565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61092461077a565b610963576040805162461bcd60e51b8152602060048201819052602482015260008051602061108e833981519152604482015290519081900360640190fd5b61096c81610d6f565b50565b61097761077a565b6109b6576040805162461bcd60e51b8152602060048201819052602482015260008051602061108e833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b3390565b6109d5610e0f565b6001600160a01b038316610a1a5760405162461bcd60e51b815260040180806020018281038252603381526020018061102a6033913960400191505060405180910390fd5b6001600160a01b038216610a5f5760405162461bcd60e51b815260040180806020018281038252603181526020018061105d6031913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610ad05750600061063d565b600954430380610aee57610ae683600754610e61565b91505061063d565b610b0083610afb83610ea2565b610e61565b9392505050565b610b0f610e0f565b6001600160a01b038316610b545760405162461bcd60e51b8152600401808060200182810382526034815260200180610ff66034913960400191505060405180910390fd5b6001600160a01b038216610b995760405162461bcd60e51b81526004018080602001828103825260328152602001806110ae6032913960400191505060405180910390fd5b6000610ba482610ea9565b9050610be9816040518060600160405280603581526020016110e0603591396001600160a01b038716600090815260046020526040902054919063ffffffff610c7e16565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610c1e908263ffffffff610d1516565b6001600160a01b0380851660008181526004602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610c6784610eb7565b60408051918252519081900360200190a350505050565b60008184841115610d0d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cd2578181015183820152602001610cba565b50505050905090810190601f168015610cff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610b00576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116610db45760405162461bcd60e51b8152600401808060200182810382526026815260200180610f9c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6009544303801561096c57610e2381610ea2565b60078190554360095560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce8000000610e93610e7d8585610ec5565b60026b033b2e3c9fd0803ce80000005b04610f28565b81610e9a57fe5b049392505050565b5060075490565b600061063a82600754610f77565b600061063a82600754610e61565b6000811580610ee057505080820282828281610edd57fe5b04145b6104ac576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b808201828110156104ac576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600081610e93610f93856b033b2e3c9fd0803ce8000000610ec5565b600285610e8d56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a72315820149bea0dedddd0f9fcad23dd8cc316efbfb21cedfe826318ee7cb910c349512564736f6c634300050c0032"
  6071  
  6072  // DeployCustomIncrementCoinage deploys a new Ethereum contract, binding an instance of CustomIncrementCoinage to it.
  6073  func DeployCustomIncrementCoinage(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, factor *big.Int, transfersEnabled bool) (common.Address, *types.Transaction, *CustomIncrementCoinage, error) {
  6074  	parsed, err := abi.JSON(strings.NewReader(CustomIncrementCoinageABI))
  6075  	if err != nil {
  6076  		return common.Address{}, nil, nil, err
  6077  	}
  6078  
  6079  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(CustomIncrementCoinageBin), backend, name, symbol, factor, transfersEnabled)
  6080  	if err != nil {
  6081  		return common.Address{}, nil, nil, err
  6082  	}
  6083  	return address, tx, &CustomIncrementCoinage{CustomIncrementCoinageCaller: CustomIncrementCoinageCaller{contract: contract}, CustomIncrementCoinageTransactor: CustomIncrementCoinageTransactor{contract: contract}, CustomIncrementCoinageFilterer: CustomIncrementCoinageFilterer{contract: contract}}, nil
  6084  }
  6085  
  6086  // CustomIncrementCoinage is an auto generated Go binding around an Ethereum contract.
  6087  type CustomIncrementCoinage struct {
  6088  	CustomIncrementCoinageCaller     // Read-only binding to the contract
  6089  	CustomIncrementCoinageTransactor // Write-only binding to the contract
  6090  	CustomIncrementCoinageFilterer   // Log filterer for contract events
  6091  }
  6092  
  6093  // CustomIncrementCoinageCaller is an auto generated read-only Go binding around an Ethereum contract.
  6094  type CustomIncrementCoinageCaller struct {
  6095  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6096  }
  6097  
  6098  // CustomIncrementCoinageTransactor is an auto generated write-only Go binding around an Ethereum contract.
  6099  type CustomIncrementCoinageTransactor struct {
  6100  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6101  }
  6102  
  6103  // CustomIncrementCoinageFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  6104  type CustomIncrementCoinageFilterer struct {
  6105  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6106  }
  6107  
  6108  // CustomIncrementCoinageSession is an auto generated Go binding around an Ethereum contract,
  6109  // with pre-set call and transact options.
  6110  type CustomIncrementCoinageSession struct {
  6111  	Contract     *CustomIncrementCoinage // Generic contract binding to set the session for
  6112  	CallOpts     bind.CallOpts           // Call options to use throughout this session
  6113  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  6114  }
  6115  
  6116  // CustomIncrementCoinageCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  6117  // with pre-set call options.
  6118  type CustomIncrementCoinageCallerSession struct {
  6119  	Contract *CustomIncrementCoinageCaller // Generic contract caller binding to set the session for
  6120  	CallOpts bind.CallOpts                 // Call options to use throughout this session
  6121  }
  6122  
  6123  // CustomIncrementCoinageTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  6124  // with pre-set transact options.
  6125  type CustomIncrementCoinageTransactorSession struct {
  6126  	Contract     *CustomIncrementCoinageTransactor // Generic contract transactor binding to set the session for
  6127  	TransactOpts bind.TransactOpts                 // Transaction auth options to use throughout this session
  6128  }
  6129  
  6130  // CustomIncrementCoinageRaw is an auto generated low-level Go binding around an Ethereum contract.
  6131  type CustomIncrementCoinageRaw struct {
  6132  	Contract *CustomIncrementCoinage // Generic contract binding to access the raw methods on
  6133  }
  6134  
  6135  // CustomIncrementCoinageCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  6136  type CustomIncrementCoinageCallerRaw struct {
  6137  	Contract *CustomIncrementCoinageCaller // Generic read-only contract binding to access the raw methods on
  6138  }
  6139  
  6140  // CustomIncrementCoinageTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  6141  type CustomIncrementCoinageTransactorRaw struct {
  6142  	Contract *CustomIncrementCoinageTransactor // Generic write-only contract binding to access the raw methods on
  6143  }
  6144  
  6145  // NewCustomIncrementCoinage creates a new instance of CustomIncrementCoinage, bound to a specific deployed contract.
  6146  func NewCustomIncrementCoinage(address common.Address, backend bind.ContractBackend) (*CustomIncrementCoinage, error) {
  6147  	contract, err := bindCustomIncrementCoinage(address, backend, backend, backend)
  6148  	if err != nil {
  6149  		return nil, err
  6150  	}
  6151  	return &CustomIncrementCoinage{CustomIncrementCoinageCaller: CustomIncrementCoinageCaller{contract: contract}, CustomIncrementCoinageTransactor: CustomIncrementCoinageTransactor{contract: contract}, CustomIncrementCoinageFilterer: CustomIncrementCoinageFilterer{contract: contract}}, nil
  6152  }
  6153  
  6154  // NewCustomIncrementCoinageCaller creates a new read-only instance of CustomIncrementCoinage, bound to a specific deployed contract.
  6155  func NewCustomIncrementCoinageCaller(address common.Address, caller bind.ContractCaller) (*CustomIncrementCoinageCaller, error) {
  6156  	contract, err := bindCustomIncrementCoinage(address, caller, nil, nil)
  6157  	if err != nil {
  6158  		return nil, err
  6159  	}
  6160  	return &CustomIncrementCoinageCaller{contract: contract}, nil
  6161  }
  6162  
  6163  // NewCustomIncrementCoinageTransactor creates a new write-only instance of CustomIncrementCoinage, bound to a specific deployed contract.
  6164  func NewCustomIncrementCoinageTransactor(address common.Address, transactor bind.ContractTransactor) (*CustomIncrementCoinageTransactor, error) {
  6165  	contract, err := bindCustomIncrementCoinage(address, nil, transactor, nil)
  6166  	if err != nil {
  6167  		return nil, err
  6168  	}
  6169  	return &CustomIncrementCoinageTransactor{contract: contract}, nil
  6170  }
  6171  
  6172  // NewCustomIncrementCoinageFilterer creates a new log filterer instance of CustomIncrementCoinage, bound to a specific deployed contract.
  6173  func NewCustomIncrementCoinageFilterer(address common.Address, filterer bind.ContractFilterer) (*CustomIncrementCoinageFilterer, error) {
  6174  	contract, err := bindCustomIncrementCoinage(address, nil, nil, filterer)
  6175  	if err != nil {
  6176  		return nil, err
  6177  	}
  6178  	return &CustomIncrementCoinageFilterer{contract: contract}, nil
  6179  }
  6180  
  6181  // bindCustomIncrementCoinage binds a generic wrapper to an already deployed contract.
  6182  func bindCustomIncrementCoinage(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6183  	parsed, err := abi.JSON(strings.NewReader(CustomIncrementCoinageABI))
  6184  	if err != nil {
  6185  		return nil, err
  6186  	}
  6187  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  6188  }
  6189  
  6190  // Call invokes the (constant) contract method with params as input values and
  6191  // sets the output to result. The result type might be a single field for simple
  6192  // returns, a slice of interfaces for anonymous returns and a struct for named
  6193  // returns.
  6194  func (_CustomIncrementCoinage *CustomIncrementCoinageRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  6195  	return _CustomIncrementCoinage.Contract.CustomIncrementCoinageCaller.contract.Call(opts, result, method, params...)
  6196  }
  6197  
  6198  // Transfer initiates a plain transaction to move funds to the contract, calling
  6199  // its default method if one is available.
  6200  func (_CustomIncrementCoinage *CustomIncrementCoinageRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6201  	return _CustomIncrementCoinage.Contract.CustomIncrementCoinageTransactor.contract.Transfer(opts)
  6202  }
  6203  
  6204  // Transact invokes the (paid) contract method with params as input values.
  6205  func (_CustomIncrementCoinage *CustomIncrementCoinageRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6206  	return _CustomIncrementCoinage.Contract.CustomIncrementCoinageTransactor.contract.Transact(opts, method, params...)
  6207  }
  6208  
  6209  // Call invokes the (constant) contract method with params as input values and
  6210  // sets the output to result. The result type might be a single field for simple
  6211  // returns, a slice of interfaces for anonymous returns and a struct for named
  6212  // returns.
  6213  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  6214  	return _CustomIncrementCoinage.Contract.contract.Call(opts, result, method, params...)
  6215  }
  6216  
  6217  // Transfer initiates a plain transaction to move funds to the contract, calling
  6218  // its default method if one is available.
  6219  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6220  	return _CustomIncrementCoinage.Contract.contract.Transfer(opts)
  6221  }
  6222  
  6223  // Transact invokes the (paid) contract method with params as input values.
  6224  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6225  	return _CustomIncrementCoinage.Contract.contract.Transact(opts, method, params...)
  6226  }
  6227  
  6228  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  6229  //
  6230  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  6231  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
  6232  	var (
  6233  		ret0 = new(*big.Int)
  6234  	)
  6235  	out := ret0
  6236  	err := _CustomIncrementCoinage.contract.Call(opts, out, "allowance", owner, spender)
  6237  	return *ret0, err
  6238  }
  6239  
  6240  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  6241  //
  6242  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  6243  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  6244  	return _CustomIncrementCoinage.Contract.Allowance(&_CustomIncrementCoinage.CallOpts, owner, spender)
  6245  }
  6246  
  6247  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  6248  //
  6249  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  6250  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  6251  	return _CustomIncrementCoinage.Contract.Allowance(&_CustomIncrementCoinage.CallOpts, owner, spender)
  6252  }
  6253  
  6254  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  6255  //
  6256  // Solidity: function balanceOf(address account) constant returns(uint256)
  6257  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  6258  	var (
  6259  		ret0 = new(*big.Int)
  6260  	)
  6261  	out := ret0
  6262  	err := _CustomIncrementCoinage.contract.Call(opts, out, "balanceOf", account)
  6263  	return *ret0, err
  6264  }
  6265  
  6266  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  6267  //
  6268  // Solidity: function balanceOf(address account) constant returns(uint256)
  6269  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) BalanceOf(account common.Address) (*big.Int, error) {
  6270  	return _CustomIncrementCoinage.Contract.BalanceOf(&_CustomIncrementCoinage.CallOpts, account)
  6271  }
  6272  
  6273  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  6274  //
  6275  // Solidity: function balanceOf(address account) constant returns(uint256)
  6276  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
  6277  	return _CustomIncrementCoinage.Contract.BalanceOf(&_CustomIncrementCoinage.CallOpts, account)
  6278  }
  6279  
  6280  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  6281  //
  6282  // Solidity: function decimals() constant returns(uint8)
  6283  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
  6284  	var (
  6285  		ret0 = new(uint8)
  6286  	)
  6287  	out := ret0
  6288  	err := _CustomIncrementCoinage.contract.Call(opts, out, "decimals")
  6289  	return *ret0, err
  6290  }
  6291  
  6292  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  6293  //
  6294  // Solidity: function decimals() constant returns(uint8)
  6295  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Decimals() (uint8, error) {
  6296  	return _CustomIncrementCoinage.Contract.Decimals(&_CustomIncrementCoinage.CallOpts)
  6297  }
  6298  
  6299  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  6300  //
  6301  // Solidity: function decimals() constant returns(uint8)
  6302  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) Decimals() (uint8, error) {
  6303  	return _CustomIncrementCoinage.Contract.Decimals(&_CustomIncrementCoinage.CallOpts)
  6304  }
  6305  
  6306  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  6307  //
  6308  // Solidity: function factor() constant returns(uint256)
  6309  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
  6310  	var (
  6311  		ret0 = new(*big.Int)
  6312  	)
  6313  	out := ret0
  6314  	err := _CustomIncrementCoinage.contract.Call(opts, out, "factor")
  6315  	return *ret0, err
  6316  }
  6317  
  6318  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  6319  //
  6320  // Solidity: function factor() constant returns(uint256)
  6321  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Factor() (*big.Int, error) {
  6322  	return _CustomIncrementCoinage.Contract.Factor(&_CustomIncrementCoinage.CallOpts)
  6323  }
  6324  
  6325  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  6326  //
  6327  // Solidity: function factor() constant returns(uint256)
  6328  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) Factor() (*big.Int, error) {
  6329  	return _CustomIncrementCoinage.Contract.Factor(&_CustomIncrementCoinage.CallOpts)
  6330  }
  6331  
  6332  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  6333  //
  6334  // Solidity: function factorIncrement() constant returns(uint256)
  6335  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
  6336  	var (
  6337  		ret0 = new(*big.Int)
  6338  	)
  6339  	out := ret0
  6340  	err := _CustomIncrementCoinage.contract.Call(opts, out, "factorIncrement")
  6341  	return *ret0, err
  6342  }
  6343  
  6344  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  6345  //
  6346  // Solidity: function factorIncrement() constant returns(uint256)
  6347  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) FactorIncrement() (*big.Int, error) {
  6348  	return _CustomIncrementCoinage.Contract.FactorIncrement(&_CustomIncrementCoinage.CallOpts)
  6349  }
  6350  
  6351  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  6352  //
  6353  // Solidity: function factorIncrement() constant returns(uint256)
  6354  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) FactorIncrement() (*big.Int, error) {
  6355  	return _CustomIncrementCoinage.Contract.FactorIncrement(&_CustomIncrementCoinage.CallOpts)
  6356  }
  6357  
  6358  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  6359  //
  6360  // Solidity: function isOwner() constant returns(bool)
  6361  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  6362  	var (
  6363  		ret0 = new(bool)
  6364  	)
  6365  	out := ret0
  6366  	err := _CustomIncrementCoinage.contract.Call(opts, out, "isOwner")
  6367  	return *ret0, err
  6368  }
  6369  
  6370  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  6371  //
  6372  // Solidity: function isOwner() constant returns(bool)
  6373  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) IsOwner() (bool, error) {
  6374  	return _CustomIncrementCoinage.Contract.IsOwner(&_CustomIncrementCoinage.CallOpts)
  6375  }
  6376  
  6377  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  6378  //
  6379  // Solidity: function isOwner() constant returns(bool)
  6380  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) IsOwner() (bool, error) {
  6381  	return _CustomIncrementCoinage.Contract.IsOwner(&_CustomIncrementCoinage.CallOpts)
  6382  }
  6383  
  6384  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  6385  //
  6386  // Solidity: function lastBlock() constant returns(uint256)
  6387  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) LastBlock(opts *bind.CallOpts) (*big.Int, error) {
  6388  	var (
  6389  		ret0 = new(*big.Int)
  6390  	)
  6391  	out := ret0
  6392  	err := _CustomIncrementCoinage.contract.Call(opts, out, "lastBlock")
  6393  	return *ret0, err
  6394  }
  6395  
  6396  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  6397  //
  6398  // Solidity: function lastBlock() constant returns(uint256)
  6399  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) LastBlock() (*big.Int, error) {
  6400  	return _CustomIncrementCoinage.Contract.LastBlock(&_CustomIncrementCoinage.CallOpts)
  6401  }
  6402  
  6403  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  6404  //
  6405  // Solidity: function lastBlock() constant returns(uint256)
  6406  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) LastBlock() (*big.Int, error) {
  6407  	return _CustomIncrementCoinage.Contract.LastBlock(&_CustomIncrementCoinage.CallOpts)
  6408  }
  6409  
  6410  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  6411  //
  6412  // Solidity: function name() constant returns(string)
  6413  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) Name(opts *bind.CallOpts) (string, error) {
  6414  	var (
  6415  		ret0 = new(string)
  6416  	)
  6417  	out := ret0
  6418  	err := _CustomIncrementCoinage.contract.Call(opts, out, "name")
  6419  	return *ret0, err
  6420  }
  6421  
  6422  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  6423  //
  6424  // Solidity: function name() constant returns(string)
  6425  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Name() (string, error) {
  6426  	return _CustomIncrementCoinage.Contract.Name(&_CustomIncrementCoinage.CallOpts)
  6427  }
  6428  
  6429  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  6430  //
  6431  // Solidity: function name() constant returns(string)
  6432  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) Name() (string, error) {
  6433  	return _CustomIncrementCoinage.Contract.Name(&_CustomIncrementCoinage.CallOpts)
  6434  }
  6435  
  6436  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6437  //
  6438  // Solidity: function owner() constant returns(address)
  6439  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  6440  	var (
  6441  		ret0 = new(common.Address)
  6442  	)
  6443  	out := ret0
  6444  	err := _CustomIncrementCoinage.contract.Call(opts, out, "owner")
  6445  	return *ret0, err
  6446  }
  6447  
  6448  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6449  //
  6450  // Solidity: function owner() constant returns(address)
  6451  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Owner() (common.Address, error) {
  6452  	return _CustomIncrementCoinage.Contract.Owner(&_CustomIncrementCoinage.CallOpts)
  6453  }
  6454  
  6455  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6456  //
  6457  // Solidity: function owner() constant returns(address)
  6458  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) Owner() (common.Address, error) {
  6459  	return _CustomIncrementCoinage.Contract.Owner(&_CustomIncrementCoinage.CallOpts)
  6460  }
  6461  
  6462  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  6463  //
  6464  // Solidity: function symbol() constant returns(string)
  6465  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) Symbol(opts *bind.CallOpts) (string, error) {
  6466  	var (
  6467  		ret0 = new(string)
  6468  	)
  6469  	out := ret0
  6470  	err := _CustomIncrementCoinage.contract.Call(opts, out, "symbol")
  6471  	return *ret0, err
  6472  }
  6473  
  6474  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  6475  //
  6476  // Solidity: function symbol() constant returns(string)
  6477  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Symbol() (string, error) {
  6478  	return _CustomIncrementCoinage.Contract.Symbol(&_CustomIncrementCoinage.CallOpts)
  6479  }
  6480  
  6481  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  6482  //
  6483  // Solidity: function symbol() constant returns(string)
  6484  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) Symbol() (string, error) {
  6485  	return _CustomIncrementCoinage.Contract.Symbol(&_CustomIncrementCoinage.CallOpts)
  6486  }
  6487  
  6488  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  6489  //
  6490  // Solidity: function totalSupply() constant returns(uint256)
  6491  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  6492  	var (
  6493  		ret0 = new(*big.Int)
  6494  	)
  6495  	out := ret0
  6496  	err := _CustomIncrementCoinage.contract.Call(opts, out, "totalSupply")
  6497  	return *ret0, err
  6498  }
  6499  
  6500  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  6501  //
  6502  // Solidity: function totalSupply() constant returns(uint256)
  6503  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) TotalSupply() (*big.Int, error) {
  6504  	return _CustomIncrementCoinage.Contract.TotalSupply(&_CustomIncrementCoinage.CallOpts)
  6505  }
  6506  
  6507  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  6508  //
  6509  // Solidity: function totalSupply() constant returns(uint256)
  6510  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) TotalSupply() (*big.Int, error) {
  6511  	return _CustomIncrementCoinage.Contract.TotalSupply(&_CustomIncrementCoinage.CallOpts)
  6512  }
  6513  
  6514  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  6515  //
  6516  // Solidity: function transfersEnabled() constant returns(bool)
  6517  func (_CustomIncrementCoinage *CustomIncrementCoinageCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
  6518  	var (
  6519  		ret0 = new(bool)
  6520  	)
  6521  	out := ret0
  6522  	err := _CustomIncrementCoinage.contract.Call(opts, out, "transfersEnabled")
  6523  	return *ret0, err
  6524  }
  6525  
  6526  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  6527  //
  6528  // Solidity: function transfersEnabled() constant returns(bool)
  6529  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) TransfersEnabled() (bool, error) {
  6530  	return _CustomIncrementCoinage.Contract.TransfersEnabled(&_CustomIncrementCoinage.CallOpts)
  6531  }
  6532  
  6533  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  6534  //
  6535  // Solidity: function transfersEnabled() constant returns(bool)
  6536  func (_CustomIncrementCoinage *CustomIncrementCoinageCallerSession) TransfersEnabled() (bool, error) {
  6537  	return _CustomIncrementCoinage.Contract.TransfersEnabled(&_CustomIncrementCoinage.CallOpts)
  6538  }
  6539  
  6540  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  6541  //
  6542  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  6543  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
  6544  	return _CustomIncrementCoinage.contract.Transact(opts, "approve", spender, amount)
  6545  }
  6546  
  6547  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  6548  //
  6549  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  6550  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  6551  	return _CustomIncrementCoinage.Contract.Approve(&_CustomIncrementCoinage.TransactOpts, spender, amount)
  6552  }
  6553  
  6554  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  6555  //
  6556  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  6557  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  6558  	return _CustomIncrementCoinage.Contract.Approve(&_CustomIncrementCoinage.TransactOpts, spender, amount)
  6559  }
  6560  
  6561  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  6562  //
  6563  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  6564  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  6565  	return _CustomIncrementCoinage.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
  6566  }
  6567  
  6568  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  6569  //
  6570  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  6571  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  6572  	return _CustomIncrementCoinage.Contract.DecreaseAllowance(&_CustomIncrementCoinage.TransactOpts, spender, subtractedValue)
  6573  }
  6574  
  6575  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  6576  //
  6577  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  6578  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  6579  	return _CustomIncrementCoinage.Contract.DecreaseAllowance(&_CustomIncrementCoinage.TransactOpts, spender, subtractedValue)
  6580  }
  6581  
  6582  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  6583  //
  6584  // Solidity: function enableTransfers(bool v) returns()
  6585  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) EnableTransfers(opts *bind.TransactOpts, v bool) (*types.Transaction, error) {
  6586  	return _CustomIncrementCoinage.contract.Transact(opts, "enableTransfers", v)
  6587  }
  6588  
  6589  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  6590  //
  6591  // Solidity: function enableTransfers(bool v) returns()
  6592  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) EnableTransfers(v bool) (*types.Transaction, error) {
  6593  	return _CustomIncrementCoinage.Contract.EnableTransfers(&_CustomIncrementCoinage.TransactOpts, v)
  6594  }
  6595  
  6596  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  6597  //
  6598  // Solidity: function enableTransfers(bool v) returns()
  6599  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) EnableTransfers(v bool) (*types.Transaction, error) {
  6600  	return _CustomIncrementCoinage.Contract.EnableTransfers(&_CustomIncrementCoinage.TransactOpts, v)
  6601  }
  6602  
  6603  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  6604  //
  6605  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  6606  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  6607  	return _CustomIncrementCoinage.contract.Transact(opts, "increaseAllowance", spender, addedValue)
  6608  }
  6609  
  6610  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  6611  //
  6612  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  6613  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  6614  	return _CustomIncrementCoinage.Contract.IncreaseAllowance(&_CustomIncrementCoinage.TransactOpts, spender, addedValue)
  6615  }
  6616  
  6617  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  6618  //
  6619  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  6620  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  6621  	return _CustomIncrementCoinage.Contract.IncreaseAllowance(&_CustomIncrementCoinage.TransactOpts, spender, addedValue)
  6622  }
  6623  
  6624  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6625  //
  6626  // Solidity: function renounceOwnership() returns()
  6627  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  6628  	return _CustomIncrementCoinage.contract.Transact(opts, "renounceOwnership")
  6629  }
  6630  
  6631  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6632  //
  6633  // Solidity: function renounceOwnership() returns()
  6634  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) RenounceOwnership() (*types.Transaction, error) {
  6635  	return _CustomIncrementCoinage.Contract.RenounceOwnership(&_CustomIncrementCoinage.TransactOpts)
  6636  }
  6637  
  6638  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6639  //
  6640  // Solidity: function renounceOwnership() returns()
  6641  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  6642  	return _CustomIncrementCoinage.Contract.RenounceOwnership(&_CustomIncrementCoinage.TransactOpts)
  6643  }
  6644  
  6645  // SetFactor is a paid mutator transaction binding the contract method 0x817e9d31.
  6646  //
  6647  // Solidity: function setFactor(uint256 factor) returns(bool)
  6648  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) SetFactor(opts *bind.TransactOpts, factor *big.Int) (*types.Transaction, error) {
  6649  	return _CustomIncrementCoinage.contract.Transact(opts, "setFactor", factor)
  6650  }
  6651  
  6652  // SetFactor is a paid mutator transaction binding the contract method 0x817e9d31.
  6653  //
  6654  // Solidity: function setFactor(uint256 factor) returns(bool)
  6655  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) SetFactor(factor *big.Int) (*types.Transaction, error) {
  6656  	return _CustomIncrementCoinage.Contract.SetFactor(&_CustomIncrementCoinage.TransactOpts, factor)
  6657  }
  6658  
  6659  // SetFactor is a paid mutator transaction binding the contract method 0x817e9d31.
  6660  //
  6661  // Solidity: function setFactor(uint256 factor) returns(bool)
  6662  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) SetFactor(factor *big.Int) (*types.Transaction, error) {
  6663  	return _CustomIncrementCoinage.Contract.SetFactor(&_CustomIncrementCoinage.TransactOpts, factor)
  6664  }
  6665  
  6666  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  6667  //
  6668  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  6669  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  6670  	return _CustomIncrementCoinage.contract.Transact(opts, "transfer", recipient, amount)
  6671  }
  6672  
  6673  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  6674  //
  6675  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  6676  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  6677  	return _CustomIncrementCoinage.Contract.Transfer(&_CustomIncrementCoinage.TransactOpts, recipient, amount)
  6678  }
  6679  
  6680  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  6681  //
  6682  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  6683  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  6684  	return _CustomIncrementCoinage.Contract.Transfer(&_CustomIncrementCoinage.TransactOpts, recipient, amount)
  6685  }
  6686  
  6687  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  6688  //
  6689  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  6690  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  6691  	return _CustomIncrementCoinage.contract.Transact(opts, "transferFrom", sender, recipient, amount)
  6692  }
  6693  
  6694  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  6695  //
  6696  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  6697  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  6698  	return _CustomIncrementCoinage.Contract.TransferFrom(&_CustomIncrementCoinage.TransactOpts, sender, recipient, amount)
  6699  }
  6700  
  6701  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  6702  //
  6703  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  6704  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  6705  	return _CustomIncrementCoinage.Contract.TransferFrom(&_CustomIncrementCoinage.TransactOpts, sender, recipient, amount)
  6706  }
  6707  
  6708  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6709  //
  6710  // Solidity: function transferOwnership(address newOwner) returns()
  6711  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  6712  	return _CustomIncrementCoinage.contract.Transact(opts, "transferOwnership", newOwner)
  6713  }
  6714  
  6715  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6716  //
  6717  // Solidity: function transferOwnership(address newOwner) returns()
  6718  func (_CustomIncrementCoinage *CustomIncrementCoinageSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6719  	return _CustomIncrementCoinage.Contract.TransferOwnership(&_CustomIncrementCoinage.TransactOpts, newOwner)
  6720  }
  6721  
  6722  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6723  //
  6724  // Solidity: function transferOwnership(address newOwner) returns()
  6725  func (_CustomIncrementCoinage *CustomIncrementCoinageTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6726  	return _CustomIncrementCoinage.Contract.TransferOwnership(&_CustomIncrementCoinage.TransactOpts, newOwner)
  6727  }
  6728  
  6729  // CustomIncrementCoinageApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the CustomIncrementCoinage contract.
  6730  type CustomIncrementCoinageApprovalIterator struct {
  6731  	Event *CustomIncrementCoinageApproval // Event containing the contract specifics and raw log
  6732  
  6733  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6734  	event    string              // Event name to use for unpacking event data
  6735  
  6736  	logs chan types.Log        // Log channel receiving the found contract events
  6737  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6738  	done bool                  // Whether the subscription completed delivering logs
  6739  	fail error                 // Occurred error to stop iteration
  6740  }
  6741  
  6742  // Next advances the iterator to the subsequent event, returning whether there
  6743  // are any more events found. In case of a retrieval or parsing error, false is
  6744  // returned and Error() can be queried for the exact failure.
  6745  func (it *CustomIncrementCoinageApprovalIterator) Next() bool {
  6746  	// If the iterator failed, stop iterating
  6747  	if it.fail != nil {
  6748  		return false
  6749  	}
  6750  	// If the iterator completed, deliver directly whatever's available
  6751  	if it.done {
  6752  		select {
  6753  		case log := <-it.logs:
  6754  			it.Event = new(CustomIncrementCoinageApproval)
  6755  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6756  				it.fail = err
  6757  				return false
  6758  			}
  6759  			it.Event.Raw = log
  6760  			return true
  6761  
  6762  		default:
  6763  			return false
  6764  		}
  6765  	}
  6766  	// Iterator still in progress, wait for either a data or an error event
  6767  	select {
  6768  	case log := <-it.logs:
  6769  		it.Event = new(CustomIncrementCoinageApproval)
  6770  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6771  			it.fail = err
  6772  			return false
  6773  		}
  6774  		it.Event.Raw = log
  6775  		return true
  6776  
  6777  	case err := <-it.sub.Err():
  6778  		it.done = true
  6779  		it.fail = err
  6780  		return it.Next()
  6781  	}
  6782  }
  6783  
  6784  // Error returns any retrieval or parsing error occurred during filtering.
  6785  func (it *CustomIncrementCoinageApprovalIterator) Error() error {
  6786  	return it.fail
  6787  }
  6788  
  6789  // Close terminates the iteration process, releasing any pending underlying
  6790  // resources.
  6791  func (it *CustomIncrementCoinageApprovalIterator) Close() error {
  6792  	it.sub.Unsubscribe()
  6793  	return nil
  6794  }
  6795  
  6796  // CustomIncrementCoinageApproval represents a Approval event raised by the CustomIncrementCoinage contract.
  6797  type CustomIncrementCoinageApproval struct {
  6798  	Owner   common.Address
  6799  	Spender common.Address
  6800  	Value   *big.Int
  6801  	Raw     types.Log // Blockchain specific contextual infos
  6802  }
  6803  
  6804  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  6805  //
  6806  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  6807  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*CustomIncrementCoinageApprovalIterator, error) {
  6808  
  6809  	var ownerRule []interface{}
  6810  	for _, ownerItem := range owner {
  6811  		ownerRule = append(ownerRule, ownerItem)
  6812  	}
  6813  	var spenderRule []interface{}
  6814  	for _, spenderItem := range spender {
  6815  		spenderRule = append(spenderRule, spenderItem)
  6816  	}
  6817  
  6818  	logs, sub, err := _CustomIncrementCoinage.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  6819  	if err != nil {
  6820  		return nil, err
  6821  	}
  6822  	return &CustomIncrementCoinageApprovalIterator{contract: _CustomIncrementCoinage.contract, event: "Approval", logs: logs, sub: sub}, nil
  6823  }
  6824  
  6825  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  6826  //
  6827  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  6828  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  6829  
  6830  	var ownerRule []interface{}
  6831  	for _, ownerItem := range owner {
  6832  		ownerRule = append(ownerRule, ownerItem)
  6833  	}
  6834  	var spenderRule []interface{}
  6835  	for _, spenderItem := range spender {
  6836  		spenderRule = append(spenderRule, spenderItem)
  6837  	}
  6838  
  6839  	logs, sub, err := _CustomIncrementCoinage.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  6840  	if err != nil {
  6841  		return nil, err
  6842  	}
  6843  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6844  		defer sub.Unsubscribe()
  6845  		for {
  6846  			select {
  6847  			case log := <-logs:
  6848  				// New log arrived, parse the event and forward to the user
  6849  				event := new(CustomIncrementCoinageApproval)
  6850  				if err := _CustomIncrementCoinage.contract.UnpackLog(event, "Approval", log); err != nil {
  6851  					return err
  6852  				}
  6853  				event.Raw = log
  6854  
  6855  				select {
  6856  				case sink <- event:
  6857  				case err := <-sub.Err():
  6858  					return err
  6859  				case <-quit:
  6860  					return nil
  6861  				}
  6862  			case err := <-sub.Err():
  6863  				return err
  6864  			case <-quit:
  6865  				return nil
  6866  			}
  6867  		}
  6868  	}), nil
  6869  }
  6870  
  6871  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  6872  //
  6873  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  6874  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) ParseApproval(log types.Log) (*CustomIncrementCoinageApproval, error) {
  6875  	event := new(CustomIncrementCoinageApproval)
  6876  	if err := _CustomIncrementCoinage.contract.UnpackLog(event, "Approval", log); err != nil {
  6877  		return nil, err
  6878  	}
  6879  	return event, nil
  6880  }
  6881  
  6882  // CustomIncrementCoinageFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the CustomIncrementCoinage contract.
  6883  type CustomIncrementCoinageFactorIncreasedIterator struct {
  6884  	Event *CustomIncrementCoinageFactorIncreased // Event containing the contract specifics and raw log
  6885  
  6886  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6887  	event    string              // Event name to use for unpacking event data
  6888  
  6889  	logs chan types.Log        // Log channel receiving the found contract events
  6890  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6891  	done bool                  // Whether the subscription completed delivering logs
  6892  	fail error                 // Occurred error to stop iteration
  6893  }
  6894  
  6895  // Next advances the iterator to the subsequent event, returning whether there
  6896  // are any more events found. In case of a retrieval or parsing error, false is
  6897  // returned and Error() can be queried for the exact failure.
  6898  func (it *CustomIncrementCoinageFactorIncreasedIterator) Next() bool {
  6899  	// If the iterator failed, stop iterating
  6900  	if it.fail != nil {
  6901  		return false
  6902  	}
  6903  	// If the iterator completed, deliver directly whatever's available
  6904  	if it.done {
  6905  		select {
  6906  		case log := <-it.logs:
  6907  			it.Event = new(CustomIncrementCoinageFactorIncreased)
  6908  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6909  				it.fail = err
  6910  				return false
  6911  			}
  6912  			it.Event.Raw = log
  6913  			return true
  6914  
  6915  		default:
  6916  			return false
  6917  		}
  6918  	}
  6919  	// Iterator still in progress, wait for either a data or an error event
  6920  	select {
  6921  	case log := <-it.logs:
  6922  		it.Event = new(CustomIncrementCoinageFactorIncreased)
  6923  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6924  			it.fail = err
  6925  			return false
  6926  		}
  6927  		it.Event.Raw = log
  6928  		return true
  6929  
  6930  	case err := <-it.sub.Err():
  6931  		it.done = true
  6932  		it.fail = err
  6933  		return it.Next()
  6934  	}
  6935  }
  6936  
  6937  // Error returns any retrieval or parsing error occurred during filtering.
  6938  func (it *CustomIncrementCoinageFactorIncreasedIterator) Error() error {
  6939  	return it.fail
  6940  }
  6941  
  6942  // Close terminates the iteration process, releasing any pending underlying
  6943  // resources.
  6944  func (it *CustomIncrementCoinageFactorIncreasedIterator) Close() error {
  6945  	it.sub.Unsubscribe()
  6946  	return nil
  6947  }
  6948  
  6949  // CustomIncrementCoinageFactorIncreased represents a FactorIncreased event raised by the CustomIncrementCoinage contract.
  6950  type CustomIncrementCoinageFactorIncreased struct {
  6951  	Factor *big.Int
  6952  	Raw    types.Log // Blockchain specific contextual infos
  6953  }
  6954  
  6955  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  6956  //
  6957  // Solidity: event FactorIncreased(uint256 factor)
  6958  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*CustomIncrementCoinageFactorIncreasedIterator, error) {
  6959  
  6960  	logs, sub, err := _CustomIncrementCoinage.contract.FilterLogs(opts, "FactorIncreased")
  6961  	if err != nil {
  6962  		return nil, err
  6963  	}
  6964  	return &CustomIncrementCoinageFactorIncreasedIterator{contract: _CustomIncrementCoinage.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
  6965  }
  6966  
  6967  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  6968  //
  6969  // Solidity: event FactorIncreased(uint256 factor)
  6970  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageFactorIncreased) (event.Subscription, error) {
  6971  
  6972  	logs, sub, err := _CustomIncrementCoinage.contract.WatchLogs(opts, "FactorIncreased")
  6973  	if err != nil {
  6974  		return nil, err
  6975  	}
  6976  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6977  		defer sub.Unsubscribe()
  6978  		for {
  6979  			select {
  6980  			case log := <-logs:
  6981  				// New log arrived, parse the event and forward to the user
  6982  				event := new(CustomIncrementCoinageFactorIncreased)
  6983  				if err := _CustomIncrementCoinage.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  6984  					return err
  6985  				}
  6986  				event.Raw = log
  6987  
  6988  				select {
  6989  				case sink <- event:
  6990  				case err := <-sub.Err():
  6991  					return err
  6992  				case <-quit:
  6993  					return nil
  6994  				}
  6995  			case err := <-sub.Err():
  6996  				return err
  6997  			case <-quit:
  6998  				return nil
  6999  			}
  7000  		}
  7001  	}), nil
  7002  }
  7003  
  7004  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  7005  //
  7006  // Solidity: event FactorIncreased(uint256 factor)
  7007  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) ParseFactorIncreased(log types.Log) (*CustomIncrementCoinageFactorIncreased, error) {
  7008  	event := new(CustomIncrementCoinageFactorIncreased)
  7009  	if err := _CustomIncrementCoinage.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  7010  		return nil, err
  7011  	}
  7012  	return event, nil
  7013  }
  7014  
  7015  // CustomIncrementCoinageFactorSetIterator is returned from FilterFactorSet and is used to iterate over the raw logs and unpacked data for FactorSet events raised by the CustomIncrementCoinage contract.
  7016  type CustomIncrementCoinageFactorSetIterator struct {
  7017  	Event *CustomIncrementCoinageFactorSet // Event containing the contract specifics and raw log
  7018  
  7019  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7020  	event    string              // Event name to use for unpacking event data
  7021  
  7022  	logs chan types.Log        // Log channel receiving the found contract events
  7023  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  7024  	done bool                  // Whether the subscription completed delivering logs
  7025  	fail error                 // Occurred error to stop iteration
  7026  }
  7027  
  7028  // Next advances the iterator to the subsequent event, returning whether there
  7029  // are any more events found. In case of a retrieval or parsing error, false is
  7030  // returned and Error() can be queried for the exact failure.
  7031  func (it *CustomIncrementCoinageFactorSetIterator) Next() bool {
  7032  	// If the iterator failed, stop iterating
  7033  	if it.fail != nil {
  7034  		return false
  7035  	}
  7036  	// If the iterator completed, deliver directly whatever's available
  7037  	if it.done {
  7038  		select {
  7039  		case log := <-it.logs:
  7040  			it.Event = new(CustomIncrementCoinageFactorSet)
  7041  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7042  				it.fail = err
  7043  				return false
  7044  			}
  7045  			it.Event.Raw = log
  7046  			return true
  7047  
  7048  		default:
  7049  			return false
  7050  		}
  7051  	}
  7052  	// Iterator still in progress, wait for either a data or an error event
  7053  	select {
  7054  	case log := <-it.logs:
  7055  		it.Event = new(CustomIncrementCoinageFactorSet)
  7056  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7057  			it.fail = err
  7058  			return false
  7059  		}
  7060  		it.Event.Raw = log
  7061  		return true
  7062  
  7063  	case err := <-it.sub.Err():
  7064  		it.done = true
  7065  		it.fail = err
  7066  		return it.Next()
  7067  	}
  7068  }
  7069  
  7070  // Error returns any retrieval or parsing error occurred during filtering.
  7071  func (it *CustomIncrementCoinageFactorSetIterator) Error() error {
  7072  	return it.fail
  7073  }
  7074  
  7075  // Close terminates the iteration process, releasing any pending underlying
  7076  // resources.
  7077  func (it *CustomIncrementCoinageFactorSetIterator) Close() error {
  7078  	it.sub.Unsubscribe()
  7079  	return nil
  7080  }
  7081  
  7082  // CustomIncrementCoinageFactorSet represents a FactorSet event raised by the CustomIncrementCoinage contract.
  7083  type CustomIncrementCoinageFactorSet struct {
  7084  	Previous *big.Int
  7085  	Current  *big.Int
  7086  	Raw      types.Log // Blockchain specific contextual infos
  7087  }
  7088  
  7089  // FilterFactorSet is a free log retrieval operation binding the contract event 0xafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430.
  7090  //
  7091  // Solidity: event FactorSet(uint256 previous, uint256 current)
  7092  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) FilterFactorSet(opts *bind.FilterOpts) (*CustomIncrementCoinageFactorSetIterator, error) {
  7093  
  7094  	logs, sub, err := _CustomIncrementCoinage.contract.FilterLogs(opts, "FactorSet")
  7095  	if err != nil {
  7096  		return nil, err
  7097  	}
  7098  	return &CustomIncrementCoinageFactorSetIterator{contract: _CustomIncrementCoinage.contract, event: "FactorSet", logs: logs, sub: sub}, nil
  7099  }
  7100  
  7101  // WatchFactorSet is a free log subscription operation binding the contract event 0xafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430.
  7102  //
  7103  // Solidity: event FactorSet(uint256 previous, uint256 current)
  7104  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) WatchFactorSet(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageFactorSet) (event.Subscription, error) {
  7105  
  7106  	logs, sub, err := _CustomIncrementCoinage.contract.WatchLogs(opts, "FactorSet")
  7107  	if err != nil {
  7108  		return nil, err
  7109  	}
  7110  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7111  		defer sub.Unsubscribe()
  7112  		for {
  7113  			select {
  7114  			case log := <-logs:
  7115  				// New log arrived, parse the event and forward to the user
  7116  				event := new(CustomIncrementCoinageFactorSet)
  7117  				if err := _CustomIncrementCoinage.contract.UnpackLog(event, "FactorSet", log); err != nil {
  7118  					return err
  7119  				}
  7120  				event.Raw = log
  7121  
  7122  				select {
  7123  				case sink <- event:
  7124  				case err := <-sub.Err():
  7125  					return err
  7126  				case <-quit:
  7127  					return nil
  7128  				}
  7129  			case err := <-sub.Err():
  7130  				return err
  7131  			case <-quit:
  7132  				return nil
  7133  			}
  7134  		}
  7135  	}), nil
  7136  }
  7137  
  7138  // ParseFactorSet is a log parse operation binding the contract event 0xafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430.
  7139  //
  7140  // Solidity: event FactorSet(uint256 previous, uint256 current)
  7141  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) ParseFactorSet(log types.Log) (*CustomIncrementCoinageFactorSet, error) {
  7142  	event := new(CustomIncrementCoinageFactorSet)
  7143  	if err := _CustomIncrementCoinage.contract.UnpackLog(event, "FactorSet", log); err != nil {
  7144  		return nil, err
  7145  	}
  7146  	return event, nil
  7147  }
  7148  
  7149  // CustomIncrementCoinageOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the CustomIncrementCoinage contract.
  7150  type CustomIncrementCoinageOwnershipTransferredIterator struct {
  7151  	Event *CustomIncrementCoinageOwnershipTransferred // Event containing the contract specifics and raw log
  7152  
  7153  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7154  	event    string              // Event name to use for unpacking event data
  7155  
  7156  	logs chan types.Log        // Log channel receiving the found contract events
  7157  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  7158  	done bool                  // Whether the subscription completed delivering logs
  7159  	fail error                 // Occurred error to stop iteration
  7160  }
  7161  
  7162  // Next advances the iterator to the subsequent event, returning whether there
  7163  // are any more events found. In case of a retrieval or parsing error, false is
  7164  // returned and Error() can be queried for the exact failure.
  7165  func (it *CustomIncrementCoinageOwnershipTransferredIterator) Next() bool {
  7166  	// If the iterator failed, stop iterating
  7167  	if it.fail != nil {
  7168  		return false
  7169  	}
  7170  	// If the iterator completed, deliver directly whatever's available
  7171  	if it.done {
  7172  		select {
  7173  		case log := <-it.logs:
  7174  			it.Event = new(CustomIncrementCoinageOwnershipTransferred)
  7175  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7176  				it.fail = err
  7177  				return false
  7178  			}
  7179  			it.Event.Raw = log
  7180  			return true
  7181  
  7182  		default:
  7183  			return false
  7184  		}
  7185  	}
  7186  	// Iterator still in progress, wait for either a data or an error event
  7187  	select {
  7188  	case log := <-it.logs:
  7189  		it.Event = new(CustomIncrementCoinageOwnershipTransferred)
  7190  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7191  			it.fail = err
  7192  			return false
  7193  		}
  7194  		it.Event.Raw = log
  7195  		return true
  7196  
  7197  	case err := <-it.sub.Err():
  7198  		it.done = true
  7199  		it.fail = err
  7200  		return it.Next()
  7201  	}
  7202  }
  7203  
  7204  // Error returns any retrieval or parsing error occurred during filtering.
  7205  func (it *CustomIncrementCoinageOwnershipTransferredIterator) Error() error {
  7206  	return it.fail
  7207  }
  7208  
  7209  // Close terminates the iteration process, releasing any pending underlying
  7210  // resources.
  7211  func (it *CustomIncrementCoinageOwnershipTransferredIterator) Close() error {
  7212  	it.sub.Unsubscribe()
  7213  	return nil
  7214  }
  7215  
  7216  // CustomIncrementCoinageOwnershipTransferred represents a OwnershipTransferred event raised by the CustomIncrementCoinage contract.
  7217  type CustomIncrementCoinageOwnershipTransferred struct {
  7218  	PreviousOwner common.Address
  7219  	NewOwner      common.Address
  7220  	Raw           types.Log // Blockchain specific contextual infos
  7221  }
  7222  
  7223  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7224  //
  7225  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7226  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*CustomIncrementCoinageOwnershipTransferredIterator, error) {
  7227  
  7228  	var previousOwnerRule []interface{}
  7229  	for _, previousOwnerItem := range previousOwner {
  7230  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7231  	}
  7232  	var newOwnerRule []interface{}
  7233  	for _, newOwnerItem := range newOwner {
  7234  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7235  	}
  7236  
  7237  	logs, sub, err := _CustomIncrementCoinage.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7238  	if err != nil {
  7239  		return nil, err
  7240  	}
  7241  	return &CustomIncrementCoinageOwnershipTransferredIterator{contract: _CustomIncrementCoinage.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  7242  }
  7243  
  7244  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7245  //
  7246  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7247  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  7248  
  7249  	var previousOwnerRule []interface{}
  7250  	for _, previousOwnerItem := range previousOwner {
  7251  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7252  	}
  7253  	var newOwnerRule []interface{}
  7254  	for _, newOwnerItem := range newOwner {
  7255  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7256  	}
  7257  
  7258  	logs, sub, err := _CustomIncrementCoinage.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7259  	if err != nil {
  7260  		return nil, err
  7261  	}
  7262  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7263  		defer sub.Unsubscribe()
  7264  		for {
  7265  			select {
  7266  			case log := <-logs:
  7267  				// New log arrived, parse the event and forward to the user
  7268  				event := new(CustomIncrementCoinageOwnershipTransferred)
  7269  				if err := _CustomIncrementCoinage.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7270  					return err
  7271  				}
  7272  				event.Raw = log
  7273  
  7274  				select {
  7275  				case sink <- event:
  7276  				case err := <-sub.Err():
  7277  					return err
  7278  				case <-quit:
  7279  					return nil
  7280  				}
  7281  			case err := <-sub.Err():
  7282  				return err
  7283  			case <-quit:
  7284  				return nil
  7285  			}
  7286  		}
  7287  	}), nil
  7288  }
  7289  
  7290  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7291  //
  7292  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7293  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) ParseOwnershipTransferred(log types.Log) (*CustomIncrementCoinageOwnershipTransferred, error) {
  7294  	event := new(CustomIncrementCoinageOwnershipTransferred)
  7295  	if err := _CustomIncrementCoinage.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7296  		return nil, err
  7297  	}
  7298  	return event, nil
  7299  }
  7300  
  7301  // CustomIncrementCoinageTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the CustomIncrementCoinage contract.
  7302  type CustomIncrementCoinageTransferIterator struct {
  7303  	Event *CustomIncrementCoinageTransfer // Event containing the contract specifics and raw log
  7304  
  7305  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7306  	event    string              // Event name to use for unpacking event data
  7307  
  7308  	logs chan types.Log        // Log channel receiving the found contract events
  7309  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  7310  	done bool                  // Whether the subscription completed delivering logs
  7311  	fail error                 // Occurred error to stop iteration
  7312  }
  7313  
  7314  // Next advances the iterator to the subsequent event, returning whether there
  7315  // are any more events found. In case of a retrieval or parsing error, false is
  7316  // returned and Error() can be queried for the exact failure.
  7317  func (it *CustomIncrementCoinageTransferIterator) Next() bool {
  7318  	// If the iterator failed, stop iterating
  7319  	if it.fail != nil {
  7320  		return false
  7321  	}
  7322  	// If the iterator completed, deliver directly whatever's available
  7323  	if it.done {
  7324  		select {
  7325  		case log := <-it.logs:
  7326  			it.Event = new(CustomIncrementCoinageTransfer)
  7327  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7328  				it.fail = err
  7329  				return false
  7330  			}
  7331  			it.Event.Raw = log
  7332  			return true
  7333  
  7334  		default:
  7335  			return false
  7336  		}
  7337  	}
  7338  	// Iterator still in progress, wait for either a data or an error event
  7339  	select {
  7340  	case log := <-it.logs:
  7341  		it.Event = new(CustomIncrementCoinageTransfer)
  7342  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7343  			it.fail = err
  7344  			return false
  7345  		}
  7346  		it.Event.Raw = log
  7347  		return true
  7348  
  7349  	case err := <-it.sub.Err():
  7350  		it.done = true
  7351  		it.fail = err
  7352  		return it.Next()
  7353  	}
  7354  }
  7355  
  7356  // Error returns any retrieval or parsing error occurred during filtering.
  7357  func (it *CustomIncrementCoinageTransferIterator) Error() error {
  7358  	return it.fail
  7359  }
  7360  
  7361  // Close terminates the iteration process, releasing any pending underlying
  7362  // resources.
  7363  func (it *CustomIncrementCoinageTransferIterator) Close() error {
  7364  	it.sub.Unsubscribe()
  7365  	return nil
  7366  }
  7367  
  7368  // CustomIncrementCoinageTransfer represents a Transfer event raised by the CustomIncrementCoinage contract.
  7369  type CustomIncrementCoinageTransfer struct {
  7370  	From  common.Address
  7371  	To    common.Address
  7372  	Value *big.Int
  7373  	Raw   types.Log // Blockchain specific contextual infos
  7374  }
  7375  
  7376  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  7377  //
  7378  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  7379  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CustomIncrementCoinageTransferIterator, error) {
  7380  
  7381  	var fromRule []interface{}
  7382  	for _, fromItem := range from {
  7383  		fromRule = append(fromRule, fromItem)
  7384  	}
  7385  	var toRule []interface{}
  7386  	for _, toItem := range to {
  7387  		toRule = append(toRule, toItem)
  7388  	}
  7389  
  7390  	logs, sub, err := _CustomIncrementCoinage.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  7391  	if err != nil {
  7392  		return nil, err
  7393  	}
  7394  	return &CustomIncrementCoinageTransferIterator{contract: _CustomIncrementCoinage.contract, event: "Transfer", logs: logs, sub: sub}, nil
  7395  }
  7396  
  7397  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  7398  //
  7399  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  7400  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  7401  
  7402  	var fromRule []interface{}
  7403  	for _, fromItem := range from {
  7404  		fromRule = append(fromRule, fromItem)
  7405  	}
  7406  	var toRule []interface{}
  7407  	for _, toItem := range to {
  7408  		toRule = append(toRule, toItem)
  7409  	}
  7410  
  7411  	logs, sub, err := _CustomIncrementCoinage.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  7412  	if err != nil {
  7413  		return nil, err
  7414  	}
  7415  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7416  		defer sub.Unsubscribe()
  7417  		for {
  7418  			select {
  7419  			case log := <-logs:
  7420  				// New log arrived, parse the event and forward to the user
  7421  				event := new(CustomIncrementCoinageTransfer)
  7422  				if err := _CustomIncrementCoinage.contract.UnpackLog(event, "Transfer", log); err != nil {
  7423  					return err
  7424  				}
  7425  				event.Raw = log
  7426  
  7427  				select {
  7428  				case sink <- event:
  7429  				case err := <-sub.Err():
  7430  					return err
  7431  				case <-quit:
  7432  					return nil
  7433  				}
  7434  			case err := <-sub.Err():
  7435  				return err
  7436  			case <-quit:
  7437  				return nil
  7438  			}
  7439  		}
  7440  	}), nil
  7441  }
  7442  
  7443  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  7444  //
  7445  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  7446  func (_CustomIncrementCoinage *CustomIncrementCoinageFilterer) ParseTransfer(log types.Log) (*CustomIncrementCoinageTransfer, error) {
  7447  	event := new(CustomIncrementCoinageTransfer)
  7448  	if err := _CustomIncrementCoinage.contract.UnpackLog(event, "Transfer", log); err != nil {
  7449  		return nil, err
  7450  	}
  7451  	return event, nil
  7452  }
  7453  
  7454  // CustomIncrementCoinageMockABI is the input ABI used to generate the binding from.
  7455  const CustomIncrementCoinageMockABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"}],\"name\":\"FactorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"v\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"setFactor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  7456  
  7457  // CustomIncrementCoinageMockFuncSigs maps the 4-byte function signature to its string representation.
  7458  var CustomIncrementCoinageMockFuncSigs = map[string]string{
  7459  	"983b2d56": "addMinter(address)",
  7460  	"dd62ed3e": "allowance(address,address)",
  7461  	"095ea7b3": "approve(address,uint256)",
  7462  	"70a08231": "balanceOf(address)",
  7463  	"42966c68": "burn(uint256)",
  7464  	"79cc6790": "burnFrom(address,uint256)",
  7465  	"313ce567": "decimals()",
  7466  	"a457c2d7": "decreaseAllowance(address,uint256)",
  7467  	"f41e60c5": "enableTransfers(bool)",
  7468  	"54f703f8": "factor()",
  7469  	"d4132ee2": "factorIncrement()",
  7470  	"39509351": "increaseAllowance(address,uint256)",
  7471  	"aa271e1a": "isMinter(address)",
  7472  	"8f32d59b": "isOwner()",
  7473  	"806b984f": "lastBlock()",
  7474  	"40c10f19": "mint(address,uint256)",
  7475  	"06fdde03": "name()",
  7476  	"8da5cb5b": "owner()",
  7477  	"98650275": "renounceMinter()",
  7478  	"715018a6": "renounceOwnership()",
  7479  	"817e9d31": "setFactor(uint256)",
  7480  	"95d89b41": "symbol()",
  7481  	"18160ddd": "totalSupply()",
  7482  	"a9059cbb": "transfer(address,uint256)",
  7483  	"23b872dd": "transferFrom(address,address,uint256)",
  7484  	"f2fde38b": "transferOwnership(address)",
  7485  	"bef97c87": "transfersEnabled()",
  7486  }
  7487  
  7488  // CustomIncrementCoinageMockBin is the compiled bytecode used for deploying new contracts.
  7489  var CustomIncrementCoinageMockBin = "0x60806040523480156200001157600080fd5b5060405162001e8f38038062001e8f833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208201519101519092509050838383838383836000848484601b620001df620001d06001600160e01b03620002ad16565b6001600160e01b03620002b216565b620001f26001600160e01b03620002ad16565b600480546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620002539060059060208601906200042e565b508151620002699060069060208501906200042e565b506007805460ff90921660ff19928316179055600b959095555050600c9190915543600d55600e80549115159190921617905550620004d098505050505050505050565b335b90565b620002cd8160036200030460201b6200148b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200031982826001600160e01b03620003ab16565b156200038657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200040e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001e6d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047157805160ff1916838001178555620004a1565b82800160010185558215620004a1579182015b82811115620004a157825182559160200191906001019062000484565b50620004af929150620004b3565b5090565b620002af91905b80821115620004af5760008155600101620004ba565b61198d80620004e06000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063817e9d31116100f9578063a9059cbb11610097578063d4132ee211610071578063d4132ee2146104bf578063dd62ed3e146104c7578063f2fde38b146104f5578063f41e60c51461051b576101a9565b8063a9059cbb14610465578063aa271e1a14610491578063bef97c87146104b7576101a9565b806395d89b41116100d357806395d89b4114610403578063983b2d561461040b5780639865027514610431578063a457c2d714610439576101a9565b8063817e9d31146103ba5780638da5cb5b146103d75780638f32d59b146103fb576101a9565b806340c10f191161016657806370a082311161014057806370a0823114610358578063715018a61461037e57806379cc679014610386578063806b984f146103b2576101a9565b806340c10f191461030557806342966c681461033157806354f703f814610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063313ce567146102bb57806339509351146102d9575b600080fd5b6101b661053a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105d0565b604080519115158252519081900360200190f35b6102736105ee565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610600565b6102c36106f1565b6040805160ff9092168252519081900360200190f35b610257600480360360408110156102ef57600080fd5b506001600160a01b0381351690602001356106fa565b6102576004803603604081101561031b57600080fd5b506001600160a01b03813516906020013561074e565b61034e6004803603602081101561034757600080fd5b50356107a5565b005b6102736107b9565b6102736004803603602081101561036e57600080fd5b50356001600160a01b03166107bf565b61034e6107e9565b61034e6004803603604081101561039c57600080fd5b506001600160a01b03813516906020013561087a565b610273610888565b610257600480360360208110156103d057600080fd5b503561088e565b6103df610920565b604080516001600160a01b039092168252519081900360200190f35b61025761092f565b6101b6610955565b61034e6004803603602081101561042157600080fd5b50356001600160a01b03166109b6565b61034e610a05565b6102576004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610a17565b6102576004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610a85565b610257600480360360208110156104a757600080fd5b50356001600160a01b0316610afd565b610257610b10565b610273610b19565b610273600480360360408110156104dd57600080fd5b506001600160a01b0381358116916020013516610b1f565b61034e6004803603602081101561050b57600080fd5b50356001600160a01b0316610b4a565b61034e6004803603602081101561053157600080fd5b50351515610b9a565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105e46105dd610bf4565b8484610bf8565b5060015b92915050565b60006105fb600a54610cec565b905090565b600061060a610920565b6001600160a01b0316336001600160a01b0316148061062b5750600e5460ff165b6106665760405162461bcd60e51b815260040180806020018281038252602a815260200180611864602a913960400191505060405180910390fd5b610671848484610d32565b6106e78461067d610bf4565b6106e2856040518060600160405280603781526020016118be603791396001600160a01b038a166000908152600960205260408120906106bb610bf4565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610ea916565b610bf8565b5060019392505050565b60075460ff1690565b60006105e4610707610bf4565b846106e28560096000610718610bf4565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610f4016565b600061076061075b610bf4565b610afd565b61079b5760405162461bcd60e51b815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b6105e48383610f9a565b6107b66107b0610bf4565b82611091565b50565b600b5490565b6001600160a01b0381166000908152600860205260408120546107e190610cec565b90505b919050565b6107f161092f565b610830576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b6108848282611193565b5050565b600d5490565b600061089861092f565b6108d7576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b600b805490839055604080518281526020810185905281517fafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430929181900390910190a150919050565b6004546001600160a01b031690565b6004546000906001600160a01b0316610946610bf4565b6001600160a01b031614905090565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105c65780601f1061059b576101008083540402835291602001916105c6565b6109c161075b610bf4565b6109fc5760405162461bcd60e51b815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b6107b6816111fb565b610a15610a10610bf4565b611243565b565b60006105e4610a24610bf4565b846106e2856040518060600160405280603481526020016116706034913960096000610a4e610bf4565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610ea916565b6000610a8f610920565b6001600160a01b0316336001600160a01b03161480610ab05750600e5460ff165b610aeb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611864602a913960400191505060405180910390fd5b6105e4610af6610bf4565b8484610d32565b60006107e160038363ffffffff61128b16565b600e5460ff1690565b600c5490565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610b5261092f565b610b91576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b6107b6816112f2565b610ba261092f565b610be1576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b600e805460ff1916911515919091179055565b3390565b610c00611393565b6001600160a01b038316610c455760405162461bcd60e51b81526004018080602001828103825260338152602001806116d86033913960400191505060405180910390fd5b6001600160a01b038216610c8a5760405162461bcd60e51b815260040180806020018281038252603181526020018061170b6031913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610cfb575060006107e4565b600d54430380610d1957610d1183600b546113e5565b9150506107e4565b610d2b83610d2683611426565b6113e5565b9392505050565b610d3a611393565b6001600160a01b038316610d7f5760405162461bcd60e51b81526004018080602001828103825260348152602001806116a46034913960400191505060405180910390fd5b6001600160a01b038216610dc45760405162461bcd60e51b81526004018080602001828103825260328152602001806117fd6032913960400191505060405180910390fd5b6000610dcf8261142d565b9050610e148160405180606001604052806035815260200161182f603591396001600160a01b038716600090815260086020526040902054919063ffffffff610ea916565b6001600160a01b038086166000908152600860205260408082209390935590851681522054610e49908263ffffffff610f4016565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e928461143b565b60408051918252519081900360200190a350505050565b60008184841115610f385760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610efd578181015183820152602001610ee5565b50505050905090810190601f168015610f2a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610d2b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610fa2611393565b6001600160a01b038216610fe75760405162461bcd60e51b815260040180806020018281038252602e81526020018061178d602e913960400191505060405180910390fd5b6000610ff28261142d565b600a54909150611008908263ffffffff610f4016565b600a556001600160a01b038316600090815260086020526040902054611034908263ffffffff610f4016565b6001600160a01b038416600081815260086020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107b8461143b565b60408051918252519081900360200190a3505050565b611099611393565b6001600160a01b0382166110de5760405162461bcd60e51b815260040180806020018281038252603081526020018061188e6030913960400191505060405180910390fd5b60006110e98261142d565b905061112e816040518060600160405280603181526020016118f5603191396001600160a01b038616600090815260086020526040902054919063ffffffff610ea916565b6001600160a01b038416600090815260086020526040902055600a5461115a908263ffffffff61144916565b600a5560006001600160a01b0384167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107b8461143b565b61119b611393565b6111a58282611091565b6111ad61092f565b61088457610884826111bd610bf4565b6106e284604051806060016040528060338152602001611926603391396001600160a01b0388166000908152600960205260408120906106bb610bf4565b61120c60038263ffffffff61148b16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61125460038263ffffffff61150c16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b0382166112d25760405162461bcd60e51b81526004018080602001828103825260228152602001806117db6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0381166113375760405162461bcd60e51b815260040180806020018281038252602681526020018061164a6026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600d54430380156107b6576113a781611426565b600b81905543600d5560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce80000006114176114018585611573565b60026b033b2e3c9fd0803ce80000005b046115d6565b8161141e57fe5b049392505050565b50600b5490565b60006107e182600b54611625565b60006107e182600b546113e5565b6000610d2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea9565b611495828261128b565b156114e7576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b611516828261128b565b6115515760405162461bcd60e51b815260040180806020018281038252602181526020018061176c6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081158061158e5750508082028282828161158b57fe5b04145b6105e8576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b808201828110156105e8576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600081611417611641856b033b2e3c9fd0803ce8000000611573565b60028561141156fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654175746f496e6372656d656e74436f696e6167653a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a206275726e2066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a72315820d5764adea31fbf3839fbc0cff7afda966ec63b8d0db737591e85afc150358bc364736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373"
  7490  
  7491  // DeployCustomIncrementCoinageMock deploys a new Ethereum contract, binding an instance of CustomIncrementCoinageMock to it.
  7492  func DeployCustomIncrementCoinageMock(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, factor *big.Int, transfersEnabled bool) (common.Address, *types.Transaction, *CustomIncrementCoinageMock, error) {
  7493  	parsed, err := abi.JSON(strings.NewReader(CustomIncrementCoinageMockABI))
  7494  	if err != nil {
  7495  		return common.Address{}, nil, nil, err
  7496  	}
  7497  
  7498  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(CustomIncrementCoinageMockBin), backend, name, symbol, factor, transfersEnabled)
  7499  	if err != nil {
  7500  		return common.Address{}, nil, nil, err
  7501  	}
  7502  	return address, tx, &CustomIncrementCoinageMock{CustomIncrementCoinageMockCaller: CustomIncrementCoinageMockCaller{contract: contract}, CustomIncrementCoinageMockTransactor: CustomIncrementCoinageMockTransactor{contract: contract}, CustomIncrementCoinageMockFilterer: CustomIncrementCoinageMockFilterer{contract: contract}}, nil
  7503  }
  7504  
  7505  // CustomIncrementCoinageMock is an auto generated Go binding around an Ethereum contract.
  7506  type CustomIncrementCoinageMock struct {
  7507  	CustomIncrementCoinageMockCaller     // Read-only binding to the contract
  7508  	CustomIncrementCoinageMockTransactor // Write-only binding to the contract
  7509  	CustomIncrementCoinageMockFilterer   // Log filterer for contract events
  7510  }
  7511  
  7512  // CustomIncrementCoinageMockCaller is an auto generated read-only Go binding around an Ethereum contract.
  7513  type CustomIncrementCoinageMockCaller struct {
  7514  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7515  }
  7516  
  7517  // CustomIncrementCoinageMockTransactor is an auto generated write-only Go binding around an Ethereum contract.
  7518  type CustomIncrementCoinageMockTransactor struct {
  7519  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7520  }
  7521  
  7522  // CustomIncrementCoinageMockFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  7523  type CustomIncrementCoinageMockFilterer struct {
  7524  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7525  }
  7526  
  7527  // CustomIncrementCoinageMockSession is an auto generated Go binding around an Ethereum contract,
  7528  // with pre-set call and transact options.
  7529  type CustomIncrementCoinageMockSession struct {
  7530  	Contract     *CustomIncrementCoinageMock // Generic contract binding to set the session for
  7531  	CallOpts     bind.CallOpts               // Call options to use throughout this session
  7532  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
  7533  }
  7534  
  7535  // CustomIncrementCoinageMockCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  7536  // with pre-set call options.
  7537  type CustomIncrementCoinageMockCallerSession struct {
  7538  	Contract *CustomIncrementCoinageMockCaller // Generic contract caller binding to set the session for
  7539  	CallOpts bind.CallOpts                     // Call options to use throughout this session
  7540  }
  7541  
  7542  // CustomIncrementCoinageMockTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  7543  // with pre-set transact options.
  7544  type CustomIncrementCoinageMockTransactorSession struct {
  7545  	Contract     *CustomIncrementCoinageMockTransactor // Generic contract transactor binding to set the session for
  7546  	TransactOpts bind.TransactOpts                     // Transaction auth options to use throughout this session
  7547  }
  7548  
  7549  // CustomIncrementCoinageMockRaw is an auto generated low-level Go binding around an Ethereum contract.
  7550  type CustomIncrementCoinageMockRaw struct {
  7551  	Contract *CustomIncrementCoinageMock // Generic contract binding to access the raw methods on
  7552  }
  7553  
  7554  // CustomIncrementCoinageMockCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  7555  type CustomIncrementCoinageMockCallerRaw struct {
  7556  	Contract *CustomIncrementCoinageMockCaller // Generic read-only contract binding to access the raw methods on
  7557  }
  7558  
  7559  // CustomIncrementCoinageMockTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  7560  type CustomIncrementCoinageMockTransactorRaw struct {
  7561  	Contract *CustomIncrementCoinageMockTransactor // Generic write-only contract binding to access the raw methods on
  7562  }
  7563  
  7564  // NewCustomIncrementCoinageMock creates a new instance of CustomIncrementCoinageMock, bound to a specific deployed contract.
  7565  func NewCustomIncrementCoinageMock(address common.Address, backend bind.ContractBackend) (*CustomIncrementCoinageMock, error) {
  7566  	contract, err := bindCustomIncrementCoinageMock(address, backend, backend, backend)
  7567  	if err != nil {
  7568  		return nil, err
  7569  	}
  7570  	return &CustomIncrementCoinageMock{CustomIncrementCoinageMockCaller: CustomIncrementCoinageMockCaller{contract: contract}, CustomIncrementCoinageMockTransactor: CustomIncrementCoinageMockTransactor{contract: contract}, CustomIncrementCoinageMockFilterer: CustomIncrementCoinageMockFilterer{contract: contract}}, nil
  7571  }
  7572  
  7573  // NewCustomIncrementCoinageMockCaller creates a new read-only instance of CustomIncrementCoinageMock, bound to a specific deployed contract.
  7574  func NewCustomIncrementCoinageMockCaller(address common.Address, caller bind.ContractCaller) (*CustomIncrementCoinageMockCaller, error) {
  7575  	contract, err := bindCustomIncrementCoinageMock(address, caller, nil, nil)
  7576  	if err != nil {
  7577  		return nil, err
  7578  	}
  7579  	return &CustomIncrementCoinageMockCaller{contract: contract}, nil
  7580  }
  7581  
  7582  // NewCustomIncrementCoinageMockTransactor creates a new write-only instance of CustomIncrementCoinageMock, bound to a specific deployed contract.
  7583  func NewCustomIncrementCoinageMockTransactor(address common.Address, transactor bind.ContractTransactor) (*CustomIncrementCoinageMockTransactor, error) {
  7584  	contract, err := bindCustomIncrementCoinageMock(address, nil, transactor, nil)
  7585  	if err != nil {
  7586  		return nil, err
  7587  	}
  7588  	return &CustomIncrementCoinageMockTransactor{contract: contract}, nil
  7589  }
  7590  
  7591  // NewCustomIncrementCoinageMockFilterer creates a new log filterer instance of CustomIncrementCoinageMock, bound to a specific deployed contract.
  7592  func NewCustomIncrementCoinageMockFilterer(address common.Address, filterer bind.ContractFilterer) (*CustomIncrementCoinageMockFilterer, error) {
  7593  	contract, err := bindCustomIncrementCoinageMock(address, nil, nil, filterer)
  7594  	if err != nil {
  7595  		return nil, err
  7596  	}
  7597  	return &CustomIncrementCoinageMockFilterer{contract: contract}, nil
  7598  }
  7599  
  7600  // bindCustomIncrementCoinageMock binds a generic wrapper to an already deployed contract.
  7601  func bindCustomIncrementCoinageMock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7602  	parsed, err := abi.JSON(strings.NewReader(CustomIncrementCoinageMockABI))
  7603  	if err != nil {
  7604  		return nil, err
  7605  	}
  7606  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  7607  }
  7608  
  7609  // Call invokes the (constant) contract method with params as input values and
  7610  // sets the output to result. The result type might be a single field for simple
  7611  // returns, a slice of interfaces for anonymous returns and a struct for named
  7612  // returns.
  7613  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  7614  	return _CustomIncrementCoinageMock.Contract.CustomIncrementCoinageMockCaller.contract.Call(opts, result, method, params...)
  7615  }
  7616  
  7617  // Transfer initiates a plain transaction to move funds to the contract, calling
  7618  // its default method if one is available.
  7619  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7620  	return _CustomIncrementCoinageMock.Contract.CustomIncrementCoinageMockTransactor.contract.Transfer(opts)
  7621  }
  7622  
  7623  // Transact invokes the (paid) contract method with params as input values.
  7624  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7625  	return _CustomIncrementCoinageMock.Contract.CustomIncrementCoinageMockTransactor.contract.Transact(opts, method, params...)
  7626  }
  7627  
  7628  // Call invokes the (constant) contract method with params as input values and
  7629  // sets the output to result. The result type might be a single field for simple
  7630  // returns, a slice of interfaces for anonymous returns and a struct for named
  7631  // returns.
  7632  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  7633  	return _CustomIncrementCoinageMock.Contract.contract.Call(opts, result, method, params...)
  7634  }
  7635  
  7636  // Transfer initiates a plain transaction to move funds to the contract, calling
  7637  // its default method if one is available.
  7638  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7639  	return _CustomIncrementCoinageMock.Contract.contract.Transfer(opts)
  7640  }
  7641  
  7642  // Transact invokes the (paid) contract method with params as input values.
  7643  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7644  	return _CustomIncrementCoinageMock.Contract.contract.Transact(opts, method, params...)
  7645  }
  7646  
  7647  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  7648  //
  7649  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  7650  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
  7651  	var (
  7652  		ret0 = new(*big.Int)
  7653  	)
  7654  	out := ret0
  7655  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "allowance", owner, spender)
  7656  	return *ret0, err
  7657  }
  7658  
  7659  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  7660  //
  7661  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  7662  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  7663  	return _CustomIncrementCoinageMock.Contract.Allowance(&_CustomIncrementCoinageMock.CallOpts, owner, spender)
  7664  }
  7665  
  7666  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  7667  //
  7668  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
  7669  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  7670  	return _CustomIncrementCoinageMock.Contract.Allowance(&_CustomIncrementCoinageMock.CallOpts, owner, spender)
  7671  }
  7672  
  7673  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  7674  //
  7675  // Solidity: function balanceOf(address account) constant returns(uint256)
  7676  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  7677  	var (
  7678  		ret0 = new(*big.Int)
  7679  	)
  7680  	out := ret0
  7681  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "balanceOf", account)
  7682  	return *ret0, err
  7683  }
  7684  
  7685  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  7686  //
  7687  // Solidity: function balanceOf(address account) constant returns(uint256)
  7688  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) BalanceOf(account common.Address) (*big.Int, error) {
  7689  	return _CustomIncrementCoinageMock.Contract.BalanceOf(&_CustomIncrementCoinageMock.CallOpts, account)
  7690  }
  7691  
  7692  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  7693  //
  7694  // Solidity: function balanceOf(address account) constant returns(uint256)
  7695  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
  7696  	return _CustomIncrementCoinageMock.Contract.BalanceOf(&_CustomIncrementCoinageMock.CallOpts, account)
  7697  }
  7698  
  7699  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  7700  //
  7701  // Solidity: function decimals() constant returns(uint8)
  7702  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
  7703  	var (
  7704  		ret0 = new(uint8)
  7705  	)
  7706  	out := ret0
  7707  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "decimals")
  7708  	return *ret0, err
  7709  }
  7710  
  7711  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  7712  //
  7713  // Solidity: function decimals() constant returns(uint8)
  7714  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Decimals() (uint8, error) {
  7715  	return _CustomIncrementCoinageMock.Contract.Decimals(&_CustomIncrementCoinageMock.CallOpts)
  7716  }
  7717  
  7718  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
  7719  //
  7720  // Solidity: function decimals() constant returns(uint8)
  7721  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) Decimals() (uint8, error) {
  7722  	return _CustomIncrementCoinageMock.Contract.Decimals(&_CustomIncrementCoinageMock.CallOpts)
  7723  }
  7724  
  7725  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  7726  //
  7727  // Solidity: function factor() constant returns(uint256)
  7728  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
  7729  	var (
  7730  		ret0 = new(*big.Int)
  7731  	)
  7732  	out := ret0
  7733  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "factor")
  7734  	return *ret0, err
  7735  }
  7736  
  7737  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  7738  //
  7739  // Solidity: function factor() constant returns(uint256)
  7740  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Factor() (*big.Int, error) {
  7741  	return _CustomIncrementCoinageMock.Contract.Factor(&_CustomIncrementCoinageMock.CallOpts)
  7742  }
  7743  
  7744  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
  7745  //
  7746  // Solidity: function factor() constant returns(uint256)
  7747  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) Factor() (*big.Int, error) {
  7748  	return _CustomIncrementCoinageMock.Contract.Factor(&_CustomIncrementCoinageMock.CallOpts)
  7749  }
  7750  
  7751  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  7752  //
  7753  // Solidity: function factorIncrement() constant returns(uint256)
  7754  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
  7755  	var (
  7756  		ret0 = new(*big.Int)
  7757  	)
  7758  	out := ret0
  7759  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "factorIncrement")
  7760  	return *ret0, err
  7761  }
  7762  
  7763  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  7764  //
  7765  // Solidity: function factorIncrement() constant returns(uint256)
  7766  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) FactorIncrement() (*big.Int, error) {
  7767  	return _CustomIncrementCoinageMock.Contract.FactorIncrement(&_CustomIncrementCoinageMock.CallOpts)
  7768  }
  7769  
  7770  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
  7771  //
  7772  // Solidity: function factorIncrement() constant returns(uint256)
  7773  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) FactorIncrement() (*big.Int, error) {
  7774  	return _CustomIncrementCoinageMock.Contract.FactorIncrement(&_CustomIncrementCoinageMock.CallOpts)
  7775  }
  7776  
  7777  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  7778  //
  7779  // Solidity: function isMinter(address account) constant returns(bool)
  7780  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
  7781  	var (
  7782  		ret0 = new(bool)
  7783  	)
  7784  	out := ret0
  7785  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "isMinter", account)
  7786  	return *ret0, err
  7787  }
  7788  
  7789  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  7790  //
  7791  // Solidity: function isMinter(address account) constant returns(bool)
  7792  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) IsMinter(account common.Address) (bool, error) {
  7793  	return _CustomIncrementCoinageMock.Contract.IsMinter(&_CustomIncrementCoinageMock.CallOpts, account)
  7794  }
  7795  
  7796  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  7797  //
  7798  // Solidity: function isMinter(address account) constant returns(bool)
  7799  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) IsMinter(account common.Address) (bool, error) {
  7800  	return _CustomIncrementCoinageMock.Contract.IsMinter(&_CustomIncrementCoinageMock.CallOpts, account)
  7801  }
  7802  
  7803  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7804  //
  7805  // Solidity: function isOwner() constant returns(bool)
  7806  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  7807  	var (
  7808  		ret0 = new(bool)
  7809  	)
  7810  	out := ret0
  7811  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "isOwner")
  7812  	return *ret0, err
  7813  }
  7814  
  7815  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7816  //
  7817  // Solidity: function isOwner() constant returns(bool)
  7818  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) IsOwner() (bool, error) {
  7819  	return _CustomIncrementCoinageMock.Contract.IsOwner(&_CustomIncrementCoinageMock.CallOpts)
  7820  }
  7821  
  7822  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7823  //
  7824  // Solidity: function isOwner() constant returns(bool)
  7825  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) IsOwner() (bool, error) {
  7826  	return _CustomIncrementCoinageMock.Contract.IsOwner(&_CustomIncrementCoinageMock.CallOpts)
  7827  }
  7828  
  7829  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  7830  //
  7831  // Solidity: function lastBlock() constant returns(uint256)
  7832  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) LastBlock(opts *bind.CallOpts) (*big.Int, error) {
  7833  	var (
  7834  		ret0 = new(*big.Int)
  7835  	)
  7836  	out := ret0
  7837  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "lastBlock")
  7838  	return *ret0, err
  7839  }
  7840  
  7841  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  7842  //
  7843  // Solidity: function lastBlock() constant returns(uint256)
  7844  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) LastBlock() (*big.Int, error) {
  7845  	return _CustomIncrementCoinageMock.Contract.LastBlock(&_CustomIncrementCoinageMock.CallOpts)
  7846  }
  7847  
  7848  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
  7849  //
  7850  // Solidity: function lastBlock() constant returns(uint256)
  7851  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) LastBlock() (*big.Int, error) {
  7852  	return _CustomIncrementCoinageMock.Contract.LastBlock(&_CustomIncrementCoinageMock.CallOpts)
  7853  }
  7854  
  7855  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  7856  //
  7857  // Solidity: function name() constant returns(string)
  7858  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) Name(opts *bind.CallOpts) (string, error) {
  7859  	var (
  7860  		ret0 = new(string)
  7861  	)
  7862  	out := ret0
  7863  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "name")
  7864  	return *ret0, err
  7865  }
  7866  
  7867  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  7868  //
  7869  // Solidity: function name() constant returns(string)
  7870  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Name() (string, error) {
  7871  	return _CustomIncrementCoinageMock.Contract.Name(&_CustomIncrementCoinageMock.CallOpts)
  7872  }
  7873  
  7874  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  7875  //
  7876  // Solidity: function name() constant returns(string)
  7877  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) Name() (string, error) {
  7878  	return _CustomIncrementCoinageMock.Contract.Name(&_CustomIncrementCoinageMock.CallOpts)
  7879  }
  7880  
  7881  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7882  //
  7883  // Solidity: function owner() constant returns(address)
  7884  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  7885  	var (
  7886  		ret0 = new(common.Address)
  7887  	)
  7888  	out := ret0
  7889  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "owner")
  7890  	return *ret0, err
  7891  }
  7892  
  7893  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7894  //
  7895  // Solidity: function owner() constant returns(address)
  7896  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Owner() (common.Address, error) {
  7897  	return _CustomIncrementCoinageMock.Contract.Owner(&_CustomIncrementCoinageMock.CallOpts)
  7898  }
  7899  
  7900  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7901  //
  7902  // Solidity: function owner() constant returns(address)
  7903  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) Owner() (common.Address, error) {
  7904  	return _CustomIncrementCoinageMock.Contract.Owner(&_CustomIncrementCoinageMock.CallOpts)
  7905  }
  7906  
  7907  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  7908  //
  7909  // Solidity: function symbol() constant returns(string)
  7910  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) Symbol(opts *bind.CallOpts) (string, error) {
  7911  	var (
  7912  		ret0 = new(string)
  7913  	)
  7914  	out := ret0
  7915  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "symbol")
  7916  	return *ret0, err
  7917  }
  7918  
  7919  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  7920  //
  7921  // Solidity: function symbol() constant returns(string)
  7922  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Symbol() (string, error) {
  7923  	return _CustomIncrementCoinageMock.Contract.Symbol(&_CustomIncrementCoinageMock.CallOpts)
  7924  }
  7925  
  7926  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  7927  //
  7928  // Solidity: function symbol() constant returns(string)
  7929  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) Symbol() (string, error) {
  7930  	return _CustomIncrementCoinageMock.Contract.Symbol(&_CustomIncrementCoinageMock.CallOpts)
  7931  }
  7932  
  7933  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  7934  //
  7935  // Solidity: function totalSupply() constant returns(uint256)
  7936  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  7937  	var (
  7938  		ret0 = new(*big.Int)
  7939  	)
  7940  	out := ret0
  7941  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "totalSupply")
  7942  	return *ret0, err
  7943  }
  7944  
  7945  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  7946  //
  7947  // Solidity: function totalSupply() constant returns(uint256)
  7948  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) TotalSupply() (*big.Int, error) {
  7949  	return _CustomIncrementCoinageMock.Contract.TotalSupply(&_CustomIncrementCoinageMock.CallOpts)
  7950  }
  7951  
  7952  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  7953  //
  7954  // Solidity: function totalSupply() constant returns(uint256)
  7955  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) TotalSupply() (*big.Int, error) {
  7956  	return _CustomIncrementCoinageMock.Contract.TotalSupply(&_CustomIncrementCoinageMock.CallOpts)
  7957  }
  7958  
  7959  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  7960  //
  7961  // Solidity: function transfersEnabled() constant returns(bool)
  7962  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
  7963  	var (
  7964  		ret0 = new(bool)
  7965  	)
  7966  	out := ret0
  7967  	err := _CustomIncrementCoinageMock.contract.Call(opts, out, "transfersEnabled")
  7968  	return *ret0, err
  7969  }
  7970  
  7971  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  7972  //
  7973  // Solidity: function transfersEnabled() constant returns(bool)
  7974  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) TransfersEnabled() (bool, error) {
  7975  	return _CustomIncrementCoinageMock.Contract.TransfersEnabled(&_CustomIncrementCoinageMock.CallOpts)
  7976  }
  7977  
  7978  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
  7979  //
  7980  // Solidity: function transfersEnabled() constant returns(bool)
  7981  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockCallerSession) TransfersEnabled() (bool, error) {
  7982  	return _CustomIncrementCoinageMock.Contract.TransfersEnabled(&_CustomIncrementCoinageMock.CallOpts)
  7983  }
  7984  
  7985  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  7986  //
  7987  // Solidity: function addMinter(address account) returns()
  7988  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
  7989  	return _CustomIncrementCoinageMock.contract.Transact(opts, "addMinter", account)
  7990  }
  7991  
  7992  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  7993  //
  7994  // Solidity: function addMinter(address account) returns()
  7995  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) AddMinter(account common.Address) (*types.Transaction, error) {
  7996  	return _CustomIncrementCoinageMock.Contract.AddMinter(&_CustomIncrementCoinageMock.TransactOpts, account)
  7997  }
  7998  
  7999  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  8000  //
  8001  // Solidity: function addMinter(address account) returns()
  8002  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
  8003  	return _CustomIncrementCoinageMock.Contract.AddMinter(&_CustomIncrementCoinageMock.TransactOpts, account)
  8004  }
  8005  
  8006  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  8007  //
  8008  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  8009  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
  8010  	return _CustomIncrementCoinageMock.contract.Transact(opts, "approve", spender, amount)
  8011  }
  8012  
  8013  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  8014  //
  8015  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  8016  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  8017  	return _CustomIncrementCoinageMock.Contract.Approve(&_CustomIncrementCoinageMock.TransactOpts, spender, amount)
  8018  }
  8019  
  8020  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  8021  //
  8022  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  8023  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  8024  	return _CustomIncrementCoinageMock.Contract.Approve(&_CustomIncrementCoinageMock.TransactOpts, spender, amount)
  8025  }
  8026  
  8027  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  8028  //
  8029  // Solidity: function burn(uint256 amount) returns()
  8030  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
  8031  	return _CustomIncrementCoinageMock.contract.Transact(opts, "burn", amount)
  8032  }
  8033  
  8034  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  8035  //
  8036  // Solidity: function burn(uint256 amount) returns()
  8037  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Burn(amount *big.Int) (*types.Transaction, error) {
  8038  	return _CustomIncrementCoinageMock.Contract.Burn(&_CustomIncrementCoinageMock.TransactOpts, amount)
  8039  }
  8040  
  8041  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  8042  //
  8043  // Solidity: function burn(uint256 amount) returns()
  8044  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) {
  8045  	return _CustomIncrementCoinageMock.Contract.Burn(&_CustomIncrementCoinageMock.TransactOpts, amount)
  8046  }
  8047  
  8048  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
  8049  //
  8050  // Solidity: function burnFrom(address account, uint256 amount) returns()
  8051  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
  8052  	return _CustomIncrementCoinageMock.contract.Transact(opts, "burnFrom", account, amount)
  8053  }
  8054  
  8055  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
  8056  //
  8057  // Solidity: function burnFrom(address account, uint256 amount) returns()
  8058  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
  8059  	return _CustomIncrementCoinageMock.Contract.BurnFrom(&_CustomIncrementCoinageMock.TransactOpts, account, amount)
  8060  }
  8061  
  8062  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
  8063  //
  8064  // Solidity: function burnFrom(address account, uint256 amount) returns()
  8065  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
  8066  	return _CustomIncrementCoinageMock.Contract.BurnFrom(&_CustomIncrementCoinageMock.TransactOpts, account, amount)
  8067  }
  8068  
  8069  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  8070  //
  8071  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  8072  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  8073  	return _CustomIncrementCoinageMock.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
  8074  }
  8075  
  8076  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  8077  //
  8078  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  8079  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  8080  	return _CustomIncrementCoinageMock.Contract.DecreaseAllowance(&_CustomIncrementCoinageMock.TransactOpts, spender, subtractedValue)
  8081  }
  8082  
  8083  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
  8084  //
  8085  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
  8086  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
  8087  	return _CustomIncrementCoinageMock.Contract.DecreaseAllowance(&_CustomIncrementCoinageMock.TransactOpts, spender, subtractedValue)
  8088  }
  8089  
  8090  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  8091  //
  8092  // Solidity: function enableTransfers(bool v) returns()
  8093  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) EnableTransfers(opts *bind.TransactOpts, v bool) (*types.Transaction, error) {
  8094  	return _CustomIncrementCoinageMock.contract.Transact(opts, "enableTransfers", v)
  8095  }
  8096  
  8097  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  8098  //
  8099  // Solidity: function enableTransfers(bool v) returns()
  8100  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) EnableTransfers(v bool) (*types.Transaction, error) {
  8101  	return _CustomIncrementCoinageMock.Contract.EnableTransfers(&_CustomIncrementCoinageMock.TransactOpts, v)
  8102  }
  8103  
  8104  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
  8105  //
  8106  // Solidity: function enableTransfers(bool v) returns()
  8107  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) EnableTransfers(v bool) (*types.Transaction, error) {
  8108  	return _CustomIncrementCoinageMock.Contract.EnableTransfers(&_CustomIncrementCoinageMock.TransactOpts, v)
  8109  }
  8110  
  8111  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  8112  //
  8113  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  8114  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  8115  	return _CustomIncrementCoinageMock.contract.Transact(opts, "increaseAllowance", spender, addedValue)
  8116  }
  8117  
  8118  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  8119  //
  8120  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  8121  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  8122  	return _CustomIncrementCoinageMock.Contract.IncreaseAllowance(&_CustomIncrementCoinageMock.TransactOpts, spender, addedValue)
  8123  }
  8124  
  8125  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
  8126  //
  8127  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
  8128  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
  8129  	return _CustomIncrementCoinageMock.Contract.IncreaseAllowance(&_CustomIncrementCoinageMock.TransactOpts, spender, addedValue)
  8130  }
  8131  
  8132  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  8133  //
  8134  // Solidity: function mint(address account, uint256 amount) returns(bool)
  8135  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
  8136  	return _CustomIncrementCoinageMock.contract.Transact(opts, "mint", account, amount)
  8137  }
  8138  
  8139  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  8140  //
  8141  // Solidity: function mint(address account, uint256 amount) returns(bool)
  8142  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
  8143  	return _CustomIncrementCoinageMock.Contract.Mint(&_CustomIncrementCoinageMock.TransactOpts, account, amount)
  8144  }
  8145  
  8146  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  8147  //
  8148  // Solidity: function mint(address account, uint256 amount) returns(bool)
  8149  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
  8150  	return _CustomIncrementCoinageMock.Contract.Mint(&_CustomIncrementCoinageMock.TransactOpts, account, amount)
  8151  }
  8152  
  8153  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  8154  //
  8155  // Solidity: function renounceMinter() returns()
  8156  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
  8157  	return _CustomIncrementCoinageMock.contract.Transact(opts, "renounceMinter")
  8158  }
  8159  
  8160  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  8161  //
  8162  // Solidity: function renounceMinter() returns()
  8163  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) RenounceMinter() (*types.Transaction, error) {
  8164  	return _CustomIncrementCoinageMock.Contract.RenounceMinter(&_CustomIncrementCoinageMock.TransactOpts)
  8165  }
  8166  
  8167  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  8168  //
  8169  // Solidity: function renounceMinter() returns()
  8170  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) RenounceMinter() (*types.Transaction, error) {
  8171  	return _CustomIncrementCoinageMock.Contract.RenounceMinter(&_CustomIncrementCoinageMock.TransactOpts)
  8172  }
  8173  
  8174  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8175  //
  8176  // Solidity: function renounceOwnership() returns()
  8177  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  8178  	return _CustomIncrementCoinageMock.contract.Transact(opts, "renounceOwnership")
  8179  }
  8180  
  8181  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8182  //
  8183  // Solidity: function renounceOwnership() returns()
  8184  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) RenounceOwnership() (*types.Transaction, error) {
  8185  	return _CustomIncrementCoinageMock.Contract.RenounceOwnership(&_CustomIncrementCoinageMock.TransactOpts)
  8186  }
  8187  
  8188  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8189  //
  8190  // Solidity: function renounceOwnership() returns()
  8191  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  8192  	return _CustomIncrementCoinageMock.Contract.RenounceOwnership(&_CustomIncrementCoinageMock.TransactOpts)
  8193  }
  8194  
  8195  // SetFactor is a paid mutator transaction binding the contract method 0x817e9d31.
  8196  //
  8197  // Solidity: function setFactor(uint256 factor) returns(bool)
  8198  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) SetFactor(opts *bind.TransactOpts, factor *big.Int) (*types.Transaction, error) {
  8199  	return _CustomIncrementCoinageMock.contract.Transact(opts, "setFactor", factor)
  8200  }
  8201  
  8202  // SetFactor is a paid mutator transaction binding the contract method 0x817e9d31.
  8203  //
  8204  // Solidity: function setFactor(uint256 factor) returns(bool)
  8205  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) SetFactor(factor *big.Int) (*types.Transaction, error) {
  8206  	return _CustomIncrementCoinageMock.Contract.SetFactor(&_CustomIncrementCoinageMock.TransactOpts, factor)
  8207  }
  8208  
  8209  // SetFactor is a paid mutator transaction binding the contract method 0x817e9d31.
  8210  //
  8211  // Solidity: function setFactor(uint256 factor) returns(bool)
  8212  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) SetFactor(factor *big.Int) (*types.Transaction, error) {
  8213  	return _CustomIncrementCoinageMock.Contract.SetFactor(&_CustomIncrementCoinageMock.TransactOpts, factor)
  8214  }
  8215  
  8216  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  8217  //
  8218  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  8219  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  8220  	return _CustomIncrementCoinageMock.contract.Transact(opts, "transfer", recipient, amount)
  8221  }
  8222  
  8223  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  8224  //
  8225  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  8226  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  8227  	return _CustomIncrementCoinageMock.Contract.Transfer(&_CustomIncrementCoinageMock.TransactOpts, recipient, amount)
  8228  }
  8229  
  8230  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  8231  //
  8232  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  8233  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  8234  	return _CustomIncrementCoinageMock.Contract.Transfer(&_CustomIncrementCoinageMock.TransactOpts, recipient, amount)
  8235  }
  8236  
  8237  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  8238  //
  8239  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  8240  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  8241  	return _CustomIncrementCoinageMock.contract.Transact(opts, "transferFrom", sender, recipient, amount)
  8242  }
  8243  
  8244  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  8245  //
  8246  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  8247  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  8248  	return _CustomIncrementCoinageMock.Contract.TransferFrom(&_CustomIncrementCoinageMock.TransactOpts, sender, recipient, amount)
  8249  }
  8250  
  8251  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  8252  //
  8253  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  8254  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  8255  	return _CustomIncrementCoinageMock.Contract.TransferFrom(&_CustomIncrementCoinageMock.TransactOpts, sender, recipient, amount)
  8256  }
  8257  
  8258  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8259  //
  8260  // Solidity: function transferOwnership(address newOwner) returns()
  8261  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  8262  	return _CustomIncrementCoinageMock.contract.Transact(opts, "transferOwnership", newOwner)
  8263  }
  8264  
  8265  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8266  //
  8267  // Solidity: function transferOwnership(address newOwner) returns()
  8268  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8269  	return _CustomIncrementCoinageMock.Contract.TransferOwnership(&_CustomIncrementCoinageMock.TransactOpts, newOwner)
  8270  }
  8271  
  8272  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8273  //
  8274  // Solidity: function transferOwnership(address newOwner) returns()
  8275  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8276  	return _CustomIncrementCoinageMock.Contract.TransferOwnership(&_CustomIncrementCoinageMock.TransactOpts, newOwner)
  8277  }
  8278  
  8279  // CustomIncrementCoinageMockApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the CustomIncrementCoinageMock contract.
  8280  type CustomIncrementCoinageMockApprovalIterator struct {
  8281  	Event *CustomIncrementCoinageMockApproval // Event containing the contract specifics and raw log
  8282  
  8283  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8284  	event    string              // Event name to use for unpacking event data
  8285  
  8286  	logs chan types.Log        // Log channel receiving the found contract events
  8287  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8288  	done bool                  // Whether the subscription completed delivering logs
  8289  	fail error                 // Occurred error to stop iteration
  8290  }
  8291  
  8292  // Next advances the iterator to the subsequent event, returning whether there
  8293  // are any more events found. In case of a retrieval or parsing error, false is
  8294  // returned and Error() can be queried for the exact failure.
  8295  func (it *CustomIncrementCoinageMockApprovalIterator) Next() bool {
  8296  	// If the iterator failed, stop iterating
  8297  	if it.fail != nil {
  8298  		return false
  8299  	}
  8300  	// If the iterator completed, deliver directly whatever's available
  8301  	if it.done {
  8302  		select {
  8303  		case log := <-it.logs:
  8304  			it.Event = new(CustomIncrementCoinageMockApproval)
  8305  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8306  				it.fail = err
  8307  				return false
  8308  			}
  8309  			it.Event.Raw = log
  8310  			return true
  8311  
  8312  		default:
  8313  			return false
  8314  		}
  8315  	}
  8316  	// Iterator still in progress, wait for either a data or an error event
  8317  	select {
  8318  	case log := <-it.logs:
  8319  		it.Event = new(CustomIncrementCoinageMockApproval)
  8320  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8321  			it.fail = err
  8322  			return false
  8323  		}
  8324  		it.Event.Raw = log
  8325  		return true
  8326  
  8327  	case err := <-it.sub.Err():
  8328  		it.done = true
  8329  		it.fail = err
  8330  		return it.Next()
  8331  	}
  8332  }
  8333  
  8334  // Error returns any retrieval or parsing error occurred during filtering.
  8335  func (it *CustomIncrementCoinageMockApprovalIterator) Error() error {
  8336  	return it.fail
  8337  }
  8338  
  8339  // Close terminates the iteration process, releasing any pending underlying
  8340  // resources.
  8341  func (it *CustomIncrementCoinageMockApprovalIterator) Close() error {
  8342  	it.sub.Unsubscribe()
  8343  	return nil
  8344  }
  8345  
  8346  // CustomIncrementCoinageMockApproval represents a Approval event raised by the CustomIncrementCoinageMock contract.
  8347  type CustomIncrementCoinageMockApproval struct {
  8348  	Owner   common.Address
  8349  	Spender common.Address
  8350  	Value   *big.Int
  8351  	Raw     types.Log // Blockchain specific contextual infos
  8352  }
  8353  
  8354  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8355  //
  8356  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  8357  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*CustomIncrementCoinageMockApprovalIterator, error) {
  8358  
  8359  	var ownerRule []interface{}
  8360  	for _, ownerItem := range owner {
  8361  		ownerRule = append(ownerRule, ownerItem)
  8362  	}
  8363  	var spenderRule []interface{}
  8364  	for _, spenderItem := range spender {
  8365  		spenderRule = append(spenderRule, spenderItem)
  8366  	}
  8367  
  8368  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  8369  	if err != nil {
  8370  		return nil, err
  8371  	}
  8372  	return &CustomIncrementCoinageMockApprovalIterator{contract: _CustomIncrementCoinageMock.contract, event: "Approval", logs: logs, sub: sub}, nil
  8373  }
  8374  
  8375  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8376  //
  8377  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  8378  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  8379  
  8380  	var ownerRule []interface{}
  8381  	for _, ownerItem := range owner {
  8382  		ownerRule = append(ownerRule, ownerItem)
  8383  	}
  8384  	var spenderRule []interface{}
  8385  	for _, spenderItem := range spender {
  8386  		spenderRule = append(spenderRule, spenderItem)
  8387  	}
  8388  
  8389  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  8390  	if err != nil {
  8391  		return nil, err
  8392  	}
  8393  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8394  		defer sub.Unsubscribe()
  8395  		for {
  8396  			select {
  8397  			case log := <-logs:
  8398  				// New log arrived, parse the event and forward to the user
  8399  				event := new(CustomIncrementCoinageMockApproval)
  8400  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "Approval", log); err != nil {
  8401  					return err
  8402  				}
  8403  				event.Raw = log
  8404  
  8405  				select {
  8406  				case sink <- event:
  8407  				case err := <-sub.Err():
  8408  					return err
  8409  				case <-quit:
  8410  					return nil
  8411  				}
  8412  			case err := <-sub.Err():
  8413  				return err
  8414  			case <-quit:
  8415  				return nil
  8416  			}
  8417  		}
  8418  	}), nil
  8419  }
  8420  
  8421  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8422  //
  8423  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  8424  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseApproval(log types.Log) (*CustomIncrementCoinageMockApproval, error) {
  8425  	event := new(CustomIncrementCoinageMockApproval)
  8426  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "Approval", log); err != nil {
  8427  		return nil, err
  8428  	}
  8429  	return event, nil
  8430  }
  8431  
  8432  // CustomIncrementCoinageMockFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the CustomIncrementCoinageMock contract.
  8433  type CustomIncrementCoinageMockFactorIncreasedIterator struct {
  8434  	Event *CustomIncrementCoinageMockFactorIncreased // Event containing the contract specifics and raw log
  8435  
  8436  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8437  	event    string              // Event name to use for unpacking event data
  8438  
  8439  	logs chan types.Log        // Log channel receiving the found contract events
  8440  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8441  	done bool                  // Whether the subscription completed delivering logs
  8442  	fail error                 // Occurred error to stop iteration
  8443  }
  8444  
  8445  // Next advances the iterator to the subsequent event, returning whether there
  8446  // are any more events found. In case of a retrieval or parsing error, false is
  8447  // returned and Error() can be queried for the exact failure.
  8448  func (it *CustomIncrementCoinageMockFactorIncreasedIterator) Next() bool {
  8449  	// If the iterator failed, stop iterating
  8450  	if it.fail != nil {
  8451  		return false
  8452  	}
  8453  	// If the iterator completed, deliver directly whatever's available
  8454  	if it.done {
  8455  		select {
  8456  		case log := <-it.logs:
  8457  			it.Event = new(CustomIncrementCoinageMockFactorIncreased)
  8458  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8459  				it.fail = err
  8460  				return false
  8461  			}
  8462  			it.Event.Raw = log
  8463  			return true
  8464  
  8465  		default:
  8466  			return false
  8467  		}
  8468  	}
  8469  	// Iterator still in progress, wait for either a data or an error event
  8470  	select {
  8471  	case log := <-it.logs:
  8472  		it.Event = new(CustomIncrementCoinageMockFactorIncreased)
  8473  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8474  			it.fail = err
  8475  			return false
  8476  		}
  8477  		it.Event.Raw = log
  8478  		return true
  8479  
  8480  	case err := <-it.sub.Err():
  8481  		it.done = true
  8482  		it.fail = err
  8483  		return it.Next()
  8484  	}
  8485  }
  8486  
  8487  // Error returns any retrieval or parsing error occurred during filtering.
  8488  func (it *CustomIncrementCoinageMockFactorIncreasedIterator) Error() error {
  8489  	return it.fail
  8490  }
  8491  
  8492  // Close terminates the iteration process, releasing any pending underlying
  8493  // resources.
  8494  func (it *CustomIncrementCoinageMockFactorIncreasedIterator) Close() error {
  8495  	it.sub.Unsubscribe()
  8496  	return nil
  8497  }
  8498  
  8499  // CustomIncrementCoinageMockFactorIncreased represents a FactorIncreased event raised by the CustomIncrementCoinageMock contract.
  8500  type CustomIncrementCoinageMockFactorIncreased struct {
  8501  	Factor *big.Int
  8502  	Raw    types.Log // Blockchain specific contextual infos
  8503  }
  8504  
  8505  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  8506  //
  8507  // Solidity: event FactorIncreased(uint256 factor)
  8508  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*CustomIncrementCoinageMockFactorIncreasedIterator, error) {
  8509  
  8510  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "FactorIncreased")
  8511  	if err != nil {
  8512  		return nil, err
  8513  	}
  8514  	return &CustomIncrementCoinageMockFactorIncreasedIterator{contract: _CustomIncrementCoinageMock.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
  8515  }
  8516  
  8517  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  8518  //
  8519  // Solidity: event FactorIncreased(uint256 factor)
  8520  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockFactorIncreased) (event.Subscription, error) {
  8521  
  8522  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "FactorIncreased")
  8523  	if err != nil {
  8524  		return nil, err
  8525  	}
  8526  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8527  		defer sub.Unsubscribe()
  8528  		for {
  8529  			select {
  8530  			case log := <-logs:
  8531  				// New log arrived, parse the event and forward to the user
  8532  				event := new(CustomIncrementCoinageMockFactorIncreased)
  8533  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  8534  					return err
  8535  				}
  8536  				event.Raw = log
  8537  
  8538  				select {
  8539  				case sink <- event:
  8540  				case err := <-sub.Err():
  8541  					return err
  8542  				case <-quit:
  8543  					return nil
  8544  				}
  8545  			case err := <-sub.Err():
  8546  				return err
  8547  			case <-quit:
  8548  				return nil
  8549  			}
  8550  		}
  8551  	}), nil
  8552  }
  8553  
  8554  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
  8555  //
  8556  // Solidity: event FactorIncreased(uint256 factor)
  8557  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseFactorIncreased(log types.Log) (*CustomIncrementCoinageMockFactorIncreased, error) {
  8558  	event := new(CustomIncrementCoinageMockFactorIncreased)
  8559  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
  8560  		return nil, err
  8561  	}
  8562  	return event, nil
  8563  }
  8564  
  8565  // CustomIncrementCoinageMockFactorSetIterator is returned from FilterFactorSet and is used to iterate over the raw logs and unpacked data for FactorSet events raised by the CustomIncrementCoinageMock contract.
  8566  type CustomIncrementCoinageMockFactorSetIterator struct {
  8567  	Event *CustomIncrementCoinageMockFactorSet // Event containing the contract specifics and raw log
  8568  
  8569  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8570  	event    string              // Event name to use for unpacking event data
  8571  
  8572  	logs chan types.Log        // Log channel receiving the found contract events
  8573  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8574  	done bool                  // Whether the subscription completed delivering logs
  8575  	fail error                 // Occurred error to stop iteration
  8576  }
  8577  
  8578  // Next advances the iterator to the subsequent event, returning whether there
  8579  // are any more events found. In case of a retrieval or parsing error, false is
  8580  // returned and Error() can be queried for the exact failure.
  8581  func (it *CustomIncrementCoinageMockFactorSetIterator) Next() bool {
  8582  	// If the iterator failed, stop iterating
  8583  	if it.fail != nil {
  8584  		return false
  8585  	}
  8586  	// If the iterator completed, deliver directly whatever's available
  8587  	if it.done {
  8588  		select {
  8589  		case log := <-it.logs:
  8590  			it.Event = new(CustomIncrementCoinageMockFactorSet)
  8591  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8592  				it.fail = err
  8593  				return false
  8594  			}
  8595  			it.Event.Raw = log
  8596  			return true
  8597  
  8598  		default:
  8599  			return false
  8600  		}
  8601  	}
  8602  	// Iterator still in progress, wait for either a data or an error event
  8603  	select {
  8604  	case log := <-it.logs:
  8605  		it.Event = new(CustomIncrementCoinageMockFactorSet)
  8606  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8607  			it.fail = err
  8608  			return false
  8609  		}
  8610  		it.Event.Raw = log
  8611  		return true
  8612  
  8613  	case err := <-it.sub.Err():
  8614  		it.done = true
  8615  		it.fail = err
  8616  		return it.Next()
  8617  	}
  8618  }
  8619  
  8620  // Error returns any retrieval or parsing error occurred during filtering.
  8621  func (it *CustomIncrementCoinageMockFactorSetIterator) Error() error {
  8622  	return it.fail
  8623  }
  8624  
  8625  // Close terminates the iteration process, releasing any pending underlying
  8626  // resources.
  8627  func (it *CustomIncrementCoinageMockFactorSetIterator) Close() error {
  8628  	it.sub.Unsubscribe()
  8629  	return nil
  8630  }
  8631  
  8632  // CustomIncrementCoinageMockFactorSet represents a FactorSet event raised by the CustomIncrementCoinageMock contract.
  8633  type CustomIncrementCoinageMockFactorSet struct {
  8634  	Previous *big.Int
  8635  	Current  *big.Int
  8636  	Raw      types.Log // Blockchain specific contextual infos
  8637  }
  8638  
  8639  // FilterFactorSet is a free log retrieval operation binding the contract event 0xafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430.
  8640  //
  8641  // Solidity: event FactorSet(uint256 previous, uint256 current)
  8642  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterFactorSet(opts *bind.FilterOpts) (*CustomIncrementCoinageMockFactorSetIterator, error) {
  8643  
  8644  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "FactorSet")
  8645  	if err != nil {
  8646  		return nil, err
  8647  	}
  8648  	return &CustomIncrementCoinageMockFactorSetIterator{contract: _CustomIncrementCoinageMock.contract, event: "FactorSet", logs: logs, sub: sub}, nil
  8649  }
  8650  
  8651  // WatchFactorSet is a free log subscription operation binding the contract event 0xafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430.
  8652  //
  8653  // Solidity: event FactorSet(uint256 previous, uint256 current)
  8654  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchFactorSet(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockFactorSet) (event.Subscription, error) {
  8655  
  8656  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "FactorSet")
  8657  	if err != nil {
  8658  		return nil, err
  8659  	}
  8660  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8661  		defer sub.Unsubscribe()
  8662  		for {
  8663  			select {
  8664  			case log := <-logs:
  8665  				// New log arrived, parse the event and forward to the user
  8666  				event := new(CustomIncrementCoinageMockFactorSet)
  8667  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "FactorSet", log); err != nil {
  8668  					return err
  8669  				}
  8670  				event.Raw = log
  8671  
  8672  				select {
  8673  				case sink <- event:
  8674  				case err := <-sub.Err():
  8675  					return err
  8676  				case <-quit:
  8677  					return nil
  8678  				}
  8679  			case err := <-sub.Err():
  8680  				return err
  8681  			case <-quit:
  8682  				return nil
  8683  			}
  8684  		}
  8685  	}), nil
  8686  }
  8687  
  8688  // ParseFactorSet is a log parse operation binding the contract event 0xafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430.
  8689  //
  8690  // Solidity: event FactorSet(uint256 previous, uint256 current)
  8691  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseFactorSet(log types.Log) (*CustomIncrementCoinageMockFactorSet, error) {
  8692  	event := new(CustomIncrementCoinageMockFactorSet)
  8693  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "FactorSet", log); err != nil {
  8694  		return nil, err
  8695  	}
  8696  	return event, nil
  8697  }
  8698  
  8699  // CustomIncrementCoinageMockMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the CustomIncrementCoinageMock contract.
  8700  type CustomIncrementCoinageMockMinterAddedIterator struct {
  8701  	Event *CustomIncrementCoinageMockMinterAdded // Event containing the contract specifics and raw log
  8702  
  8703  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8704  	event    string              // Event name to use for unpacking event data
  8705  
  8706  	logs chan types.Log        // Log channel receiving the found contract events
  8707  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8708  	done bool                  // Whether the subscription completed delivering logs
  8709  	fail error                 // Occurred error to stop iteration
  8710  }
  8711  
  8712  // Next advances the iterator to the subsequent event, returning whether there
  8713  // are any more events found. In case of a retrieval or parsing error, false is
  8714  // returned and Error() can be queried for the exact failure.
  8715  func (it *CustomIncrementCoinageMockMinterAddedIterator) Next() bool {
  8716  	// If the iterator failed, stop iterating
  8717  	if it.fail != nil {
  8718  		return false
  8719  	}
  8720  	// If the iterator completed, deliver directly whatever's available
  8721  	if it.done {
  8722  		select {
  8723  		case log := <-it.logs:
  8724  			it.Event = new(CustomIncrementCoinageMockMinterAdded)
  8725  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8726  				it.fail = err
  8727  				return false
  8728  			}
  8729  			it.Event.Raw = log
  8730  			return true
  8731  
  8732  		default:
  8733  			return false
  8734  		}
  8735  	}
  8736  	// Iterator still in progress, wait for either a data or an error event
  8737  	select {
  8738  	case log := <-it.logs:
  8739  		it.Event = new(CustomIncrementCoinageMockMinterAdded)
  8740  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8741  			it.fail = err
  8742  			return false
  8743  		}
  8744  		it.Event.Raw = log
  8745  		return true
  8746  
  8747  	case err := <-it.sub.Err():
  8748  		it.done = true
  8749  		it.fail = err
  8750  		return it.Next()
  8751  	}
  8752  }
  8753  
  8754  // Error returns any retrieval or parsing error occurred during filtering.
  8755  func (it *CustomIncrementCoinageMockMinterAddedIterator) Error() error {
  8756  	return it.fail
  8757  }
  8758  
  8759  // Close terminates the iteration process, releasing any pending underlying
  8760  // resources.
  8761  func (it *CustomIncrementCoinageMockMinterAddedIterator) Close() error {
  8762  	it.sub.Unsubscribe()
  8763  	return nil
  8764  }
  8765  
  8766  // CustomIncrementCoinageMockMinterAdded represents a MinterAdded event raised by the CustomIncrementCoinageMock contract.
  8767  type CustomIncrementCoinageMockMinterAdded struct {
  8768  	Account common.Address
  8769  	Raw     types.Log // Blockchain specific contextual infos
  8770  }
  8771  
  8772  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  8773  //
  8774  // Solidity: event MinterAdded(address indexed account)
  8775  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*CustomIncrementCoinageMockMinterAddedIterator, error) {
  8776  
  8777  	var accountRule []interface{}
  8778  	for _, accountItem := range account {
  8779  		accountRule = append(accountRule, accountItem)
  8780  	}
  8781  
  8782  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "MinterAdded", accountRule)
  8783  	if err != nil {
  8784  		return nil, err
  8785  	}
  8786  	return &CustomIncrementCoinageMockMinterAddedIterator{contract: _CustomIncrementCoinageMock.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
  8787  }
  8788  
  8789  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  8790  //
  8791  // Solidity: event MinterAdded(address indexed account)
  8792  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockMinterAdded, account []common.Address) (event.Subscription, error) {
  8793  
  8794  	var accountRule []interface{}
  8795  	for _, accountItem := range account {
  8796  		accountRule = append(accountRule, accountItem)
  8797  	}
  8798  
  8799  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "MinterAdded", accountRule)
  8800  	if err != nil {
  8801  		return nil, err
  8802  	}
  8803  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8804  		defer sub.Unsubscribe()
  8805  		for {
  8806  			select {
  8807  			case log := <-logs:
  8808  				// New log arrived, parse the event and forward to the user
  8809  				event := new(CustomIncrementCoinageMockMinterAdded)
  8810  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  8811  					return err
  8812  				}
  8813  				event.Raw = log
  8814  
  8815  				select {
  8816  				case sink <- event:
  8817  				case err := <-sub.Err():
  8818  					return err
  8819  				case <-quit:
  8820  					return nil
  8821  				}
  8822  			case err := <-sub.Err():
  8823  				return err
  8824  			case <-quit:
  8825  				return nil
  8826  			}
  8827  		}
  8828  	}), nil
  8829  }
  8830  
  8831  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  8832  //
  8833  // Solidity: event MinterAdded(address indexed account)
  8834  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseMinterAdded(log types.Log) (*CustomIncrementCoinageMockMinterAdded, error) {
  8835  	event := new(CustomIncrementCoinageMockMinterAdded)
  8836  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  8837  		return nil, err
  8838  	}
  8839  	return event, nil
  8840  }
  8841  
  8842  // CustomIncrementCoinageMockMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the CustomIncrementCoinageMock contract.
  8843  type CustomIncrementCoinageMockMinterRemovedIterator struct {
  8844  	Event *CustomIncrementCoinageMockMinterRemoved // Event containing the contract specifics and raw log
  8845  
  8846  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8847  	event    string              // Event name to use for unpacking event data
  8848  
  8849  	logs chan types.Log        // Log channel receiving the found contract events
  8850  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8851  	done bool                  // Whether the subscription completed delivering logs
  8852  	fail error                 // Occurred error to stop iteration
  8853  }
  8854  
  8855  // Next advances the iterator to the subsequent event, returning whether there
  8856  // are any more events found. In case of a retrieval or parsing error, false is
  8857  // returned and Error() can be queried for the exact failure.
  8858  func (it *CustomIncrementCoinageMockMinterRemovedIterator) Next() bool {
  8859  	// If the iterator failed, stop iterating
  8860  	if it.fail != nil {
  8861  		return false
  8862  	}
  8863  	// If the iterator completed, deliver directly whatever's available
  8864  	if it.done {
  8865  		select {
  8866  		case log := <-it.logs:
  8867  			it.Event = new(CustomIncrementCoinageMockMinterRemoved)
  8868  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8869  				it.fail = err
  8870  				return false
  8871  			}
  8872  			it.Event.Raw = log
  8873  			return true
  8874  
  8875  		default:
  8876  			return false
  8877  		}
  8878  	}
  8879  	// Iterator still in progress, wait for either a data or an error event
  8880  	select {
  8881  	case log := <-it.logs:
  8882  		it.Event = new(CustomIncrementCoinageMockMinterRemoved)
  8883  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8884  			it.fail = err
  8885  			return false
  8886  		}
  8887  		it.Event.Raw = log
  8888  		return true
  8889  
  8890  	case err := <-it.sub.Err():
  8891  		it.done = true
  8892  		it.fail = err
  8893  		return it.Next()
  8894  	}
  8895  }
  8896  
  8897  // Error returns any retrieval or parsing error occurred during filtering.
  8898  func (it *CustomIncrementCoinageMockMinterRemovedIterator) Error() error {
  8899  	return it.fail
  8900  }
  8901  
  8902  // Close terminates the iteration process, releasing any pending underlying
  8903  // resources.
  8904  func (it *CustomIncrementCoinageMockMinterRemovedIterator) Close() error {
  8905  	it.sub.Unsubscribe()
  8906  	return nil
  8907  }
  8908  
  8909  // CustomIncrementCoinageMockMinterRemoved represents a MinterRemoved event raised by the CustomIncrementCoinageMock contract.
  8910  type CustomIncrementCoinageMockMinterRemoved struct {
  8911  	Account common.Address
  8912  	Raw     types.Log // Blockchain specific contextual infos
  8913  }
  8914  
  8915  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  8916  //
  8917  // Solidity: event MinterRemoved(address indexed account)
  8918  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*CustomIncrementCoinageMockMinterRemovedIterator, error) {
  8919  
  8920  	var accountRule []interface{}
  8921  	for _, accountItem := range account {
  8922  		accountRule = append(accountRule, accountItem)
  8923  	}
  8924  
  8925  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "MinterRemoved", accountRule)
  8926  	if err != nil {
  8927  		return nil, err
  8928  	}
  8929  	return &CustomIncrementCoinageMockMinterRemovedIterator{contract: _CustomIncrementCoinageMock.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
  8930  }
  8931  
  8932  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  8933  //
  8934  // Solidity: event MinterRemoved(address indexed account)
  8935  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockMinterRemoved, account []common.Address) (event.Subscription, error) {
  8936  
  8937  	var accountRule []interface{}
  8938  	for _, accountItem := range account {
  8939  		accountRule = append(accountRule, accountItem)
  8940  	}
  8941  
  8942  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "MinterRemoved", accountRule)
  8943  	if err != nil {
  8944  		return nil, err
  8945  	}
  8946  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8947  		defer sub.Unsubscribe()
  8948  		for {
  8949  			select {
  8950  			case log := <-logs:
  8951  				// New log arrived, parse the event and forward to the user
  8952  				event := new(CustomIncrementCoinageMockMinterRemoved)
  8953  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  8954  					return err
  8955  				}
  8956  				event.Raw = log
  8957  
  8958  				select {
  8959  				case sink <- event:
  8960  				case err := <-sub.Err():
  8961  					return err
  8962  				case <-quit:
  8963  					return nil
  8964  				}
  8965  			case err := <-sub.Err():
  8966  				return err
  8967  			case <-quit:
  8968  				return nil
  8969  			}
  8970  		}
  8971  	}), nil
  8972  }
  8973  
  8974  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  8975  //
  8976  // Solidity: event MinterRemoved(address indexed account)
  8977  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseMinterRemoved(log types.Log) (*CustomIncrementCoinageMockMinterRemoved, error) {
  8978  	event := new(CustomIncrementCoinageMockMinterRemoved)
  8979  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  8980  		return nil, err
  8981  	}
  8982  	return event, nil
  8983  }
  8984  
  8985  // CustomIncrementCoinageMockOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the CustomIncrementCoinageMock contract.
  8986  type CustomIncrementCoinageMockOwnershipTransferredIterator struct {
  8987  	Event *CustomIncrementCoinageMockOwnershipTransferred // Event containing the contract specifics and raw log
  8988  
  8989  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8990  	event    string              // Event name to use for unpacking event data
  8991  
  8992  	logs chan types.Log        // Log channel receiving the found contract events
  8993  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8994  	done bool                  // Whether the subscription completed delivering logs
  8995  	fail error                 // Occurred error to stop iteration
  8996  }
  8997  
  8998  // Next advances the iterator to the subsequent event, returning whether there
  8999  // are any more events found. In case of a retrieval or parsing error, false is
  9000  // returned and Error() can be queried for the exact failure.
  9001  func (it *CustomIncrementCoinageMockOwnershipTransferredIterator) Next() bool {
  9002  	// If the iterator failed, stop iterating
  9003  	if it.fail != nil {
  9004  		return false
  9005  	}
  9006  	// If the iterator completed, deliver directly whatever's available
  9007  	if it.done {
  9008  		select {
  9009  		case log := <-it.logs:
  9010  			it.Event = new(CustomIncrementCoinageMockOwnershipTransferred)
  9011  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9012  				it.fail = err
  9013  				return false
  9014  			}
  9015  			it.Event.Raw = log
  9016  			return true
  9017  
  9018  		default:
  9019  			return false
  9020  		}
  9021  	}
  9022  	// Iterator still in progress, wait for either a data or an error event
  9023  	select {
  9024  	case log := <-it.logs:
  9025  		it.Event = new(CustomIncrementCoinageMockOwnershipTransferred)
  9026  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9027  			it.fail = err
  9028  			return false
  9029  		}
  9030  		it.Event.Raw = log
  9031  		return true
  9032  
  9033  	case err := <-it.sub.Err():
  9034  		it.done = true
  9035  		it.fail = err
  9036  		return it.Next()
  9037  	}
  9038  }
  9039  
  9040  // Error returns any retrieval or parsing error occurred during filtering.
  9041  func (it *CustomIncrementCoinageMockOwnershipTransferredIterator) Error() error {
  9042  	return it.fail
  9043  }
  9044  
  9045  // Close terminates the iteration process, releasing any pending underlying
  9046  // resources.
  9047  func (it *CustomIncrementCoinageMockOwnershipTransferredIterator) Close() error {
  9048  	it.sub.Unsubscribe()
  9049  	return nil
  9050  }
  9051  
  9052  // CustomIncrementCoinageMockOwnershipTransferred represents a OwnershipTransferred event raised by the CustomIncrementCoinageMock contract.
  9053  type CustomIncrementCoinageMockOwnershipTransferred struct {
  9054  	PreviousOwner common.Address
  9055  	NewOwner      common.Address
  9056  	Raw           types.Log // Blockchain specific contextual infos
  9057  }
  9058  
  9059  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9060  //
  9061  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9062  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*CustomIncrementCoinageMockOwnershipTransferredIterator, error) {
  9063  
  9064  	var previousOwnerRule []interface{}
  9065  	for _, previousOwnerItem := range previousOwner {
  9066  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  9067  	}
  9068  	var newOwnerRule []interface{}
  9069  	for _, newOwnerItem := range newOwner {
  9070  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  9071  	}
  9072  
  9073  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  9074  	if err != nil {
  9075  		return nil, err
  9076  	}
  9077  	return &CustomIncrementCoinageMockOwnershipTransferredIterator{contract: _CustomIncrementCoinageMock.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  9078  }
  9079  
  9080  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9081  //
  9082  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9083  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  9084  
  9085  	var previousOwnerRule []interface{}
  9086  	for _, previousOwnerItem := range previousOwner {
  9087  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  9088  	}
  9089  	var newOwnerRule []interface{}
  9090  	for _, newOwnerItem := range newOwner {
  9091  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  9092  	}
  9093  
  9094  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  9095  	if err != nil {
  9096  		return nil, err
  9097  	}
  9098  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9099  		defer sub.Unsubscribe()
  9100  		for {
  9101  			select {
  9102  			case log := <-logs:
  9103  				// New log arrived, parse the event and forward to the user
  9104  				event := new(CustomIncrementCoinageMockOwnershipTransferred)
  9105  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  9106  					return err
  9107  				}
  9108  				event.Raw = log
  9109  
  9110  				select {
  9111  				case sink <- event:
  9112  				case err := <-sub.Err():
  9113  					return err
  9114  				case <-quit:
  9115  					return nil
  9116  				}
  9117  			case err := <-sub.Err():
  9118  				return err
  9119  			case <-quit:
  9120  				return nil
  9121  			}
  9122  		}
  9123  	}), nil
  9124  }
  9125  
  9126  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9127  //
  9128  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9129  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseOwnershipTransferred(log types.Log) (*CustomIncrementCoinageMockOwnershipTransferred, error) {
  9130  	event := new(CustomIncrementCoinageMockOwnershipTransferred)
  9131  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  9132  		return nil, err
  9133  	}
  9134  	return event, nil
  9135  }
  9136  
  9137  // CustomIncrementCoinageMockTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the CustomIncrementCoinageMock contract.
  9138  type CustomIncrementCoinageMockTransferIterator struct {
  9139  	Event *CustomIncrementCoinageMockTransfer // Event containing the contract specifics and raw log
  9140  
  9141  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9142  	event    string              // Event name to use for unpacking event data
  9143  
  9144  	logs chan types.Log        // Log channel receiving the found contract events
  9145  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  9146  	done bool                  // Whether the subscription completed delivering logs
  9147  	fail error                 // Occurred error to stop iteration
  9148  }
  9149  
  9150  // Next advances the iterator to the subsequent event, returning whether there
  9151  // are any more events found. In case of a retrieval or parsing error, false is
  9152  // returned and Error() can be queried for the exact failure.
  9153  func (it *CustomIncrementCoinageMockTransferIterator) Next() bool {
  9154  	// If the iterator failed, stop iterating
  9155  	if it.fail != nil {
  9156  		return false
  9157  	}
  9158  	// If the iterator completed, deliver directly whatever's available
  9159  	if it.done {
  9160  		select {
  9161  		case log := <-it.logs:
  9162  			it.Event = new(CustomIncrementCoinageMockTransfer)
  9163  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9164  				it.fail = err
  9165  				return false
  9166  			}
  9167  			it.Event.Raw = log
  9168  			return true
  9169  
  9170  		default:
  9171  			return false
  9172  		}
  9173  	}
  9174  	// Iterator still in progress, wait for either a data or an error event
  9175  	select {
  9176  	case log := <-it.logs:
  9177  		it.Event = new(CustomIncrementCoinageMockTransfer)
  9178  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9179  			it.fail = err
  9180  			return false
  9181  		}
  9182  		it.Event.Raw = log
  9183  		return true
  9184  
  9185  	case err := <-it.sub.Err():
  9186  		it.done = true
  9187  		it.fail = err
  9188  		return it.Next()
  9189  	}
  9190  }
  9191  
  9192  // Error returns any retrieval or parsing error occurred during filtering.
  9193  func (it *CustomIncrementCoinageMockTransferIterator) Error() error {
  9194  	return it.fail
  9195  }
  9196  
  9197  // Close terminates the iteration process, releasing any pending underlying
  9198  // resources.
  9199  func (it *CustomIncrementCoinageMockTransferIterator) Close() error {
  9200  	it.sub.Unsubscribe()
  9201  	return nil
  9202  }
  9203  
  9204  // CustomIncrementCoinageMockTransfer represents a Transfer event raised by the CustomIncrementCoinageMock contract.
  9205  type CustomIncrementCoinageMockTransfer struct {
  9206  	From  common.Address
  9207  	To    common.Address
  9208  	Value *big.Int
  9209  	Raw   types.Log // Blockchain specific contextual infos
  9210  }
  9211  
  9212  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  9213  //
  9214  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  9215  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CustomIncrementCoinageMockTransferIterator, error) {
  9216  
  9217  	var fromRule []interface{}
  9218  	for _, fromItem := range from {
  9219  		fromRule = append(fromRule, fromItem)
  9220  	}
  9221  	var toRule []interface{}
  9222  	for _, toItem := range to {
  9223  		toRule = append(toRule, toItem)
  9224  	}
  9225  
  9226  	logs, sub, err := _CustomIncrementCoinageMock.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  9227  	if err != nil {
  9228  		return nil, err
  9229  	}
  9230  	return &CustomIncrementCoinageMockTransferIterator{contract: _CustomIncrementCoinageMock.contract, event: "Transfer", logs: logs, sub: sub}, nil
  9231  }
  9232  
  9233  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  9234  //
  9235  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  9236  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *CustomIncrementCoinageMockTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  9237  
  9238  	var fromRule []interface{}
  9239  	for _, fromItem := range from {
  9240  		fromRule = append(fromRule, fromItem)
  9241  	}
  9242  	var toRule []interface{}
  9243  	for _, toItem := range to {
  9244  		toRule = append(toRule, toItem)
  9245  	}
  9246  
  9247  	logs, sub, err := _CustomIncrementCoinageMock.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  9248  	if err != nil {
  9249  		return nil, err
  9250  	}
  9251  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9252  		defer sub.Unsubscribe()
  9253  		for {
  9254  			select {
  9255  			case log := <-logs:
  9256  				// New log arrived, parse the event and forward to the user
  9257  				event := new(CustomIncrementCoinageMockTransfer)
  9258  				if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "Transfer", log); err != nil {
  9259  					return err
  9260  				}
  9261  				event.Raw = log
  9262  
  9263  				select {
  9264  				case sink <- event:
  9265  				case err := <-sub.Err():
  9266  					return err
  9267  				case <-quit:
  9268  					return nil
  9269  				}
  9270  			case err := <-sub.Err():
  9271  				return err
  9272  			case <-quit:
  9273  				return nil
  9274  			}
  9275  		}
  9276  	}), nil
  9277  }
  9278  
  9279  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  9280  //
  9281  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  9282  func (_CustomIncrementCoinageMock *CustomIncrementCoinageMockFilterer) ParseTransfer(log types.Log) (*CustomIncrementCoinageMockTransfer, error) {
  9283  	event := new(CustomIncrementCoinageMockTransfer)
  9284  	if err := _CustomIncrementCoinageMock.contract.UnpackLog(event, "Transfer", log); err != nil {
  9285  		return nil, err
  9286  	}
  9287  	return event, nil
  9288  }
  9289  
  9290  // DSMathABI is the input ABI used to generate the binding from.
  9291  const DSMathABI = "[]"
  9292  
  9293  // DSMathBin is the compiled bytecode used for deploying new contracts.
  9294  var DSMathBin = "0x6080604052348015600f57600080fd5b50603e80601d6000396000f3fe6080604052600080fdfea265627a7a72315820835d0f37e1207da2fc2224004e6efa210c7e8e2162ae19b8c8b7d3972779837464736f6c634300050c0032"
  9295  
  9296  // DeployDSMath deploys a new Ethereum contract, binding an instance of DSMath to it.
  9297  func DeployDSMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *DSMath, error) {
  9298  	parsed, err := abi.JSON(strings.NewReader(DSMathABI))
  9299  	if err != nil {
  9300  		return common.Address{}, nil, nil, err
  9301  	}
  9302  
  9303  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(DSMathBin), backend)
  9304  	if err != nil {
  9305  		return common.Address{}, nil, nil, err
  9306  	}
  9307  	return address, tx, &DSMath{DSMathCaller: DSMathCaller{contract: contract}, DSMathTransactor: DSMathTransactor{contract: contract}, DSMathFilterer: DSMathFilterer{contract: contract}}, nil
  9308  }
  9309  
  9310  // DSMath is an auto generated Go binding around an Ethereum contract.
  9311  type DSMath struct {
  9312  	DSMathCaller     // Read-only binding to the contract
  9313  	DSMathTransactor // Write-only binding to the contract
  9314  	DSMathFilterer   // Log filterer for contract events
  9315  }
  9316  
  9317  // DSMathCaller is an auto generated read-only Go binding around an Ethereum contract.
  9318  type DSMathCaller struct {
  9319  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9320  }
  9321  
  9322  // DSMathTransactor is an auto generated write-only Go binding around an Ethereum contract.
  9323  type DSMathTransactor struct {
  9324  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9325  }
  9326  
  9327  // DSMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  9328  type DSMathFilterer struct {
  9329  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9330  }
  9331  
  9332  // DSMathSession is an auto generated Go binding around an Ethereum contract,
  9333  // with pre-set call and transact options.
  9334  type DSMathSession struct {
  9335  	Contract     *DSMath           // Generic contract binding to set the session for
  9336  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  9337  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  9338  }
  9339  
  9340  // DSMathCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  9341  // with pre-set call options.
  9342  type DSMathCallerSession struct {
  9343  	Contract *DSMathCaller // Generic contract caller binding to set the session for
  9344  	CallOpts bind.CallOpts // Call options to use throughout this session
  9345  }
  9346  
  9347  // DSMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  9348  // with pre-set transact options.
  9349  type DSMathTransactorSession struct {
  9350  	Contract     *DSMathTransactor // Generic contract transactor binding to set the session for
  9351  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  9352  }
  9353  
  9354  // DSMathRaw is an auto generated low-level Go binding around an Ethereum contract.
  9355  type DSMathRaw struct {
  9356  	Contract *DSMath // Generic contract binding to access the raw methods on
  9357  }
  9358  
  9359  // DSMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  9360  type DSMathCallerRaw struct {
  9361  	Contract *DSMathCaller // Generic read-only contract binding to access the raw methods on
  9362  }
  9363  
  9364  // DSMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  9365  type DSMathTransactorRaw struct {
  9366  	Contract *DSMathTransactor // Generic write-only contract binding to access the raw methods on
  9367  }
  9368  
  9369  // NewDSMath creates a new instance of DSMath, bound to a specific deployed contract.
  9370  func NewDSMath(address common.Address, backend bind.ContractBackend) (*DSMath, error) {
  9371  	contract, err := bindDSMath(address, backend, backend, backend)
  9372  	if err != nil {
  9373  		return nil, err
  9374  	}
  9375  	return &DSMath{DSMathCaller: DSMathCaller{contract: contract}, DSMathTransactor: DSMathTransactor{contract: contract}, DSMathFilterer: DSMathFilterer{contract: contract}}, nil
  9376  }
  9377  
  9378  // NewDSMathCaller creates a new read-only instance of DSMath, bound to a specific deployed contract.
  9379  func NewDSMathCaller(address common.Address, caller bind.ContractCaller) (*DSMathCaller, error) {
  9380  	contract, err := bindDSMath(address, caller, nil, nil)
  9381  	if err != nil {
  9382  		return nil, err
  9383  	}
  9384  	return &DSMathCaller{contract: contract}, nil
  9385  }
  9386  
  9387  // NewDSMathTransactor creates a new write-only instance of DSMath, bound to a specific deployed contract.
  9388  func NewDSMathTransactor(address common.Address, transactor bind.ContractTransactor) (*DSMathTransactor, error) {
  9389  	contract, err := bindDSMath(address, nil, transactor, nil)
  9390  	if err != nil {
  9391  		return nil, err
  9392  	}
  9393  	return &DSMathTransactor{contract: contract}, nil
  9394  }
  9395  
  9396  // NewDSMathFilterer creates a new log filterer instance of DSMath, bound to a specific deployed contract.
  9397  func NewDSMathFilterer(address common.Address, filterer bind.ContractFilterer) (*DSMathFilterer, error) {
  9398  	contract, err := bindDSMath(address, nil, nil, filterer)
  9399  	if err != nil {
  9400  		return nil, err
  9401  	}
  9402  	return &DSMathFilterer{contract: contract}, nil
  9403  }
  9404  
  9405  // bindDSMath binds a generic wrapper to an already deployed contract.
  9406  func bindDSMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  9407  	parsed, err := abi.JSON(strings.NewReader(DSMathABI))
  9408  	if err != nil {
  9409  		return nil, err
  9410  	}
  9411  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  9412  }
  9413  
  9414  // Call invokes the (constant) contract method with params as input values and
  9415  // sets the output to result. The result type might be a single field for simple
  9416  // returns, a slice of interfaces for anonymous returns and a struct for named
  9417  // returns.
  9418  func (_DSMath *DSMathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9419  	return _DSMath.Contract.DSMathCaller.contract.Call(opts, result, method, params...)
  9420  }
  9421  
  9422  // Transfer initiates a plain transaction to move funds to the contract, calling
  9423  // its default method if one is available.
  9424  func (_DSMath *DSMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9425  	return _DSMath.Contract.DSMathTransactor.contract.Transfer(opts)
  9426  }
  9427  
  9428  // Transact invokes the (paid) contract method with params as input values.
  9429  func (_DSMath *DSMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9430  	return _DSMath.Contract.DSMathTransactor.contract.Transact(opts, method, params...)
  9431  }
  9432  
  9433  // Call invokes the (constant) contract method with params as input values and
  9434  // sets the output to result. The result type might be a single field for simple
  9435  // returns, a slice of interfaces for anonymous returns and a struct for named
  9436  // returns.
  9437  func (_DSMath *DSMathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9438  	return _DSMath.Contract.contract.Call(opts, result, method, params...)
  9439  }
  9440  
  9441  // Transfer initiates a plain transaction to move funds to the contract, calling
  9442  // its default method if one is available.
  9443  func (_DSMath *DSMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9444  	return _DSMath.Contract.contract.Transfer(opts)
  9445  }
  9446  
  9447  // Transact invokes the (paid) contract method with params as input values.
  9448  func (_DSMath *DSMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9449  	return _DSMath.Contract.contract.Transact(opts, method, params...)
  9450  }
  9451  
  9452  // DelegateProxyABI is the input ABI used to generate the binding from.
  9453  const DelegateProxyABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"codeAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proxyType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proxyTypeId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]"
  9454  
  9455  // DelegateProxyFuncSigs maps the 4-byte function signature to its string representation.
  9456  var DelegateProxyFuncSigs = map[string]string{
  9457  	"5c60da1b": "implementation()",
  9458  	"4555d5c9": "proxyType()",
  9459  }
  9460  
  9461  // DelegateProxy is an auto generated Go binding around an Ethereum contract.
  9462  type DelegateProxy struct {
  9463  	DelegateProxyCaller     // Read-only binding to the contract
  9464  	DelegateProxyTransactor // Write-only binding to the contract
  9465  	DelegateProxyFilterer   // Log filterer for contract events
  9466  }
  9467  
  9468  // DelegateProxyCaller is an auto generated read-only Go binding around an Ethereum contract.
  9469  type DelegateProxyCaller struct {
  9470  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9471  }
  9472  
  9473  // DelegateProxyTransactor is an auto generated write-only Go binding around an Ethereum contract.
  9474  type DelegateProxyTransactor struct {
  9475  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9476  }
  9477  
  9478  // DelegateProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  9479  type DelegateProxyFilterer struct {
  9480  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9481  }
  9482  
  9483  // DelegateProxySession is an auto generated Go binding around an Ethereum contract,
  9484  // with pre-set call and transact options.
  9485  type DelegateProxySession struct {
  9486  	Contract     *DelegateProxy    // Generic contract binding to set the session for
  9487  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  9488  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  9489  }
  9490  
  9491  // DelegateProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  9492  // with pre-set call options.
  9493  type DelegateProxyCallerSession struct {
  9494  	Contract *DelegateProxyCaller // Generic contract caller binding to set the session for
  9495  	CallOpts bind.CallOpts        // Call options to use throughout this session
  9496  }
  9497  
  9498  // DelegateProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  9499  // with pre-set transact options.
  9500  type DelegateProxyTransactorSession struct {
  9501  	Contract     *DelegateProxyTransactor // Generic contract transactor binding to set the session for
  9502  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
  9503  }
  9504  
  9505  // DelegateProxyRaw is an auto generated low-level Go binding around an Ethereum contract.
  9506  type DelegateProxyRaw struct {
  9507  	Contract *DelegateProxy // Generic contract binding to access the raw methods on
  9508  }
  9509  
  9510  // DelegateProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  9511  type DelegateProxyCallerRaw struct {
  9512  	Contract *DelegateProxyCaller // Generic read-only contract binding to access the raw methods on
  9513  }
  9514  
  9515  // DelegateProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  9516  type DelegateProxyTransactorRaw struct {
  9517  	Contract *DelegateProxyTransactor // Generic write-only contract binding to access the raw methods on
  9518  }
  9519  
  9520  // NewDelegateProxy creates a new instance of DelegateProxy, bound to a specific deployed contract.
  9521  func NewDelegateProxy(address common.Address, backend bind.ContractBackend) (*DelegateProxy, error) {
  9522  	contract, err := bindDelegateProxy(address, backend, backend, backend)
  9523  	if err != nil {
  9524  		return nil, err
  9525  	}
  9526  	return &DelegateProxy{DelegateProxyCaller: DelegateProxyCaller{contract: contract}, DelegateProxyTransactor: DelegateProxyTransactor{contract: contract}, DelegateProxyFilterer: DelegateProxyFilterer{contract: contract}}, nil
  9527  }
  9528  
  9529  // NewDelegateProxyCaller creates a new read-only instance of DelegateProxy, bound to a specific deployed contract.
  9530  func NewDelegateProxyCaller(address common.Address, caller bind.ContractCaller) (*DelegateProxyCaller, error) {
  9531  	contract, err := bindDelegateProxy(address, caller, nil, nil)
  9532  	if err != nil {
  9533  		return nil, err
  9534  	}
  9535  	return &DelegateProxyCaller{contract: contract}, nil
  9536  }
  9537  
  9538  // NewDelegateProxyTransactor creates a new write-only instance of DelegateProxy, bound to a specific deployed contract.
  9539  func NewDelegateProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*DelegateProxyTransactor, error) {
  9540  	contract, err := bindDelegateProxy(address, nil, transactor, nil)
  9541  	if err != nil {
  9542  		return nil, err
  9543  	}
  9544  	return &DelegateProxyTransactor{contract: contract}, nil
  9545  }
  9546  
  9547  // NewDelegateProxyFilterer creates a new log filterer instance of DelegateProxy, bound to a specific deployed contract.
  9548  func NewDelegateProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*DelegateProxyFilterer, error) {
  9549  	contract, err := bindDelegateProxy(address, nil, nil, filterer)
  9550  	if err != nil {
  9551  		return nil, err
  9552  	}
  9553  	return &DelegateProxyFilterer{contract: contract}, nil
  9554  }
  9555  
  9556  // bindDelegateProxy binds a generic wrapper to an already deployed contract.
  9557  func bindDelegateProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  9558  	parsed, err := abi.JSON(strings.NewReader(DelegateProxyABI))
  9559  	if err != nil {
  9560  		return nil, err
  9561  	}
  9562  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  9563  }
  9564  
  9565  // Call invokes the (constant) contract method with params as input values and
  9566  // sets the output to result. The result type might be a single field for simple
  9567  // returns, a slice of interfaces for anonymous returns and a struct for named
  9568  // returns.
  9569  func (_DelegateProxy *DelegateProxyRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9570  	return _DelegateProxy.Contract.DelegateProxyCaller.contract.Call(opts, result, method, params...)
  9571  }
  9572  
  9573  // Transfer initiates a plain transaction to move funds to the contract, calling
  9574  // its default method if one is available.
  9575  func (_DelegateProxy *DelegateProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9576  	return _DelegateProxy.Contract.DelegateProxyTransactor.contract.Transfer(opts)
  9577  }
  9578  
  9579  // Transact invokes the (paid) contract method with params as input values.
  9580  func (_DelegateProxy *DelegateProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9581  	return _DelegateProxy.Contract.DelegateProxyTransactor.contract.Transact(opts, method, params...)
  9582  }
  9583  
  9584  // Call invokes the (constant) contract method with params as input values and
  9585  // sets the output to result. The result type might be a single field for simple
  9586  // returns, a slice of interfaces for anonymous returns and a struct for named
  9587  // returns.
  9588  func (_DelegateProxy *DelegateProxyCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9589  	return _DelegateProxy.Contract.contract.Call(opts, result, method, params...)
  9590  }
  9591  
  9592  // Transfer initiates a plain transaction to move funds to the contract, calling
  9593  // its default method if one is available.
  9594  func (_DelegateProxy *DelegateProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9595  	return _DelegateProxy.Contract.contract.Transfer(opts)
  9596  }
  9597  
  9598  // Transact invokes the (paid) contract method with params as input values.
  9599  func (_DelegateProxy *DelegateProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9600  	return _DelegateProxy.Contract.contract.Transact(opts, method, params...)
  9601  }
  9602  
  9603  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  9604  //
  9605  // Solidity: function implementation() constant returns(address codeAddr)
  9606  func (_DelegateProxy *DelegateProxyCaller) Implementation(opts *bind.CallOpts) (common.Address, error) {
  9607  	var (
  9608  		ret0 = new(common.Address)
  9609  	)
  9610  	out := ret0
  9611  	err := _DelegateProxy.contract.Call(opts, out, "implementation")
  9612  	return *ret0, err
  9613  }
  9614  
  9615  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  9616  //
  9617  // Solidity: function implementation() constant returns(address codeAddr)
  9618  func (_DelegateProxy *DelegateProxySession) Implementation() (common.Address, error) {
  9619  	return _DelegateProxy.Contract.Implementation(&_DelegateProxy.CallOpts)
  9620  }
  9621  
  9622  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  9623  //
  9624  // Solidity: function implementation() constant returns(address codeAddr)
  9625  func (_DelegateProxy *DelegateProxyCallerSession) Implementation() (common.Address, error) {
  9626  	return _DelegateProxy.Contract.Implementation(&_DelegateProxy.CallOpts)
  9627  }
  9628  
  9629  // ProxyType is a free data retrieval call binding the contract method 0x4555d5c9.
  9630  //
  9631  // Solidity: function proxyType() constant returns(uint256 proxyTypeId)
  9632  func (_DelegateProxy *DelegateProxyCaller) ProxyType(opts *bind.CallOpts) (*big.Int, error) {
  9633  	var (
  9634  		ret0 = new(*big.Int)
  9635  	)
  9636  	out := ret0
  9637  	err := _DelegateProxy.contract.Call(opts, out, "proxyType")
  9638  	return *ret0, err
  9639  }
  9640  
  9641  // ProxyType is a free data retrieval call binding the contract method 0x4555d5c9.
  9642  //
  9643  // Solidity: function proxyType() constant returns(uint256 proxyTypeId)
  9644  func (_DelegateProxy *DelegateProxySession) ProxyType() (*big.Int, error) {
  9645  	return _DelegateProxy.Contract.ProxyType(&_DelegateProxy.CallOpts)
  9646  }
  9647  
  9648  // ProxyType is a free data retrieval call binding the contract method 0x4555d5c9.
  9649  //
  9650  // Solidity: function proxyType() constant returns(uint256 proxyTypeId)
  9651  func (_DelegateProxy *DelegateProxyCallerSession) ProxyType() (*big.Int, error) {
  9652  	return _DelegateProxy.Contract.ProxyType(&_DelegateProxy.CallOpts)
  9653  }
  9654  
  9655  // DepositManagerIABI is the input ABI used to generate the binding from.
  9656  const DepositManagerIABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"WITHDRAWAL_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accStakedAccount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"accStakedRootChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accUnstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accUnstakedAccount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"accUnstakedRootChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numPendingRequests\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numRequests\",\"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\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingUnstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingUnstakedAccount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"pendingUnstakedRootChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"wtonAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"processRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"processRequests\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"requestWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"requestWithdrawalAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"seigManager\",\"type\":\"address\"}],\"name\":\"setSeigManager\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"withdrawalRequest\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawableBlockNumber\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"processed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalRequestIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  9657  
  9658  // DepositManagerIFuncSigs maps the 4-byte function signature to its string representation.
  9659  var DepositManagerIFuncSigs = map[string]string{
  9660  	"0ebb172a": "WITHDRAWAL_DELAY()",
  9661  	"2d2fab94": "accStaked(address,address)",
  9662  	"0055f5c1": "accStakedAccount(address)",
  9663  	"e8035ec9": "accStakedRootChain(address)",
  9664  	"9d91b87b": "accUnstaked(address,address)",
  9665  	"a3543989": "accUnstakedAccount(address)",
  9666  	"03dc6510": "accUnstakedRootChain(address)",
  9667  	"47e7ef24": "deposit(address,uint256)",
  9668  	"5c0df46b": "numPendingRequests(address,address)",
  9669  	"f762eb57": "numRequests(address,address)",
  9670  	"8da5cb5b": "owner()",
  9671  	"2638fdf5": "pendingUnstaked(address,address)",
  9672  	"a0b2a913": "pendingUnstakedAccount(address)",
  9673  	"a8f3fb98": "pendingUnstakedRootChain(address)",
  9674  	"5d6f7cca": "processRequest(address)",
  9675  	"06260ceb": "processRequests(address,uint256)",
  9676  	"7b103999": "registry()",
  9677  	"da95ebf7": "requestWithdrawal(address,uint256)",
  9678  	"6b2160b7": "requestWithdrawalAll(address)",
  9679  	"6fb7f558": "seigManager()",
  9680  	"7657f20a": "setSeigManager(address)",
  9681  	"8fbef2d0": "withdrawalRequest(address,address,uint256)",
  9682  	"c647f26e": "withdrawalRequestIndex(address,address)",
  9683  	"8d62d949": "wton()",
  9684  }
  9685  
  9686  // DepositManagerI is an auto generated Go binding around an Ethereum contract.
  9687  type DepositManagerI struct {
  9688  	DepositManagerICaller     // Read-only binding to the contract
  9689  	DepositManagerITransactor // Write-only binding to the contract
  9690  	DepositManagerIFilterer   // Log filterer for contract events
  9691  }
  9692  
  9693  // DepositManagerICaller is an auto generated read-only Go binding around an Ethereum contract.
  9694  type DepositManagerICaller struct {
  9695  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9696  }
  9697  
  9698  // DepositManagerITransactor is an auto generated write-only Go binding around an Ethereum contract.
  9699  type DepositManagerITransactor struct {
  9700  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9701  }
  9702  
  9703  // DepositManagerIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  9704  type DepositManagerIFilterer struct {
  9705  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9706  }
  9707  
  9708  // DepositManagerISession is an auto generated Go binding around an Ethereum contract,
  9709  // with pre-set call and transact options.
  9710  type DepositManagerISession struct {
  9711  	Contract     *DepositManagerI  // Generic contract binding to set the session for
  9712  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  9713  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  9714  }
  9715  
  9716  // DepositManagerICallerSession is an auto generated read-only Go binding around an Ethereum contract,
  9717  // with pre-set call options.
  9718  type DepositManagerICallerSession struct {
  9719  	Contract *DepositManagerICaller // Generic contract caller binding to set the session for
  9720  	CallOpts bind.CallOpts          // Call options to use throughout this session
  9721  }
  9722  
  9723  // DepositManagerITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  9724  // with pre-set transact options.
  9725  type DepositManagerITransactorSession struct {
  9726  	Contract     *DepositManagerITransactor // Generic contract transactor binding to set the session for
  9727  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
  9728  }
  9729  
  9730  // DepositManagerIRaw is an auto generated low-level Go binding around an Ethereum contract.
  9731  type DepositManagerIRaw struct {
  9732  	Contract *DepositManagerI // Generic contract binding to access the raw methods on
  9733  }
  9734  
  9735  // DepositManagerICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  9736  type DepositManagerICallerRaw struct {
  9737  	Contract *DepositManagerICaller // Generic read-only contract binding to access the raw methods on
  9738  }
  9739  
  9740  // DepositManagerITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  9741  type DepositManagerITransactorRaw struct {
  9742  	Contract *DepositManagerITransactor // Generic write-only contract binding to access the raw methods on
  9743  }
  9744  
  9745  // NewDepositManagerI creates a new instance of DepositManagerI, bound to a specific deployed contract.
  9746  func NewDepositManagerI(address common.Address, backend bind.ContractBackend) (*DepositManagerI, error) {
  9747  	contract, err := bindDepositManagerI(address, backend, backend, backend)
  9748  	if err != nil {
  9749  		return nil, err
  9750  	}
  9751  	return &DepositManagerI{DepositManagerICaller: DepositManagerICaller{contract: contract}, DepositManagerITransactor: DepositManagerITransactor{contract: contract}, DepositManagerIFilterer: DepositManagerIFilterer{contract: contract}}, nil
  9752  }
  9753  
  9754  // NewDepositManagerICaller creates a new read-only instance of DepositManagerI, bound to a specific deployed contract.
  9755  func NewDepositManagerICaller(address common.Address, caller bind.ContractCaller) (*DepositManagerICaller, error) {
  9756  	contract, err := bindDepositManagerI(address, caller, nil, nil)
  9757  	if err != nil {
  9758  		return nil, err
  9759  	}
  9760  	return &DepositManagerICaller{contract: contract}, nil
  9761  }
  9762  
  9763  // NewDepositManagerITransactor creates a new write-only instance of DepositManagerI, bound to a specific deployed contract.
  9764  func NewDepositManagerITransactor(address common.Address, transactor bind.ContractTransactor) (*DepositManagerITransactor, error) {
  9765  	contract, err := bindDepositManagerI(address, nil, transactor, nil)
  9766  	if err != nil {
  9767  		return nil, err
  9768  	}
  9769  	return &DepositManagerITransactor{contract: contract}, nil
  9770  }
  9771  
  9772  // NewDepositManagerIFilterer creates a new log filterer instance of DepositManagerI, bound to a specific deployed contract.
  9773  func NewDepositManagerIFilterer(address common.Address, filterer bind.ContractFilterer) (*DepositManagerIFilterer, error) {
  9774  	contract, err := bindDepositManagerI(address, nil, nil, filterer)
  9775  	if err != nil {
  9776  		return nil, err
  9777  	}
  9778  	return &DepositManagerIFilterer{contract: contract}, nil
  9779  }
  9780  
  9781  // bindDepositManagerI binds a generic wrapper to an already deployed contract.
  9782  func bindDepositManagerI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  9783  	parsed, err := abi.JSON(strings.NewReader(DepositManagerIABI))
  9784  	if err != nil {
  9785  		return nil, err
  9786  	}
  9787  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  9788  }
  9789  
  9790  // Call invokes the (constant) contract method with params as input values and
  9791  // sets the output to result. The result type might be a single field for simple
  9792  // returns, a slice of interfaces for anonymous returns and a struct for named
  9793  // returns.
  9794  func (_DepositManagerI *DepositManagerIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9795  	return _DepositManagerI.Contract.DepositManagerICaller.contract.Call(opts, result, method, params...)
  9796  }
  9797  
  9798  // Transfer initiates a plain transaction to move funds to the contract, calling
  9799  // its default method if one is available.
  9800  func (_DepositManagerI *DepositManagerIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9801  	return _DepositManagerI.Contract.DepositManagerITransactor.contract.Transfer(opts)
  9802  }
  9803  
  9804  // Transact invokes the (paid) contract method with params as input values.
  9805  func (_DepositManagerI *DepositManagerIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9806  	return _DepositManagerI.Contract.DepositManagerITransactor.contract.Transact(opts, method, params...)
  9807  }
  9808  
  9809  // Call invokes the (constant) contract method with params as input values and
  9810  // sets the output to result. The result type might be a single field for simple
  9811  // returns, a slice of interfaces for anonymous returns and a struct for named
  9812  // returns.
  9813  func (_DepositManagerI *DepositManagerICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9814  	return _DepositManagerI.Contract.contract.Call(opts, result, method, params...)
  9815  }
  9816  
  9817  // Transfer initiates a plain transaction to move funds to the contract, calling
  9818  // its default method if one is available.
  9819  func (_DepositManagerI *DepositManagerITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9820  	return _DepositManagerI.Contract.contract.Transfer(opts)
  9821  }
  9822  
  9823  // Transact invokes the (paid) contract method with params as input values.
  9824  func (_DepositManagerI *DepositManagerITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9825  	return _DepositManagerI.Contract.contract.Transact(opts, method, params...)
  9826  }
  9827  
  9828  // WITHDRAWALDELAY is a free data retrieval call binding the contract method 0x0ebb172a.
  9829  //
  9830  // Solidity: function WITHDRAWAL_DELAY() constant returns(uint256)
  9831  func (_DepositManagerI *DepositManagerICaller) WITHDRAWALDELAY(opts *bind.CallOpts) (*big.Int, error) {
  9832  	var (
  9833  		ret0 = new(*big.Int)
  9834  	)
  9835  	out := ret0
  9836  	err := _DepositManagerI.contract.Call(opts, out, "WITHDRAWAL_DELAY")
  9837  	return *ret0, err
  9838  }
  9839  
  9840  // WITHDRAWALDELAY is a free data retrieval call binding the contract method 0x0ebb172a.
  9841  //
  9842  // Solidity: function WITHDRAWAL_DELAY() constant returns(uint256)
  9843  func (_DepositManagerI *DepositManagerISession) WITHDRAWALDELAY() (*big.Int, error) {
  9844  	return _DepositManagerI.Contract.WITHDRAWALDELAY(&_DepositManagerI.CallOpts)
  9845  }
  9846  
  9847  // WITHDRAWALDELAY is a free data retrieval call binding the contract method 0x0ebb172a.
  9848  //
  9849  // Solidity: function WITHDRAWAL_DELAY() constant returns(uint256)
  9850  func (_DepositManagerI *DepositManagerICallerSession) WITHDRAWALDELAY() (*big.Int, error) {
  9851  	return _DepositManagerI.Contract.WITHDRAWALDELAY(&_DepositManagerI.CallOpts)
  9852  }
  9853  
  9854  // AccStaked is a free data retrieval call binding the contract method 0x2d2fab94.
  9855  //
  9856  // Solidity: function accStaked(address rootchain, address account) constant returns(uint256 wtonAmount)
  9857  func (_DepositManagerI *DepositManagerICaller) AccStaked(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
  9858  	var (
  9859  		ret0 = new(*big.Int)
  9860  	)
  9861  	out := ret0
  9862  	err := _DepositManagerI.contract.Call(opts, out, "accStaked", rootchain, account)
  9863  	return *ret0, err
  9864  }
  9865  
  9866  // AccStaked is a free data retrieval call binding the contract method 0x2d2fab94.
  9867  //
  9868  // Solidity: function accStaked(address rootchain, address account) constant returns(uint256 wtonAmount)
  9869  func (_DepositManagerI *DepositManagerISession) AccStaked(rootchain common.Address, account common.Address) (*big.Int, error) {
  9870  	return _DepositManagerI.Contract.AccStaked(&_DepositManagerI.CallOpts, rootchain, account)
  9871  }
  9872  
  9873  // AccStaked is a free data retrieval call binding the contract method 0x2d2fab94.
  9874  //
  9875  // Solidity: function accStaked(address rootchain, address account) constant returns(uint256 wtonAmount)
  9876  func (_DepositManagerI *DepositManagerICallerSession) AccStaked(rootchain common.Address, account common.Address) (*big.Int, error) {
  9877  	return _DepositManagerI.Contract.AccStaked(&_DepositManagerI.CallOpts, rootchain, account)
  9878  }
  9879  
  9880  // AccStakedAccount is a free data retrieval call binding the contract method 0x0055f5c1.
  9881  //
  9882  // Solidity: function accStakedAccount(address account) constant returns(uint256 wtonAmount)
  9883  func (_DepositManagerI *DepositManagerICaller) AccStakedAccount(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  9884  	var (
  9885  		ret0 = new(*big.Int)
  9886  	)
  9887  	out := ret0
  9888  	err := _DepositManagerI.contract.Call(opts, out, "accStakedAccount", account)
  9889  	return *ret0, err
  9890  }
  9891  
  9892  // AccStakedAccount is a free data retrieval call binding the contract method 0x0055f5c1.
  9893  //
  9894  // Solidity: function accStakedAccount(address account) constant returns(uint256 wtonAmount)
  9895  func (_DepositManagerI *DepositManagerISession) AccStakedAccount(account common.Address) (*big.Int, error) {
  9896  	return _DepositManagerI.Contract.AccStakedAccount(&_DepositManagerI.CallOpts, account)
  9897  }
  9898  
  9899  // AccStakedAccount is a free data retrieval call binding the contract method 0x0055f5c1.
  9900  //
  9901  // Solidity: function accStakedAccount(address account) constant returns(uint256 wtonAmount)
  9902  func (_DepositManagerI *DepositManagerICallerSession) AccStakedAccount(account common.Address) (*big.Int, error) {
  9903  	return _DepositManagerI.Contract.AccStakedAccount(&_DepositManagerI.CallOpts, account)
  9904  }
  9905  
  9906  // AccStakedRootChain is a free data retrieval call binding the contract method 0xe8035ec9.
  9907  //
  9908  // Solidity: function accStakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
  9909  func (_DepositManagerI *DepositManagerICaller) AccStakedRootChain(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
  9910  	var (
  9911  		ret0 = new(*big.Int)
  9912  	)
  9913  	out := ret0
  9914  	err := _DepositManagerI.contract.Call(opts, out, "accStakedRootChain", rootchain)
  9915  	return *ret0, err
  9916  }
  9917  
  9918  // AccStakedRootChain is a free data retrieval call binding the contract method 0xe8035ec9.
  9919  //
  9920  // Solidity: function accStakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
  9921  func (_DepositManagerI *DepositManagerISession) AccStakedRootChain(rootchain common.Address) (*big.Int, error) {
  9922  	return _DepositManagerI.Contract.AccStakedRootChain(&_DepositManagerI.CallOpts, rootchain)
  9923  }
  9924  
  9925  // AccStakedRootChain is a free data retrieval call binding the contract method 0xe8035ec9.
  9926  //
  9927  // Solidity: function accStakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
  9928  func (_DepositManagerI *DepositManagerICallerSession) AccStakedRootChain(rootchain common.Address) (*big.Int, error) {
  9929  	return _DepositManagerI.Contract.AccStakedRootChain(&_DepositManagerI.CallOpts, rootchain)
  9930  }
  9931  
  9932  // AccUnstaked is a free data retrieval call binding the contract method 0x9d91b87b.
  9933  //
  9934  // Solidity: function accUnstaked(address rootchain, address account) constant returns(uint256 wtonAmount)
  9935  func (_DepositManagerI *DepositManagerICaller) AccUnstaked(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
  9936  	var (
  9937  		ret0 = new(*big.Int)
  9938  	)
  9939  	out := ret0
  9940  	err := _DepositManagerI.contract.Call(opts, out, "accUnstaked", rootchain, account)
  9941  	return *ret0, err
  9942  }
  9943  
  9944  // AccUnstaked is a free data retrieval call binding the contract method 0x9d91b87b.
  9945  //
  9946  // Solidity: function accUnstaked(address rootchain, address account) constant returns(uint256 wtonAmount)
  9947  func (_DepositManagerI *DepositManagerISession) AccUnstaked(rootchain common.Address, account common.Address) (*big.Int, error) {
  9948  	return _DepositManagerI.Contract.AccUnstaked(&_DepositManagerI.CallOpts, rootchain, account)
  9949  }
  9950  
  9951  // AccUnstaked is a free data retrieval call binding the contract method 0x9d91b87b.
  9952  //
  9953  // Solidity: function accUnstaked(address rootchain, address account) constant returns(uint256 wtonAmount)
  9954  func (_DepositManagerI *DepositManagerICallerSession) AccUnstaked(rootchain common.Address, account common.Address) (*big.Int, error) {
  9955  	return _DepositManagerI.Contract.AccUnstaked(&_DepositManagerI.CallOpts, rootchain, account)
  9956  }
  9957  
  9958  // AccUnstakedAccount is a free data retrieval call binding the contract method 0xa3543989.
  9959  //
  9960  // Solidity: function accUnstakedAccount(address account) constant returns(uint256 wtonAmount)
  9961  func (_DepositManagerI *DepositManagerICaller) AccUnstakedAccount(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  9962  	var (
  9963  		ret0 = new(*big.Int)
  9964  	)
  9965  	out := ret0
  9966  	err := _DepositManagerI.contract.Call(opts, out, "accUnstakedAccount", account)
  9967  	return *ret0, err
  9968  }
  9969  
  9970  // AccUnstakedAccount is a free data retrieval call binding the contract method 0xa3543989.
  9971  //
  9972  // Solidity: function accUnstakedAccount(address account) constant returns(uint256 wtonAmount)
  9973  func (_DepositManagerI *DepositManagerISession) AccUnstakedAccount(account common.Address) (*big.Int, error) {
  9974  	return _DepositManagerI.Contract.AccUnstakedAccount(&_DepositManagerI.CallOpts, account)
  9975  }
  9976  
  9977  // AccUnstakedAccount is a free data retrieval call binding the contract method 0xa3543989.
  9978  //
  9979  // Solidity: function accUnstakedAccount(address account) constant returns(uint256 wtonAmount)
  9980  func (_DepositManagerI *DepositManagerICallerSession) AccUnstakedAccount(account common.Address) (*big.Int, error) {
  9981  	return _DepositManagerI.Contract.AccUnstakedAccount(&_DepositManagerI.CallOpts, account)
  9982  }
  9983  
  9984  // AccUnstakedRootChain is a free data retrieval call binding the contract method 0x03dc6510.
  9985  //
  9986  // Solidity: function accUnstakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
  9987  func (_DepositManagerI *DepositManagerICaller) AccUnstakedRootChain(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
  9988  	var (
  9989  		ret0 = new(*big.Int)
  9990  	)
  9991  	out := ret0
  9992  	err := _DepositManagerI.contract.Call(opts, out, "accUnstakedRootChain", rootchain)
  9993  	return *ret0, err
  9994  }
  9995  
  9996  // AccUnstakedRootChain is a free data retrieval call binding the contract method 0x03dc6510.
  9997  //
  9998  // Solidity: function accUnstakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
  9999  func (_DepositManagerI *DepositManagerISession) AccUnstakedRootChain(rootchain common.Address) (*big.Int, error) {
 10000  	return _DepositManagerI.Contract.AccUnstakedRootChain(&_DepositManagerI.CallOpts, rootchain)
 10001  }
 10002  
 10003  // AccUnstakedRootChain is a free data retrieval call binding the contract method 0x03dc6510.
 10004  //
 10005  // Solidity: function accUnstakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
 10006  func (_DepositManagerI *DepositManagerICallerSession) AccUnstakedRootChain(rootchain common.Address) (*big.Int, error) {
 10007  	return _DepositManagerI.Contract.AccUnstakedRootChain(&_DepositManagerI.CallOpts, rootchain)
 10008  }
 10009  
 10010  // NumPendingRequests is a free data retrieval call binding the contract method 0x5c0df46b.
 10011  //
 10012  // Solidity: function numPendingRequests(address rootchain, address account) constant returns(uint256)
 10013  func (_DepositManagerI *DepositManagerICaller) NumPendingRequests(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 10014  	var (
 10015  		ret0 = new(*big.Int)
 10016  	)
 10017  	out := ret0
 10018  	err := _DepositManagerI.contract.Call(opts, out, "numPendingRequests", rootchain, account)
 10019  	return *ret0, err
 10020  }
 10021  
 10022  // NumPendingRequests is a free data retrieval call binding the contract method 0x5c0df46b.
 10023  //
 10024  // Solidity: function numPendingRequests(address rootchain, address account) constant returns(uint256)
 10025  func (_DepositManagerI *DepositManagerISession) NumPendingRequests(rootchain common.Address, account common.Address) (*big.Int, error) {
 10026  	return _DepositManagerI.Contract.NumPendingRequests(&_DepositManagerI.CallOpts, rootchain, account)
 10027  }
 10028  
 10029  // NumPendingRequests is a free data retrieval call binding the contract method 0x5c0df46b.
 10030  //
 10031  // Solidity: function numPendingRequests(address rootchain, address account) constant returns(uint256)
 10032  func (_DepositManagerI *DepositManagerICallerSession) NumPendingRequests(rootchain common.Address, account common.Address) (*big.Int, error) {
 10033  	return _DepositManagerI.Contract.NumPendingRequests(&_DepositManagerI.CallOpts, rootchain, account)
 10034  }
 10035  
 10036  // NumRequests is a free data retrieval call binding the contract method 0xf762eb57.
 10037  //
 10038  // Solidity: function numRequests(address rootchain, address account) constant returns(uint256)
 10039  func (_DepositManagerI *DepositManagerICaller) NumRequests(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 10040  	var (
 10041  		ret0 = new(*big.Int)
 10042  	)
 10043  	out := ret0
 10044  	err := _DepositManagerI.contract.Call(opts, out, "numRequests", rootchain, account)
 10045  	return *ret0, err
 10046  }
 10047  
 10048  // NumRequests is a free data retrieval call binding the contract method 0xf762eb57.
 10049  //
 10050  // Solidity: function numRequests(address rootchain, address account) constant returns(uint256)
 10051  func (_DepositManagerI *DepositManagerISession) NumRequests(rootchain common.Address, account common.Address) (*big.Int, error) {
 10052  	return _DepositManagerI.Contract.NumRequests(&_DepositManagerI.CallOpts, rootchain, account)
 10053  }
 10054  
 10055  // NumRequests is a free data retrieval call binding the contract method 0xf762eb57.
 10056  //
 10057  // Solidity: function numRequests(address rootchain, address account) constant returns(uint256)
 10058  func (_DepositManagerI *DepositManagerICallerSession) NumRequests(rootchain common.Address, account common.Address) (*big.Int, error) {
 10059  	return _DepositManagerI.Contract.NumRequests(&_DepositManagerI.CallOpts, rootchain, account)
 10060  }
 10061  
 10062  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10063  //
 10064  // Solidity: function owner() constant returns(address)
 10065  func (_DepositManagerI *DepositManagerICaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 10066  	var (
 10067  		ret0 = new(common.Address)
 10068  	)
 10069  	out := ret0
 10070  	err := _DepositManagerI.contract.Call(opts, out, "owner")
 10071  	return *ret0, err
 10072  }
 10073  
 10074  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10075  //
 10076  // Solidity: function owner() constant returns(address)
 10077  func (_DepositManagerI *DepositManagerISession) Owner() (common.Address, error) {
 10078  	return _DepositManagerI.Contract.Owner(&_DepositManagerI.CallOpts)
 10079  }
 10080  
 10081  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10082  //
 10083  // Solidity: function owner() constant returns(address)
 10084  func (_DepositManagerI *DepositManagerICallerSession) Owner() (common.Address, error) {
 10085  	return _DepositManagerI.Contract.Owner(&_DepositManagerI.CallOpts)
 10086  }
 10087  
 10088  // PendingUnstaked is a free data retrieval call binding the contract method 0x2638fdf5.
 10089  //
 10090  // Solidity: function pendingUnstaked(address rootchain, address account) constant returns(uint256 wtonAmount)
 10091  func (_DepositManagerI *DepositManagerICaller) PendingUnstaked(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 10092  	var (
 10093  		ret0 = new(*big.Int)
 10094  	)
 10095  	out := ret0
 10096  	err := _DepositManagerI.contract.Call(opts, out, "pendingUnstaked", rootchain, account)
 10097  	return *ret0, err
 10098  }
 10099  
 10100  // PendingUnstaked is a free data retrieval call binding the contract method 0x2638fdf5.
 10101  //
 10102  // Solidity: function pendingUnstaked(address rootchain, address account) constant returns(uint256 wtonAmount)
 10103  func (_DepositManagerI *DepositManagerISession) PendingUnstaked(rootchain common.Address, account common.Address) (*big.Int, error) {
 10104  	return _DepositManagerI.Contract.PendingUnstaked(&_DepositManagerI.CallOpts, rootchain, account)
 10105  }
 10106  
 10107  // PendingUnstaked is a free data retrieval call binding the contract method 0x2638fdf5.
 10108  //
 10109  // Solidity: function pendingUnstaked(address rootchain, address account) constant returns(uint256 wtonAmount)
 10110  func (_DepositManagerI *DepositManagerICallerSession) PendingUnstaked(rootchain common.Address, account common.Address) (*big.Int, error) {
 10111  	return _DepositManagerI.Contract.PendingUnstaked(&_DepositManagerI.CallOpts, rootchain, account)
 10112  }
 10113  
 10114  // PendingUnstakedAccount is a free data retrieval call binding the contract method 0xa0b2a913.
 10115  //
 10116  // Solidity: function pendingUnstakedAccount(address account) constant returns(uint256 wtonAmount)
 10117  func (_DepositManagerI *DepositManagerICaller) PendingUnstakedAccount(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 10118  	var (
 10119  		ret0 = new(*big.Int)
 10120  	)
 10121  	out := ret0
 10122  	err := _DepositManagerI.contract.Call(opts, out, "pendingUnstakedAccount", account)
 10123  	return *ret0, err
 10124  }
 10125  
 10126  // PendingUnstakedAccount is a free data retrieval call binding the contract method 0xa0b2a913.
 10127  //
 10128  // Solidity: function pendingUnstakedAccount(address account) constant returns(uint256 wtonAmount)
 10129  func (_DepositManagerI *DepositManagerISession) PendingUnstakedAccount(account common.Address) (*big.Int, error) {
 10130  	return _DepositManagerI.Contract.PendingUnstakedAccount(&_DepositManagerI.CallOpts, account)
 10131  }
 10132  
 10133  // PendingUnstakedAccount is a free data retrieval call binding the contract method 0xa0b2a913.
 10134  //
 10135  // Solidity: function pendingUnstakedAccount(address account) constant returns(uint256 wtonAmount)
 10136  func (_DepositManagerI *DepositManagerICallerSession) PendingUnstakedAccount(account common.Address) (*big.Int, error) {
 10137  	return _DepositManagerI.Contract.PendingUnstakedAccount(&_DepositManagerI.CallOpts, account)
 10138  }
 10139  
 10140  // PendingUnstakedRootChain is a free data retrieval call binding the contract method 0xa8f3fb98.
 10141  //
 10142  // Solidity: function pendingUnstakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
 10143  func (_DepositManagerI *DepositManagerICaller) PendingUnstakedRootChain(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
 10144  	var (
 10145  		ret0 = new(*big.Int)
 10146  	)
 10147  	out := ret0
 10148  	err := _DepositManagerI.contract.Call(opts, out, "pendingUnstakedRootChain", rootchain)
 10149  	return *ret0, err
 10150  }
 10151  
 10152  // PendingUnstakedRootChain is a free data retrieval call binding the contract method 0xa8f3fb98.
 10153  //
 10154  // Solidity: function pendingUnstakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
 10155  func (_DepositManagerI *DepositManagerISession) PendingUnstakedRootChain(rootchain common.Address) (*big.Int, error) {
 10156  	return _DepositManagerI.Contract.PendingUnstakedRootChain(&_DepositManagerI.CallOpts, rootchain)
 10157  }
 10158  
 10159  // PendingUnstakedRootChain is a free data retrieval call binding the contract method 0xa8f3fb98.
 10160  //
 10161  // Solidity: function pendingUnstakedRootChain(address rootchain) constant returns(uint256 wtonAmount)
 10162  func (_DepositManagerI *DepositManagerICallerSession) PendingUnstakedRootChain(rootchain common.Address) (*big.Int, error) {
 10163  	return _DepositManagerI.Contract.PendingUnstakedRootChain(&_DepositManagerI.CallOpts, rootchain)
 10164  }
 10165  
 10166  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 10167  //
 10168  // Solidity: function registry() constant returns(address)
 10169  func (_DepositManagerI *DepositManagerICaller) Registry(opts *bind.CallOpts) (common.Address, error) {
 10170  	var (
 10171  		ret0 = new(common.Address)
 10172  	)
 10173  	out := ret0
 10174  	err := _DepositManagerI.contract.Call(opts, out, "registry")
 10175  	return *ret0, err
 10176  }
 10177  
 10178  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 10179  //
 10180  // Solidity: function registry() constant returns(address)
 10181  func (_DepositManagerI *DepositManagerISession) Registry() (common.Address, error) {
 10182  	return _DepositManagerI.Contract.Registry(&_DepositManagerI.CallOpts)
 10183  }
 10184  
 10185  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 10186  //
 10187  // Solidity: function registry() constant returns(address)
 10188  func (_DepositManagerI *DepositManagerICallerSession) Registry() (common.Address, error) {
 10189  	return _DepositManagerI.Contract.Registry(&_DepositManagerI.CallOpts)
 10190  }
 10191  
 10192  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 10193  //
 10194  // Solidity: function seigManager() constant returns(address)
 10195  func (_DepositManagerI *DepositManagerICaller) SeigManager(opts *bind.CallOpts) (common.Address, error) {
 10196  	var (
 10197  		ret0 = new(common.Address)
 10198  	)
 10199  	out := ret0
 10200  	err := _DepositManagerI.contract.Call(opts, out, "seigManager")
 10201  	return *ret0, err
 10202  }
 10203  
 10204  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 10205  //
 10206  // Solidity: function seigManager() constant returns(address)
 10207  func (_DepositManagerI *DepositManagerISession) SeigManager() (common.Address, error) {
 10208  	return _DepositManagerI.Contract.SeigManager(&_DepositManagerI.CallOpts)
 10209  }
 10210  
 10211  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 10212  //
 10213  // Solidity: function seigManager() constant returns(address)
 10214  func (_DepositManagerI *DepositManagerICallerSession) SeigManager() (common.Address, error) {
 10215  	return _DepositManagerI.Contract.SeigManager(&_DepositManagerI.CallOpts)
 10216  }
 10217  
 10218  // WithdrawalRequest is a free data retrieval call binding the contract method 0x8fbef2d0.
 10219  //
 10220  // Solidity: function withdrawalRequest(address rootchain, address account, uint256 index) constant returns(uint128 withdrawableBlockNumber, uint128 amount, bool processed)
 10221  func (_DepositManagerI *DepositManagerICaller) WithdrawalRequest(opts *bind.CallOpts, rootchain common.Address, account common.Address, index *big.Int) (struct {
 10222  	WithdrawableBlockNumber *big.Int
 10223  	Amount                  *big.Int
 10224  	Processed               bool
 10225  }, error) {
 10226  	ret := new(struct {
 10227  		WithdrawableBlockNumber *big.Int
 10228  		Amount                  *big.Int
 10229  		Processed               bool
 10230  	})
 10231  	out := ret
 10232  	err := _DepositManagerI.contract.Call(opts, out, "withdrawalRequest", rootchain, account, index)
 10233  	return *ret, err
 10234  }
 10235  
 10236  // WithdrawalRequest is a free data retrieval call binding the contract method 0x8fbef2d0.
 10237  //
 10238  // Solidity: function withdrawalRequest(address rootchain, address account, uint256 index) constant returns(uint128 withdrawableBlockNumber, uint128 amount, bool processed)
 10239  func (_DepositManagerI *DepositManagerISession) WithdrawalRequest(rootchain common.Address, account common.Address, index *big.Int) (struct {
 10240  	WithdrawableBlockNumber *big.Int
 10241  	Amount                  *big.Int
 10242  	Processed               bool
 10243  }, error) {
 10244  	return _DepositManagerI.Contract.WithdrawalRequest(&_DepositManagerI.CallOpts, rootchain, account, index)
 10245  }
 10246  
 10247  // WithdrawalRequest is a free data retrieval call binding the contract method 0x8fbef2d0.
 10248  //
 10249  // Solidity: function withdrawalRequest(address rootchain, address account, uint256 index) constant returns(uint128 withdrawableBlockNumber, uint128 amount, bool processed)
 10250  func (_DepositManagerI *DepositManagerICallerSession) WithdrawalRequest(rootchain common.Address, account common.Address, index *big.Int) (struct {
 10251  	WithdrawableBlockNumber *big.Int
 10252  	Amount                  *big.Int
 10253  	Processed               bool
 10254  }, error) {
 10255  	return _DepositManagerI.Contract.WithdrawalRequest(&_DepositManagerI.CallOpts, rootchain, account, index)
 10256  }
 10257  
 10258  // WithdrawalRequestIndex is a free data retrieval call binding the contract method 0xc647f26e.
 10259  //
 10260  // Solidity: function withdrawalRequestIndex(address rootchain, address account) constant returns(uint256 index)
 10261  func (_DepositManagerI *DepositManagerICaller) WithdrawalRequestIndex(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 10262  	var (
 10263  		ret0 = new(*big.Int)
 10264  	)
 10265  	out := ret0
 10266  	err := _DepositManagerI.contract.Call(opts, out, "withdrawalRequestIndex", rootchain, account)
 10267  	return *ret0, err
 10268  }
 10269  
 10270  // WithdrawalRequestIndex is a free data retrieval call binding the contract method 0xc647f26e.
 10271  //
 10272  // Solidity: function withdrawalRequestIndex(address rootchain, address account) constant returns(uint256 index)
 10273  func (_DepositManagerI *DepositManagerISession) WithdrawalRequestIndex(rootchain common.Address, account common.Address) (*big.Int, error) {
 10274  	return _DepositManagerI.Contract.WithdrawalRequestIndex(&_DepositManagerI.CallOpts, rootchain, account)
 10275  }
 10276  
 10277  // WithdrawalRequestIndex is a free data retrieval call binding the contract method 0xc647f26e.
 10278  //
 10279  // Solidity: function withdrawalRequestIndex(address rootchain, address account) constant returns(uint256 index)
 10280  func (_DepositManagerI *DepositManagerICallerSession) WithdrawalRequestIndex(rootchain common.Address, account common.Address) (*big.Int, error) {
 10281  	return _DepositManagerI.Contract.WithdrawalRequestIndex(&_DepositManagerI.CallOpts, rootchain, account)
 10282  }
 10283  
 10284  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 10285  //
 10286  // Solidity: function wton() constant returns(address)
 10287  func (_DepositManagerI *DepositManagerICaller) Wton(opts *bind.CallOpts) (common.Address, error) {
 10288  	var (
 10289  		ret0 = new(common.Address)
 10290  	)
 10291  	out := ret0
 10292  	err := _DepositManagerI.contract.Call(opts, out, "wton")
 10293  	return *ret0, err
 10294  }
 10295  
 10296  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 10297  //
 10298  // Solidity: function wton() constant returns(address)
 10299  func (_DepositManagerI *DepositManagerISession) Wton() (common.Address, error) {
 10300  	return _DepositManagerI.Contract.Wton(&_DepositManagerI.CallOpts)
 10301  }
 10302  
 10303  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 10304  //
 10305  // Solidity: function wton() constant returns(address)
 10306  func (_DepositManagerI *DepositManagerICallerSession) Wton() (common.Address, error) {
 10307  	return _DepositManagerI.Contract.Wton(&_DepositManagerI.CallOpts)
 10308  }
 10309  
 10310  // Deposit is a paid mutator transaction binding the contract method 0x47e7ef24.
 10311  //
 10312  // Solidity: function deposit(address rootchain, uint256 amount) returns(bool)
 10313  func (_DepositManagerI *DepositManagerITransactor) Deposit(opts *bind.TransactOpts, rootchain common.Address, amount *big.Int) (*types.Transaction, error) {
 10314  	return _DepositManagerI.contract.Transact(opts, "deposit", rootchain, amount)
 10315  }
 10316  
 10317  // Deposit is a paid mutator transaction binding the contract method 0x47e7ef24.
 10318  //
 10319  // Solidity: function deposit(address rootchain, uint256 amount) returns(bool)
 10320  func (_DepositManagerI *DepositManagerISession) Deposit(rootchain common.Address, amount *big.Int) (*types.Transaction, error) {
 10321  	return _DepositManagerI.Contract.Deposit(&_DepositManagerI.TransactOpts, rootchain, amount)
 10322  }
 10323  
 10324  // Deposit is a paid mutator transaction binding the contract method 0x47e7ef24.
 10325  //
 10326  // Solidity: function deposit(address rootchain, uint256 amount) returns(bool)
 10327  func (_DepositManagerI *DepositManagerITransactorSession) Deposit(rootchain common.Address, amount *big.Int) (*types.Transaction, error) {
 10328  	return _DepositManagerI.Contract.Deposit(&_DepositManagerI.TransactOpts, rootchain, amount)
 10329  }
 10330  
 10331  // ProcessRequest is a paid mutator transaction binding the contract method 0x5d6f7cca.
 10332  //
 10333  // Solidity: function processRequest(address rootchain) returns(bool)
 10334  func (_DepositManagerI *DepositManagerITransactor) ProcessRequest(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
 10335  	return _DepositManagerI.contract.Transact(opts, "processRequest", rootchain)
 10336  }
 10337  
 10338  // ProcessRequest is a paid mutator transaction binding the contract method 0x5d6f7cca.
 10339  //
 10340  // Solidity: function processRequest(address rootchain) returns(bool)
 10341  func (_DepositManagerI *DepositManagerISession) ProcessRequest(rootchain common.Address) (*types.Transaction, error) {
 10342  	return _DepositManagerI.Contract.ProcessRequest(&_DepositManagerI.TransactOpts, rootchain)
 10343  }
 10344  
 10345  // ProcessRequest is a paid mutator transaction binding the contract method 0x5d6f7cca.
 10346  //
 10347  // Solidity: function processRequest(address rootchain) returns(bool)
 10348  func (_DepositManagerI *DepositManagerITransactorSession) ProcessRequest(rootchain common.Address) (*types.Transaction, error) {
 10349  	return _DepositManagerI.Contract.ProcessRequest(&_DepositManagerI.TransactOpts, rootchain)
 10350  }
 10351  
 10352  // ProcessRequests is a paid mutator transaction binding the contract method 0x06260ceb.
 10353  //
 10354  // Solidity: function processRequests(address rootchain, uint256 n) returns(bool)
 10355  func (_DepositManagerI *DepositManagerITransactor) ProcessRequests(opts *bind.TransactOpts, rootchain common.Address, n *big.Int) (*types.Transaction, error) {
 10356  	return _DepositManagerI.contract.Transact(opts, "processRequests", rootchain, n)
 10357  }
 10358  
 10359  // ProcessRequests is a paid mutator transaction binding the contract method 0x06260ceb.
 10360  //
 10361  // Solidity: function processRequests(address rootchain, uint256 n) returns(bool)
 10362  func (_DepositManagerI *DepositManagerISession) ProcessRequests(rootchain common.Address, n *big.Int) (*types.Transaction, error) {
 10363  	return _DepositManagerI.Contract.ProcessRequests(&_DepositManagerI.TransactOpts, rootchain, n)
 10364  }
 10365  
 10366  // ProcessRequests is a paid mutator transaction binding the contract method 0x06260ceb.
 10367  //
 10368  // Solidity: function processRequests(address rootchain, uint256 n) returns(bool)
 10369  func (_DepositManagerI *DepositManagerITransactorSession) ProcessRequests(rootchain common.Address, n *big.Int) (*types.Transaction, error) {
 10370  	return _DepositManagerI.Contract.ProcessRequests(&_DepositManagerI.TransactOpts, rootchain, n)
 10371  }
 10372  
 10373  // RequestWithdrawal is a paid mutator transaction binding the contract method 0xda95ebf7.
 10374  //
 10375  // Solidity: function requestWithdrawal(address rootchain, uint256 amount) returns(bool)
 10376  func (_DepositManagerI *DepositManagerITransactor) RequestWithdrawal(opts *bind.TransactOpts, rootchain common.Address, amount *big.Int) (*types.Transaction, error) {
 10377  	return _DepositManagerI.contract.Transact(opts, "requestWithdrawal", rootchain, amount)
 10378  }
 10379  
 10380  // RequestWithdrawal is a paid mutator transaction binding the contract method 0xda95ebf7.
 10381  //
 10382  // Solidity: function requestWithdrawal(address rootchain, uint256 amount) returns(bool)
 10383  func (_DepositManagerI *DepositManagerISession) RequestWithdrawal(rootchain common.Address, amount *big.Int) (*types.Transaction, error) {
 10384  	return _DepositManagerI.Contract.RequestWithdrawal(&_DepositManagerI.TransactOpts, rootchain, amount)
 10385  }
 10386  
 10387  // RequestWithdrawal is a paid mutator transaction binding the contract method 0xda95ebf7.
 10388  //
 10389  // Solidity: function requestWithdrawal(address rootchain, uint256 amount) returns(bool)
 10390  func (_DepositManagerI *DepositManagerITransactorSession) RequestWithdrawal(rootchain common.Address, amount *big.Int) (*types.Transaction, error) {
 10391  	return _DepositManagerI.Contract.RequestWithdrawal(&_DepositManagerI.TransactOpts, rootchain, amount)
 10392  }
 10393  
 10394  // RequestWithdrawalAll is a paid mutator transaction binding the contract method 0x6b2160b7.
 10395  //
 10396  // Solidity: function requestWithdrawalAll(address rootchain) returns(bool)
 10397  func (_DepositManagerI *DepositManagerITransactor) RequestWithdrawalAll(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
 10398  	return _DepositManagerI.contract.Transact(opts, "requestWithdrawalAll", rootchain)
 10399  }
 10400  
 10401  // RequestWithdrawalAll is a paid mutator transaction binding the contract method 0x6b2160b7.
 10402  //
 10403  // Solidity: function requestWithdrawalAll(address rootchain) returns(bool)
 10404  func (_DepositManagerI *DepositManagerISession) RequestWithdrawalAll(rootchain common.Address) (*types.Transaction, error) {
 10405  	return _DepositManagerI.Contract.RequestWithdrawalAll(&_DepositManagerI.TransactOpts, rootchain)
 10406  }
 10407  
 10408  // RequestWithdrawalAll is a paid mutator transaction binding the contract method 0x6b2160b7.
 10409  //
 10410  // Solidity: function requestWithdrawalAll(address rootchain) returns(bool)
 10411  func (_DepositManagerI *DepositManagerITransactorSession) RequestWithdrawalAll(rootchain common.Address) (*types.Transaction, error) {
 10412  	return _DepositManagerI.Contract.RequestWithdrawalAll(&_DepositManagerI.TransactOpts, rootchain)
 10413  }
 10414  
 10415  // SetSeigManager is a paid mutator transaction binding the contract method 0x7657f20a.
 10416  //
 10417  // Solidity: function setSeigManager(address seigManager) returns()
 10418  func (_DepositManagerI *DepositManagerITransactor) SetSeigManager(opts *bind.TransactOpts, seigManager common.Address) (*types.Transaction, error) {
 10419  	return _DepositManagerI.contract.Transact(opts, "setSeigManager", seigManager)
 10420  }
 10421  
 10422  // SetSeigManager is a paid mutator transaction binding the contract method 0x7657f20a.
 10423  //
 10424  // Solidity: function setSeigManager(address seigManager) returns()
 10425  func (_DepositManagerI *DepositManagerISession) SetSeigManager(seigManager common.Address) (*types.Transaction, error) {
 10426  	return _DepositManagerI.Contract.SetSeigManager(&_DepositManagerI.TransactOpts, seigManager)
 10427  }
 10428  
 10429  // SetSeigManager is a paid mutator transaction binding the contract method 0x7657f20a.
 10430  //
 10431  // Solidity: function setSeigManager(address seigManager) returns()
 10432  func (_DepositManagerI *DepositManagerITransactorSession) SetSeigManager(seigManager common.Address) (*types.Transaction, error) {
 10433  	return _DepositManagerI.Contract.SetSeigManager(&_DepositManagerI.TransactOpts, seigManager)
 10434  }
 10435  
 10436  // ERC20ABI is the input ABI used to generate the binding from.
 10437  const ERC20ABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 10438  
 10439  // ERC20FuncSigs maps the 4-byte function signature to its string representation.
 10440  var ERC20FuncSigs = map[string]string{
 10441  	"dd62ed3e": "allowance(address,address)",
 10442  	"095ea7b3": "approve(address,uint256)",
 10443  	"70a08231": "balanceOf(address)",
 10444  	"a457c2d7": "decreaseAllowance(address,uint256)",
 10445  	"39509351": "increaseAllowance(address,uint256)",
 10446  	"18160ddd": "totalSupply()",
 10447  	"a9059cbb": "transfer(address,uint256)",
 10448  	"23b872dd": "transferFrom(address,address,uint256)",
 10449  }
 10450  
 10451  // ERC20Bin is the compiled bytecode used for deploying new contracts.
 10452  var ERC20Bin = "0x608060405261083b806100136000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d5610212565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610218565b6100b96004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102a5565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102f9565b6100b96004803603604081101561018557600080fd5b506001600160a01b038135169060200135610314565b6100b9600480360360408110156101b157600080fd5b506001600160a01b038135169060200135610382565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610396565b60006102096102026103c1565b84846103c5565b50600192915050565b60025490565b60006102258484846104b1565b61029b846102316103c1565b61029685604051806060016040528060288152602001610771602891396001600160a01b038a1660009081526001602052604081209061026f6103c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61060d16565b6103c5565b5060019392505050565b60006102096102b26103c1565b8461029685600160006102c36103c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6106a416565b6001600160a01b031660009081526020819052604090205490565b60006102096103216103c1565b84610296856040518060600160405280602581526020016107e2602591396001600061034b6103c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61060d16565b600061020961038f6103c1565b84846104b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661040a5760405162461bcd60e51b81526004018080602001828103825260248152602001806107be6024913960400191505060405180910390fd5b6001600160a01b03821661044f5760405162461bcd60e51b81526004018080602001828103825260228152602001806107296022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104f65760405162461bcd60e51b81526004018080602001828103825260258152602001806107996025913960400191505060405180910390fd5b6001600160a01b03821661053b5760405162461bcd60e51b81526004018080602001828103825260238152602001806107066023913960400191505060405180910390fd5b61057e8160405180606001604052806026815260200161074b602691396001600160a01b038616600090815260208190526040902054919063ffffffff61060d16565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546105b3908263ffffffff6106a416565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561069c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610661578181015183820152602001610649565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156106fe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582008ca9864b08faad547b35ef43549788be26de128b59e0167fefa4ac97cd6733964736f6c634300050c0032"
 10453  
 10454  // DeployERC20 deploys a new Ethereum contract, binding an instance of ERC20 to it.
 10455  func DeployERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20, error) {
 10456  	parsed, err := abi.JSON(strings.NewReader(ERC20ABI))
 10457  	if err != nil {
 10458  		return common.Address{}, nil, nil, err
 10459  	}
 10460  
 10461  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC20Bin), backend)
 10462  	if err != nil {
 10463  		return common.Address{}, nil, nil, err
 10464  	}
 10465  	return address, tx, &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil
 10466  }
 10467  
 10468  // ERC20 is an auto generated Go binding around an Ethereum contract.
 10469  type ERC20 struct {
 10470  	ERC20Caller     // Read-only binding to the contract
 10471  	ERC20Transactor // Write-only binding to the contract
 10472  	ERC20Filterer   // Log filterer for contract events
 10473  }
 10474  
 10475  // ERC20Caller is an auto generated read-only Go binding around an Ethereum contract.
 10476  type ERC20Caller struct {
 10477  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10478  }
 10479  
 10480  // ERC20Transactor is an auto generated write-only Go binding around an Ethereum contract.
 10481  type ERC20Transactor struct {
 10482  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10483  }
 10484  
 10485  // ERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
 10486  type ERC20Filterer struct {
 10487  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10488  }
 10489  
 10490  // ERC20Session is an auto generated Go binding around an Ethereum contract,
 10491  // with pre-set call and transact options.
 10492  type ERC20Session struct {
 10493  	Contract     *ERC20            // Generic contract binding to set the session for
 10494  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 10495  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 10496  }
 10497  
 10498  // ERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract,
 10499  // with pre-set call options.
 10500  type ERC20CallerSession struct {
 10501  	Contract *ERC20Caller  // Generic contract caller binding to set the session for
 10502  	CallOpts bind.CallOpts // Call options to use throughout this session
 10503  }
 10504  
 10505  // ERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 10506  // with pre-set transact options.
 10507  type ERC20TransactorSession struct {
 10508  	Contract     *ERC20Transactor  // Generic contract transactor binding to set the session for
 10509  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 10510  }
 10511  
 10512  // ERC20Raw is an auto generated low-level Go binding around an Ethereum contract.
 10513  type ERC20Raw struct {
 10514  	Contract *ERC20 // Generic contract binding to access the raw methods on
 10515  }
 10516  
 10517  // ERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 10518  type ERC20CallerRaw struct {
 10519  	Contract *ERC20Caller // Generic read-only contract binding to access the raw methods on
 10520  }
 10521  
 10522  // ERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 10523  type ERC20TransactorRaw struct {
 10524  	Contract *ERC20Transactor // Generic write-only contract binding to access the raw methods on
 10525  }
 10526  
 10527  // NewERC20 creates a new instance of ERC20, bound to a specific deployed contract.
 10528  func NewERC20(address common.Address, backend bind.ContractBackend) (*ERC20, error) {
 10529  	contract, err := bindERC20(address, backend, backend, backend)
 10530  	if err != nil {
 10531  		return nil, err
 10532  	}
 10533  	return &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil
 10534  }
 10535  
 10536  // NewERC20Caller creates a new read-only instance of ERC20, bound to a specific deployed contract.
 10537  func NewERC20Caller(address common.Address, caller bind.ContractCaller) (*ERC20Caller, error) {
 10538  	contract, err := bindERC20(address, caller, nil, nil)
 10539  	if err != nil {
 10540  		return nil, err
 10541  	}
 10542  	return &ERC20Caller{contract: contract}, nil
 10543  }
 10544  
 10545  // NewERC20Transactor creates a new write-only instance of ERC20, bound to a specific deployed contract.
 10546  func NewERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC20Transactor, error) {
 10547  	contract, err := bindERC20(address, nil, transactor, nil)
 10548  	if err != nil {
 10549  		return nil, err
 10550  	}
 10551  	return &ERC20Transactor{contract: contract}, nil
 10552  }
 10553  
 10554  // NewERC20Filterer creates a new log filterer instance of ERC20, bound to a specific deployed contract.
 10555  func NewERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC20Filterer, error) {
 10556  	contract, err := bindERC20(address, nil, nil, filterer)
 10557  	if err != nil {
 10558  		return nil, err
 10559  	}
 10560  	return &ERC20Filterer{contract: contract}, nil
 10561  }
 10562  
 10563  // bindERC20 binds a generic wrapper to an already deployed contract.
 10564  func bindERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 10565  	parsed, err := abi.JSON(strings.NewReader(ERC20ABI))
 10566  	if err != nil {
 10567  		return nil, err
 10568  	}
 10569  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 10570  }
 10571  
 10572  // Call invokes the (constant) contract method with params as input values and
 10573  // sets the output to result. The result type might be a single field for simple
 10574  // returns, a slice of interfaces for anonymous returns and a struct for named
 10575  // returns.
 10576  func (_ERC20 *ERC20Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 10577  	return _ERC20.Contract.ERC20Caller.contract.Call(opts, result, method, params...)
 10578  }
 10579  
 10580  // Transfer initiates a plain transaction to move funds to the contract, calling
 10581  // its default method if one is available.
 10582  func (_ERC20 *ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 10583  	return _ERC20.Contract.ERC20Transactor.contract.Transfer(opts)
 10584  }
 10585  
 10586  // Transact invokes the (paid) contract method with params as input values.
 10587  func (_ERC20 *ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 10588  	return _ERC20.Contract.ERC20Transactor.contract.Transact(opts, method, params...)
 10589  }
 10590  
 10591  // Call invokes the (constant) contract method with params as input values and
 10592  // sets the output to result. The result type might be a single field for simple
 10593  // returns, a slice of interfaces for anonymous returns and a struct for named
 10594  // returns.
 10595  func (_ERC20 *ERC20CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 10596  	return _ERC20.Contract.contract.Call(opts, result, method, params...)
 10597  }
 10598  
 10599  // Transfer initiates a plain transaction to move funds to the contract, calling
 10600  // its default method if one is available.
 10601  func (_ERC20 *ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 10602  	return _ERC20.Contract.contract.Transfer(opts)
 10603  }
 10604  
 10605  // Transact invokes the (paid) contract method with params as input values.
 10606  func (_ERC20 *ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 10607  	return _ERC20.Contract.contract.Transact(opts, method, params...)
 10608  }
 10609  
 10610  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 10611  //
 10612  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 10613  func (_ERC20 *ERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 10614  	var (
 10615  		ret0 = new(*big.Int)
 10616  	)
 10617  	out := ret0
 10618  	err := _ERC20.contract.Call(opts, out, "allowance", owner, spender)
 10619  	return *ret0, err
 10620  }
 10621  
 10622  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 10623  //
 10624  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 10625  func (_ERC20 *ERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 10626  	return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender)
 10627  }
 10628  
 10629  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 10630  //
 10631  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 10632  func (_ERC20 *ERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 10633  	return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender)
 10634  }
 10635  
 10636  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 10637  //
 10638  // Solidity: function balanceOf(address account) constant returns(uint256)
 10639  func (_ERC20 *ERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 10640  	var (
 10641  		ret0 = new(*big.Int)
 10642  	)
 10643  	out := ret0
 10644  	err := _ERC20.contract.Call(opts, out, "balanceOf", account)
 10645  	return *ret0, err
 10646  }
 10647  
 10648  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 10649  //
 10650  // Solidity: function balanceOf(address account) constant returns(uint256)
 10651  func (_ERC20 *ERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
 10652  	return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account)
 10653  }
 10654  
 10655  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 10656  //
 10657  // Solidity: function balanceOf(address account) constant returns(uint256)
 10658  func (_ERC20 *ERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 10659  	return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account)
 10660  }
 10661  
 10662  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 10663  //
 10664  // Solidity: function totalSupply() constant returns(uint256)
 10665  func (_ERC20 *ERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 10666  	var (
 10667  		ret0 = new(*big.Int)
 10668  	)
 10669  	out := ret0
 10670  	err := _ERC20.contract.Call(opts, out, "totalSupply")
 10671  	return *ret0, err
 10672  }
 10673  
 10674  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 10675  //
 10676  // Solidity: function totalSupply() constant returns(uint256)
 10677  func (_ERC20 *ERC20Session) TotalSupply() (*big.Int, error) {
 10678  	return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts)
 10679  }
 10680  
 10681  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 10682  //
 10683  // Solidity: function totalSupply() constant returns(uint256)
 10684  func (_ERC20 *ERC20CallerSession) TotalSupply() (*big.Int, error) {
 10685  	return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts)
 10686  }
 10687  
 10688  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 10689  //
 10690  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 10691  func (_ERC20 *ERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 10692  	return _ERC20.contract.Transact(opts, "approve", spender, amount)
 10693  }
 10694  
 10695  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 10696  //
 10697  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 10698  func (_ERC20 *ERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 10699  	return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, amount)
 10700  }
 10701  
 10702  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 10703  //
 10704  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 10705  func (_ERC20 *ERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 10706  	return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, amount)
 10707  }
 10708  
 10709  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 10710  //
 10711  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 10712  func (_ERC20 *ERC20Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 10713  	return _ERC20.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 10714  }
 10715  
 10716  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 10717  //
 10718  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 10719  func (_ERC20 *ERC20Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 10720  	return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue)
 10721  }
 10722  
 10723  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 10724  //
 10725  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 10726  func (_ERC20 *ERC20TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 10727  	return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue)
 10728  }
 10729  
 10730  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 10731  //
 10732  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 10733  func (_ERC20 *ERC20Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 10734  	return _ERC20.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 10735  }
 10736  
 10737  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 10738  //
 10739  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 10740  func (_ERC20 *ERC20Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 10741  	return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue)
 10742  }
 10743  
 10744  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 10745  //
 10746  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 10747  func (_ERC20 *ERC20TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 10748  	return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue)
 10749  }
 10750  
 10751  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 10752  //
 10753  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 10754  func (_ERC20 *ERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 10755  	return _ERC20.contract.Transact(opts, "transfer", recipient, amount)
 10756  }
 10757  
 10758  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 10759  //
 10760  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 10761  func (_ERC20 *ERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 10762  	return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, recipient, amount)
 10763  }
 10764  
 10765  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 10766  //
 10767  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 10768  func (_ERC20 *ERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 10769  	return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, recipient, amount)
 10770  }
 10771  
 10772  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 10773  //
 10774  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 10775  func (_ERC20 *ERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 10776  	return _ERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 10777  }
 10778  
 10779  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 10780  //
 10781  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 10782  func (_ERC20 *ERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 10783  	return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, sender, recipient, amount)
 10784  }
 10785  
 10786  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 10787  //
 10788  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 10789  func (_ERC20 *ERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 10790  	return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, sender, recipient, amount)
 10791  }
 10792  
 10793  // ERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20 contract.
 10794  type ERC20ApprovalIterator struct {
 10795  	Event *ERC20Approval // Event containing the contract specifics and raw log
 10796  
 10797  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10798  	event    string              // Event name to use for unpacking event data
 10799  
 10800  	logs chan types.Log        // Log channel receiving the found contract events
 10801  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10802  	done bool                  // Whether the subscription completed delivering logs
 10803  	fail error                 // Occurred error to stop iteration
 10804  }
 10805  
 10806  // Next advances the iterator to the subsequent event, returning whether there
 10807  // are any more events found. In case of a retrieval or parsing error, false is
 10808  // returned and Error() can be queried for the exact failure.
 10809  func (it *ERC20ApprovalIterator) Next() bool {
 10810  	// If the iterator failed, stop iterating
 10811  	if it.fail != nil {
 10812  		return false
 10813  	}
 10814  	// If the iterator completed, deliver directly whatever's available
 10815  	if it.done {
 10816  		select {
 10817  		case log := <-it.logs:
 10818  			it.Event = new(ERC20Approval)
 10819  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10820  				it.fail = err
 10821  				return false
 10822  			}
 10823  			it.Event.Raw = log
 10824  			return true
 10825  
 10826  		default:
 10827  			return false
 10828  		}
 10829  	}
 10830  	// Iterator still in progress, wait for either a data or an error event
 10831  	select {
 10832  	case log := <-it.logs:
 10833  		it.Event = new(ERC20Approval)
 10834  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10835  			it.fail = err
 10836  			return false
 10837  		}
 10838  		it.Event.Raw = log
 10839  		return true
 10840  
 10841  	case err := <-it.sub.Err():
 10842  		it.done = true
 10843  		it.fail = err
 10844  		return it.Next()
 10845  	}
 10846  }
 10847  
 10848  // Error returns any retrieval or parsing error occurred during filtering.
 10849  func (it *ERC20ApprovalIterator) Error() error {
 10850  	return it.fail
 10851  }
 10852  
 10853  // Close terminates the iteration process, releasing any pending underlying
 10854  // resources.
 10855  func (it *ERC20ApprovalIterator) Close() error {
 10856  	it.sub.Unsubscribe()
 10857  	return nil
 10858  }
 10859  
 10860  // ERC20Approval represents a Approval event raised by the ERC20 contract.
 10861  type ERC20Approval struct {
 10862  	Owner   common.Address
 10863  	Spender common.Address
 10864  	Value   *big.Int
 10865  	Raw     types.Log // Blockchain specific contextual infos
 10866  }
 10867  
 10868  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 10869  //
 10870  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 10871  func (_ERC20 *ERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20ApprovalIterator, error) {
 10872  
 10873  	var ownerRule []interface{}
 10874  	for _, ownerItem := range owner {
 10875  		ownerRule = append(ownerRule, ownerItem)
 10876  	}
 10877  	var spenderRule []interface{}
 10878  	for _, spenderItem := range spender {
 10879  		spenderRule = append(spenderRule, spenderItem)
 10880  	}
 10881  
 10882  	logs, sub, err := _ERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 10883  	if err != nil {
 10884  		return nil, err
 10885  	}
 10886  	return &ERC20ApprovalIterator{contract: _ERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
 10887  }
 10888  
 10889  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 10890  //
 10891  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 10892  func (_ERC20 *ERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 10893  
 10894  	var ownerRule []interface{}
 10895  	for _, ownerItem := range owner {
 10896  		ownerRule = append(ownerRule, ownerItem)
 10897  	}
 10898  	var spenderRule []interface{}
 10899  	for _, spenderItem := range spender {
 10900  		spenderRule = append(spenderRule, spenderItem)
 10901  	}
 10902  
 10903  	logs, sub, err := _ERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 10904  	if err != nil {
 10905  		return nil, err
 10906  	}
 10907  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10908  		defer sub.Unsubscribe()
 10909  		for {
 10910  			select {
 10911  			case log := <-logs:
 10912  				// New log arrived, parse the event and forward to the user
 10913  				event := new(ERC20Approval)
 10914  				if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 10915  					return err
 10916  				}
 10917  				event.Raw = log
 10918  
 10919  				select {
 10920  				case sink <- event:
 10921  				case err := <-sub.Err():
 10922  					return err
 10923  				case <-quit:
 10924  					return nil
 10925  				}
 10926  			case err := <-sub.Err():
 10927  				return err
 10928  			case <-quit:
 10929  				return nil
 10930  			}
 10931  		}
 10932  	}), nil
 10933  }
 10934  
 10935  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 10936  //
 10937  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 10938  func (_ERC20 *ERC20Filterer) ParseApproval(log types.Log) (*ERC20Approval, error) {
 10939  	event := new(ERC20Approval)
 10940  	if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 10941  		return nil, err
 10942  	}
 10943  	return event, nil
 10944  }
 10945  
 10946  // ERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20 contract.
 10947  type ERC20TransferIterator struct {
 10948  	Event *ERC20Transfer // Event containing the contract specifics and raw log
 10949  
 10950  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10951  	event    string              // Event name to use for unpacking event data
 10952  
 10953  	logs chan types.Log        // Log channel receiving the found contract events
 10954  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10955  	done bool                  // Whether the subscription completed delivering logs
 10956  	fail error                 // Occurred error to stop iteration
 10957  }
 10958  
 10959  // Next advances the iterator to the subsequent event, returning whether there
 10960  // are any more events found. In case of a retrieval or parsing error, false is
 10961  // returned and Error() can be queried for the exact failure.
 10962  func (it *ERC20TransferIterator) Next() bool {
 10963  	// If the iterator failed, stop iterating
 10964  	if it.fail != nil {
 10965  		return false
 10966  	}
 10967  	// If the iterator completed, deliver directly whatever's available
 10968  	if it.done {
 10969  		select {
 10970  		case log := <-it.logs:
 10971  			it.Event = new(ERC20Transfer)
 10972  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10973  				it.fail = err
 10974  				return false
 10975  			}
 10976  			it.Event.Raw = log
 10977  			return true
 10978  
 10979  		default:
 10980  			return false
 10981  		}
 10982  	}
 10983  	// Iterator still in progress, wait for either a data or an error event
 10984  	select {
 10985  	case log := <-it.logs:
 10986  		it.Event = new(ERC20Transfer)
 10987  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10988  			it.fail = err
 10989  			return false
 10990  		}
 10991  		it.Event.Raw = log
 10992  		return true
 10993  
 10994  	case err := <-it.sub.Err():
 10995  		it.done = true
 10996  		it.fail = err
 10997  		return it.Next()
 10998  	}
 10999  }
 11000  
 11001  // Error returns any retrieval or parsing error occurred during filtering.
 11002  func (it *ERC20TransferIterator) Error() error {
 11003  	return it.fail
 11004  }
 11005  
 11006  // Close terminates the iteration process, releasing any pending underlying
 11007  // resources.
 11008  func (it *ERC20TransferIterator) Close() error {
 11009  	it.sub.Unsubscribe()
 11010  	return nil
 11011  }
 11012  
 11013  // ERC20Transfer represents a Transfer event raised by the ERC20 contract.
 11014  type ERC20Transfer struct {
 11015  	From  common.Address
 11016  	To    common.Address
 11017  	Value *big.Int
 11018  	Raw   types.Log // Blockchain specific contextual infos
 11019  }
 11020  
 11021  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11022  //
 11023  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 11024  func (_ERC20 *ERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20TransferIterator, error) {
 11025  
 11026  	var fromRule []interface{}
 11027  	for _, fromItem := range from {
 11028  		fromRule = append(fromRule, fromItem)
 11029  	}
 11030  	var toRule []interface{}
 11031  	for _, toItem := range to {
 11032  		toRule = append(toRule, toItem)
 11033  	}
 11034  
 11035  	logs, sub, err := _ERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 11036  	if err != nil {
 11037  		return nil, err
 11038  	}
 11039  	return &ERC20TransferIterator{contract: _ERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
 11040  }
 11041  
 11042  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11043  //
 11044  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 11045  func (_ERC20 *ERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 11046  
 11047  	var fromRule []interface{}
 11048  	for _, fromItem := range from {
 11049  		fromRule = append(fromRule, fromItem)
 11050  	}
 11051  	var toRule []interface{}
 11052  	for _, toItem := range to {
 11053  		toRule = append(toRule, toItem)
 11054  	}
 11055  
 11056  	logs, sub, err := _ERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 11057  	if err != nil {
 11058  		return nil, err
 11059  	}
 11060  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11061  		defer sub.Unsubscribe()
 11062  		for {
 11063  			select {
 11064  			case log := <-logs:
 11065  				// New log arrived, parse the event and forward to the user
 11066  				event := new(ERC20Transfer)
 11067  				if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 11068  					return err
 11069  				}
 11070  				event.Raw = log
 11071  
 11072  				select {
 11073  				case sink <- event:
 11074  				case err := <-sub.Err():
 11075  					return err
 11076  				case <-quit:
 11077  					return nil
 11078  				}
 11079  			case err := <-sub.Err():
 11080  				return err
 11081  			case <-quit:
 11082  				return nil
 11083  			}
 11084  		}
 11085  	}), nil
 11086  }
 11087  
 11088  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11089  //
 11090  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 11091  func (_ERC20 *ERC20Filterer) ParseTransfer(log types.Log) (*ERC20Transfer, error) {
 11092  	event := new(ERC20Transfer)
 11093  	if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 11094  		return nil, err
 11095  	}
 11096  	return event, nil
 11097  }
 11098  
 11099  // ERC20BurnableABI is the input ABI used to generate the binding from.
 11100  const ERC20BurnableABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 11101  
 11102  // ERC20BurnableFuncSigs maps the 4-byte function signature to its string representation.
 11103  var ERC20BurnableFuncSigs = map[string]string{
 11104  	"dd62ed3e": "allowance(address,address)",
 11105  	"095ea7b3": "approve(address,uint256)",
 11106  	"70a08231": "balanceOf(address)",
 11107  	"42966c68": "burn(uint256)",
 11108  	"79cc6790": "burnFrom(address,uint256)",
 11109  	"a457c2d7": "decreaseAllowance(address,uint256)",
 11110  	"39509351": "increaseAllowance(address,uint256)",
 11111  	"18160ddd": "totalSupply()",
 11112  	"a9059cbb": "transfer(address,uint256)",
 11113  	"23b872dd": "transferFrom(address,address,uint256)",
 11114  }
 11115  
 11116  // ERC20BurnableBin is the compiled bytecode used for deploying new contracts.
 11117  var ERC20BurnableBin = "0x6080604052610ab7806100136000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461017e57806379cc6790146101a4578063a457c2d7146101d0578063a9059cbb146101fc578063dd62ed3e146102285761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806342966c681461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610256565b604080519115158252519081900360200190f35b6100eb610273565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610279565b6100cf6004803603604081101561014957600080fd5b506001600160a01b038135169060200135610306565b61017c6004803603602081101561017557600080fd5b503561035a565b005b6100eb6004803603602081101561019457600080fd5b50356001600160a01b031661036e565b61017c600480360360408110156101ba57600080fd5b506001600160a01b038135169060200135610389565b6100cf600480360360408110156101e657600080fd5b506001600160a01b038135169060200135610397565b6100cf6004803603604081101561021257600080fd5b506001600160a01b038135169060200135610405565b6100eb6004803603604081101561023e57600080fd5b506001600160a01b0381358116916020013516610419565b600061026a610263610444565b8484610448565b50600192915050565b60025490565b6000610286848484610534565b6102fc84610292610444565b6102f7856040518060600160405280602881526020016109a8602891396001600160a01b038a166000908152600160205260408120906102d0610444565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61069016565b610448565b5060019392505050565b600061026a610313610444565b846102f78560016000610324610444565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61072716565b61036b610365610444565b82610788565b50565b6001600160a01b031660009081526020819052604090205490565b6103938282610884565b5050565b600061026a6103a4610444565b846102f785604051806060016040528060258152602001610a5e60259139600160006103ce610444565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61069016565b600061026a610412610444565b8484610534565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661048d5760405162461bcd60e51b8152600401808060200182810382526024815260200180610a3a6024913960400191505060405180910390fd5b6001600160a01b0382166104d25760405162461bcd60e51b81526004018080602001828103825260228152602001806109606022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166105795760405162461bcd60e51b8152600401808060200182810382526025815260200180610a156025913960400191505060405180910390fd5b6001600160a01b0382166105be5760405162461bcd60e51b815260040180806020018281038252602381526020018061091b6023913960400191505060405180910390fd5b61060181604051806060016040528060268152602001610982602691396001600160a01b038616600090815260208190526040902054919063ffffffff61069016565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610636908263ffffffff61072716565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561071f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106e45781810151838201526020016106cc565b50505050905090810190601f1680156107115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610781576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166107cd5760405162461bcd60e51b81526004018080602001828103825260218152602001806109f46021913960400191505060405180910390fd5b6108108160405180606001604052806022815260200161093e602291396001600160a01b038516600090815260208190526040902054919063ffffffff61069016565b6001600160a01b03831660009081526020819052604090205560025461083c908263ffffffff6108d816565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b61088e8282610788565b6103938261089a610444565b6102f7846040518060600160405280602481526020016109d0602491396001600160a01b0388166000908152600160205260408120906102d0610444565b600061078183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061069056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158205efdc9c8b644b0e746870616d6d4cd5506a4d1726d9f649c45de2f004e6525b064736f6c634300050c0032"
 11118  
 11119  // DeployERC20Burnable deploys a new Ethereum contract, binding an instance of ERC20Burnable to it.
 11120  func DeployERC20Burnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20Burnable, error) {
 11121  	parsed, err := abi.JSON(strings.NewReader(ERC20BurnableABI))
 11122  	if err != nil {
 11123  		return common.Address{}, nil, nil, err
 11124  	}
 11125  
 11126  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC20BurnableBin), backend)
 11127  	if err != nil {
 11128  		return common.Address{}, nil, nil, err
 11129  	}
 11130  	return address, tx, &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil
 11131  }
 11132  
 11133  // ERC20Burnable is an auto generated Go binding around an Ethereum contract.
 11134  type ERC20Burnable struct {
 11135  	ERC20BurnableCaller     // Read-only binding to the contract
 11136  	ERC20BurnableTransactor // Write-only binding to the contract
 11137  	ERC20BurnableFilterer   // Log filterer for contract events
 11138  }
 11139  
 11140  // ERC20BurnableCaller is an auto generated read-only Go binding around an Ethereum contract.
 11141  type ERC20BurnableCaller struct {
 11142  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11143  }
 11144  
 11145  // ERC20BurnableTransactor is an auto generated write-only Go binding around an Ethereum contract.
 11146  type ERC20BurnableTransactor struct {
 11147  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11148  }
 11149  
 11150  // ERC20BurnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 11151  type ERC20BurnableFilterer struct {
 11152  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11153  }
 11154  
 11155  // ERC20BurnableSession is an auto generated Go binding around an Ethereum contract,
 11156  // with pre-set call and transact options.
 11157  type ERC20BurnableSession struct {
 11158  	Contract     *ERC20Burnable    // Generic contract binding to set the session for
 11159  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11160  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11161  }
 11162  
 11163  // ERC20BurnableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 11164  // with pre-set call options.
 11165  type ERC20BurnableCallerSession struct {
 11166  	Contract *ERC20BurnableCaller // Generic contract caller binding to set the session for
 11167  	CallOpts bind.CallOpts        // Call options to use throughout this session
 11168  }
 11169  
 11170  // ERC20BurnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 11171  // with pre-set transact options.
 11172  type ERC20BurnableTransactorSession struct {
 11173  	Contract     *ERC20BurnableTransactor // Generic contract transactor binding to set the session for
 11174  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 11175  }
 11176  
 11177  // ERC20BurnableRaw is an auto generated low-level Go binding around an Ethereum contract.
 11178  type ERC20BurnableRaw struct {
 11179  	Contract *ERC20Burnable // Generic contract binding to access the raw methods on
 11180  }
 11181  
 11182  // ERC20BurnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 11183  type ERC20BurnableCallerRaw struct {
 11184  	Contract *ERC20BurnableCaller // Generic read-only contract binding to access the raw methods on
 11185  }
 11186  
 11187  // ERC20BurnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 11188  type ERC20BurnableTransactorRaw struct {
 11189  	Contract *ERC20BurnableTransactor // Generic write-only contract binding to access the raw methods on
 11190  }
 11191  
 11192  // NewERC20Burnable creates a new instance of ERC20Burnable, bound to a specific deployed contract.
 11193  func NewERC20Burnable(address common.Address, backend bind.ContractBackend) (*ERC20Burnable, error) {
 11194  	contract, err := bindERC20Burnable(address, backend, backend, backend)
 11195  	if err != nil {
 11196  		return nil, err
 11197  	}
 11198  	return &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil
 11199  }
 11200  
 11201  // NewERC20BurnableCaller creates a new read-only instance of ERC20Burnable, bound to a specific deployed contract.
 11202  func NewERC20BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC20BurnableCaller, error) {
 11203  	contract, err := bindERC20Burnable(address, caller, nil, nil)
 11204  	if err != nil {
 11205  		return nil, err
 11206  	}
 11207  	return &ERC20BurnableCaller{contract: contract}, nil
 11208  }
 11209  
 11210  // NewERC20BurnableTransactor creates a new write-only instance of ERC20Burnable, bound to a specific deployed contract.
 11211  func NewERC20BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20BurnableTransactor, error) {
 11212  	contract, err := bindERC20Burnable(address, nil, transactor, nil)
 11213  	if err != nil {
 11214  		return nil, err
 11215  	}
 11216  	return &ERC20BurnableTransactor{contract: contract}, nil
 11217  }
 11218  
 11219  // NewERC20BurnableFilterer creates a new log filterer instance of ERC20Burnable, bound to a specific deployed contract.
 11220  func NewERC20BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20BurnableFilterer, error) {
 11221  	contract, err := bindERC20Burnable(address, nil, nil, filterer)
 11222  	if err != nil {
 11223  		return nil, err
 11224  	}
 11225  	return &ERC20BurnableFilterer{contract: contract}, nil
 11226  }
 11227  
 11228  // bindERC20Burnable binds a generic wrapper to an already deployed contract.
 11229  func bindERC20Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11230  	parsed, err := abi.JSON(strings.NewReader(ERC20BurnableABI))
 11231  	if err != nil {
 11232  		return nil, err
 11233  	}
 11234  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 11235  }
 11236  
 11237  // Call invokes the (constant) contract method with params as input values and
 11238  // sets the output to result. The result type might be a single field for simple
 11239  // returns, a slice of interfaces for anonymous returns and a struct for named
 11240  // returns.
 11241  func (_ERC20Burnable *ERC20BurnableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 11242  	return _ERC20Burnable.Contract.ERC20BurnableCaller.contract.Call(opts, result, method, params...)
 11243  }
 11244  
 11245  // Transfer initiates a plain transaction to move funds to the contract, calling
 11246  // its default method if one is available.
 11247  func (_ERC20Burnable *ERC20BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11248  	return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transfer(opts)
 11249  }
 11250  
 11251  // Transact invokes the (paid) contract method with params as input values.
 11252  func (_ERC20Burnable *ERC20BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11253  	return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transact(opts, method, params...)
 11254  }
 11255  
 11256  // Call invokes the (constant) contract method with params as input values and
 11257  // sets the output to result. The result type might be a single field for simple
 11258  // returns, a slice of interfaces for anonymous returns and a struct for named
 11259  // returns.
 11260  func (_ERC20Burnable *ERC20BurnableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 11261  	return _ERC20Burnable.Contract.contract.Call(opts, result, method, params...)
 11262  }
 11263  
 11264  // Transfer initiates a plain transaction to move funds to the contract, calling
 11265  // its default method if one is available.
 11266  func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11267  	return _ERC20Burnable.Contract.contract.Transfer(opts)
 11268  }
 11269  
 11270  // Transact invokes the (paid) contract method with params as input values.
 11271  func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11272  	return _ERC20Burnable.Contract.contract.Transact(opts, method, params...)
 11273  }
 11274  
 11275  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11276  //
 11277  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 11278  func (_ERC20Burnable *ERC20BurnableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 11279  	var (
 11280  		ret0 = new(*big.Int)
 11281  	)
 11282  	out := ret0
 11283  	err := _ERC20Burnable.contract.Call(opts, out, "allowance", owner, spender)
 11284  	return *ret0, err
 11285  }
 11286  
 11287  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11288  //
 11289  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 11290  func (_ERC20Burnable *ERC20BurnableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 11291  	return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender)
 11292  }
 11293  
 11294  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11295  //
 11296  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 11297  func (_ERC20Burnable *ERC20BurnableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 11298  	return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender)
 11299  }
 11300  
 11301  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11302  //
 11303  // Solidity: function balanceOf(address account) constant returns(uint256)
 11304  func (_ERC20Burnable *ERC20BurnableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 11305  	var (
 11306  		ret0 = new(*big.Int)
 11307  	)
 11308  	out := ret0
 11309  	err := _ERC20Burnable.contract.Call(opts, out, "balanceOf", account)
 11310  	return *ret0, err
 11311  }
 11312  
 11313  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11314  //
 11315  // Solidity: function balanceOf(address account) constant returns(uint256)
 11316  func (_ERC20Burnable *ERC20BurnableSession) BalanceOf(account common.Address) (*big.Int, error) {
 11317  	return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account)
 11318  }
 11319  
 11320  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11321  //
 11322  // Solidity: function balanceOf(address account) constant returns(uint256)
 11323  func (_ERC20Burnable *ERC20BurnableCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 11324  	return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account)
 11325  }
 11326  
 11327  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 11328  //
 11329  // Solidity: function totalSupply() constant returns(uint256)
 11330  func (_ERC20Burnable *ERC20BurnableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 11331  	var (
 11332  		ret0 = new(*big.Int)
 11333  	)
 11334  	out := ret0
 11335  	err := _ERC20Burnable.contract.Call(opts, out, "totalSupply")
 11336  	return *ret0, err
 11337  }
 11338  
 11339  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 11340  //
 11341  // Solidity: function totalSupply() constant returns(uint256)
 11342  func (_ERC20Burnable *ERC20BurnableSession) TotalSupply() (*big.Int, error) {
 11343  	return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts)
 11344  }
 11345  
 11346  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 11347  //
 11348  // Solidity: function totalSupply() constant returns(uint256)
 11349  func (_ERC20Burnable *ERC20BurnableCallerSession) TotalSupply() (*big.Int, error) {
 11350  	return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts)
 11351  }
 11352  
 11353  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 11354  //
 11355  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 11356  func (_ERC20Burnable *ERC20BurnableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 11357  	return _ERC20Burnable.contract.Transact(opts, "approve", spender, amount)
 11358  }
 11359  
 11360  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 11361  //
 11362  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 11363  func (_ERC20Burnable *ERC20BurnableSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 11364  	return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, amount)
 11365  }
 11366  
 11367  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 11368  //
 11369  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 11370  func (_ERC20Burnable *ERC20BurnableTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 11371  	return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, amount)
 11372  }
 11373  
 11374  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 11375  //
 11376  // Solidity: function burn(uint256 amount) returns()
 11377  func (_ERC20Burnable *ERC20BurnableTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
 11378  	return _ERC20Burnable.contract.Transact(opts, "burn", amount)
 11379  }
 11380  
 11381  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 11382  //
 11383  // Solidity: function burn(uint256 amount) returns()
 11384  func (_ERC20Burnable *ERC20BurnableSession) Burn(amount *big.Int) (*types.Transaction, error) {
 11385  	return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, amount)
 11386  }
 11387  
 11388  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 11389  //
 11390  // Solidity: function burn(uint256 amount) returns()
 11391  func (_ERC20Burnable *ERC20BurnableTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) {
 11392  	return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, amount)
 11393  }
 11394  
 11395  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 11396  //
 11397  // Solidity: function burnFrom(address account, uint256 amount) returns()
 11398  func (_ERC20Burnable *ERC20BurnableTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 11399  	return _ERC20Burnable.contract.Transact(opts, "burnFrom", account, amount)
 11400  }
 11401  
 11402  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 11403  //
 11404  // Solidity: function burnFrom(address account, uint256 amount) returns()
 11405  func (_ERC20Burnable *ERC20BurnableSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 11406  	return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, amount)
 11407  }
 11408  
 11409  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 11410  //
 11411  // Solidity: function burnFrom(address account, uint256 amount) returns()
 11412  func (_ERC20Burnable *ERC20BurnableTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 11413  	return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, amount)
 11414  }
 11415  
 11416  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 11417  //
 11418  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 11419  func (_ERC20Burnable *ERC20BurnableTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 11420  	return _ERC20Burnable.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 11421  }
 11422  
 11423  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 11424  //
 11425  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 11426  func (_ERC20Burnable *ERC20BurnableSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 11427  	return _ERC20Burnable.Contract.DecreaseAllowance(&_ERC20Burnable.TransactOpts, spender, subtractedValue)
 11428  }
 11429  
 11430  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 11431  //
 11432  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 11433  func (_ERC20Burnable *ERC20BurnableTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 11434  	return _ERC20Burnable.Contract.DecreaseAllowance(&_ERC20Burnable.TransactOpts, spender, subtractedValue)
 11435  }
 11436  
 11437  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 11438  //
 11439  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 11440  func (_ERC20Burnable *ERC20BurnableTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 11441  	return _ERC20Burnable.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 11442  }
 11443  
 11444  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 11445  //
 11446  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 11447  func (_ERC20Burnable *ERC20BurnableSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 11448  	return _ERC20Burnable.Contract.IncreaseAllowance(&_ERC20Burnable.TransactOpts, spender, addedValue)
 11449  }
 11450  
 11451  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 11452  //
 11453  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 11454  func (_ERC20Burnable *ERC20BurnableTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 11455  	return _ERC20Burnable.Contract.IncreaseAllowance(&_ERC20Burnable.TransactOpts, spender, addedValue)
 11456  }
 11457  
 11458  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 11459  //
 11460  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 11461  func (_ERC20Burnable *ERC20BurnableTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 11462  	return _ERC20Burnable.contract.Transact(opts, "transfer", recipient, amount)
 11463  }
 11464  
 11465  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 11466  //
 11467  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 11468  func (_ERC20Burnable *ERC20BurnableSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 11469  	return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, recipient, amount)
 11470  }
 11471  
 11472  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 11473  //
 11474  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 11475  func (_ERC20Burnable *ERC20BurnableTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 11476  	return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, recipient, amount)
 11477  }
 11478  
 11479  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 11480  //
 11481  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 11482  func (_ERC20Burnable *ERC20BurnableTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 11483  	return _ERC20Burnable.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 11484  }
 11485  
 11486  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 11487  //
 11488  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 11489  func (_ERC20Burnable *ERC20BurnableSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 11490  	return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, sender, recipient, amount)
 11491  }
 11492  
 11493  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 11494  //
 11495  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 11496  func (_ERC20Burnable *ERC20BurnableTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 11497  	return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, sender, recipient, amount)
 11498  }
 11499  
 11500  // ERC20BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Burnable contract.
 11501  type ERC20BurnableApprovalIterator struct {
 11502  	Event *ERC20BurnableApproval // Event containing the contract specifics and raw log
 11503  
 11504  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11505  	event    string              // Event name to use for unpacking event data
 11506  
 11507  	logs chan types.Log        // Log channel receiving the found contract events
 11508  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11509  	done bool                  // Whether the subscription completed delivering logs
 11510  	fail error                 // Occurred error to stop iteration
 11511  }
 11512  
 11513  // Next advances the iterator to the subsequent event, returning whether there
 11514  // are any more events found. In case of a retrieval or parsing error, false is
 11515  // returned and Error() can be queried for the exact failure.
 11516  func (it *ERC20BurnableApprovalIterator) Next() bool {
 11517  	// If the iterator failed, stop iterating
 11518  	if it.fail != nil {
 11519  		return false
 11520  	}
 11521  	// If the iterator completed, deliver directly whatever's available
 11522  	if it.done {
 11523  		select {
 11524  		case log := <-it.logs:
 11525  			it.Event = new(ERC20BurnableApproval)
 11526  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11527  				it.fail = err
 11528  				return false
 11529  			}
 11530  			it.Event.Raw = log
 11531  			return true
 11532  
 11533  		default:
 11534  			return false
 11535  		}
 11536  	}
 11537  	// Iterator still in progress, wait for either a data or an error event
 11538  	select {
 11539  	case log := <-it.logs:
 11540  		it.Event = new(ERC20BurnableApproval)
 11541  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11542  			it.fail = err
 11543  			return false
 11544  		}
 11545  		it.Event.Raw = log
 11546  		return true
 11547  
 11548  	case err := <-it.sub.Err():
 11549  		it.done = true
 11550  		it.fail = err
 11551  		return it.Next()
 11552  	}
 11553  }
 11554  
 11555  // Error returns any retrieval or parsing error occurred during filtering.
 11556  func (it *ERC20BurnableApprovalIterator) Error() error {
 11557  	return it.fail
 11558  }
 11559  
 11560  // Close terminates the iteration process, releasing any pending underlying
 11561  // resources.
 11562  func (it *ERC20BurnableApprovalIterator) Close() error {
 11563  	it.sub.Unsubscribe()
 11564  	return nil
 11565  }
 11566  
 11567  // ERC20BurnableApproval represents a Approval event raised by the ERC20Burnable contract.
 11568  type ERC20BurnableApproval struct {
 11569  	Owner   common.Address
 11570  	Spender common.Address
 11571  	Value   *big.Int
 11572  	Raw     types.Log // Blockchain specific contextual infos
 11573  }
 11574  
 11575  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 11576  //
 11577  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 11578  func (_ERC20Burnable *ERC20BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20BurnableApprovalIterator, error) {
 11579  
 11580  	var ownerRule []interface{}
 11581  	for _, ownerItem := range owner {
 11582  		ownerRule = append(ownerRule, ownerItem)
 11583  	}
 11584  	var spenderRule []interface{}
 11585  	for _, spenderItem := range spender {
 11586  		spenderRule = append(spenderRule, spenderItem)
 11587  	}
 11588  
 11589  	logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 11590  	if err != nil {
 11591  		return nil, err
 11592  	}
 11593  	return &ERC20BurnableApprovalIterator{contract: _ERC20Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil
 11594  }
 11595  
 11596  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 11597  //
 11598  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 11599  func (_ERC20Burnable *ERC20BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20BurnableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 11600  
 11601  	var ownerRule []interface{}
 11602  	for _, ownerItem := range owner {
 11603  		ownerRule = append(ownerRule, ownerItem)
 11604  	}
 11605  	var spenderRule []interface{}
 11606  	for _, spenderItem := range spender {
 11607  		spenderRule = append(spenderRule, spenderItem)
 11608  	}
 11609  
 11610  	logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 11611  	if err != nil {
 11612  		return nil, err
 11613  	}
 11614  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11615  		defer sub.Unsubscribe()
 11616  		for {
 11617  			select {
 11618  			case log := <-logs:
 11619  				// New log arrived, parse the event and forward to the user
 11620  				event := new(ERC20BurnableApproval)
 11621  				if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 11622  					return err
 11623  				}
 11624  				event.Raw = log
 11625  
 11626  				select {
 11627  				case sink <- event:
 11628  				case err := <-sub.Err():
 11629  					return err
 11630  				case <-quit:
 11631  					return nil
 11632  				}
 11633  			case err := <-sub.Err():
 11634  				return err
 11635  			case <-quit:
 11636  				return nil
 11637  			}
 11638  		}
 11639  	}), nil
 11640  }
 11641  
 11642  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 11643  //
 11644  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 11645  func (_ERC20Burnable *ERC20BurnableFilterer) ParseApproval(log types.Log) (*ERC20BurnableApproval, error) {
 11646  	event := new(ERC20BurnableApproval)
 11647  	if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 11648  		return nil, err
 11649  	}
 11650  	return event, nil
 11651  }
 11652  
 11653  // ERC20BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Burnable contract.
 11654  type ERC20BurnableTransferIterator struct {
 11655  	Event *ERC20BurnableTransfer // Event containing the contract specifics and raw log
 11656  
 11657  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11658  	event    string              // Event name to use for unpacking event data
 11659  
 11660  	logs chan types.Log        // Log channel receiving the found contract events
 11661  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11662  	done bool                  // Whether the subscription completed delivering logs
 11663  	fail error                 // Occurred error to stop iteration
 11664  }
 11665  
 11666  // Next advances the iterator to the subsequent event, returning whether there
 11667  // are any more events found. In case of a retrieval or parsing error, false is
 11668  // returned and Error() can be queried for the exact failure.
 11669  func (it *ERC20BurnableTransferIterator) Next() bool {
 11670  	// If the iterator failed, stop iterating
 11671  	if it.fail != nil {
 11672  		return false
 11673  	}
 11674  	// If the iterator completed, deliver directly whatever's available
 11675  	if it.done {
 11676  		select {
 11677  		case log := <-it.logs:
 11678  			it.Event = new(ERC20BurnableTransfer)
 11679  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11680  				it.fail = err
 11681  				return false
 11682  			}
 11683  			it.Event.Raw = log
 11684  			return true
 11685  
 11686  		default:
 11687  			return false
 11688  		}
 11689  	}
 11690  	// Iterator still in progress, wait for either a data or an error event
 11691  	select {
 11692  	case log := <-it.logs:
 11693  		it.Event = new(ERC20BurnableTransfer)
 11694  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11695  			it.fail = err
 11696  			return false
 11697  		}
 11698  		it.Event.Raw = log
 11699  		return true
 11700  
 11701  	case err := <-it.sub.Err():
 11702  		it.done = true
 11703  		it.fail = err
 11704  		return it.Next()
 11705  	}
 11706  }
 11707  
 11708  // Error returns any retrieval or parsing error occurred during filtering.
 11709  func (it *ERC20BurnableTransferIterator) Error() error {
 11710  	return it.fail
 11711  }
 11712  
 11713  // Close terminates the iteration process, releasing any pending underlying
 11714  // resources.
 11715  func (it *ERC20BurnableTransferIterator) Close() error {
 11716  	it.sub.Unsubscribe()
 11717  	return nil
 11718  }
 11719  
 11720  // ERC20BurnableTransfer represents a Transfer event raised by the ERC20Burnable contract.
 11721  type ERC20BurnableTransfer struct {
 11722  	From  common.Address
 11723  	To    common.Address
 11724  	Value *big.Int
 11725  	Raw   types.Log // Blockchain specific contextual infos
 11726  }
 11727  
 11728  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11729  //
 11730  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 11731  func (_ERC20Burnable *ERC20BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20BurnableTransferIterator, error) {
 11732  
 11733  	var fromRule []interface{}
 11734  	for _, fromItem := range from {
 11735  		fromRule = append(fromRule, fromItem)
 11736  	}
 11737  	var toRule []interface{}
 11738  	for _, toItem := range to {
 11739  		toRule = append(toRule, toItem)
 11740  	}
 11741  
 11742  	logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 11743  	if err != nil {
 11744  		return nil, err
 11745  	}
 11746  	return &ERC20BurnableTransferIterator{contract: _ERC20Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 11747  }
 11748  
 11749  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11750  //
 11751  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 11752  func (_ERC20Burnable *ERC20BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20BurnableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 11753  
 11754  	var fromRule []interface{}
 11755  	for _, fromItem := range from {
 11756  		fromRule = append(fromRule, fromItem)
 11757  	}
 11758  	var toRule []interface{}
 11759  	for _, toItem := range to {
 11760  		toRule = append(toRule, toItem)
 11761  	}
 11762  
 11763  	logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 11764  	if err != nil {
 11765  		return nil, err
 11766  	}
 11767  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11768  		defer sub.Unsubscribe()
 11769  		for {
 11770  			select {
 11771  			case log := <-logs:
 11772  				// New log arrived, parse the event and forward to the user
 11773  				event := new(ERC20BurnableTransfer)
 11774  				if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 11775  					return err
 11776  				}
 11777  				event.Raw = log
 11778  
 11779  				select {
 11780  				case sink <- event:
 11781  				case err := <-sub.Err():
 11782  					return err
 11783  				case <-quit:
 11784  					return nil
 11785  				}
 11786  			case err := <-sub.Err():
 11787  				return err
 11788  			case <-quit:
 11789  				return nil
 11790  			}
 11791  		}
 11792  	}), nil
 11793  }
 11794  
 11795  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11796  //
 11797  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 11798  func (_ERC20Burnable *ERC20BurnableFilterer) ParseTransfer(log types.Log) (*ERC20BurnableTransfer, error) {
 11799  	event := new(ERC20BurnableTransfer)
 11800  	if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 11801  		return nil, err
 11802  	}
 11803  	return event, nil
 11804  }
 11805  
 11806  // ERC20DetailedABI is the input ABI used to generate the binding from.
 11807  const ERC20DetailedABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 11808  
 11809  // ERC20DetailedFuncSigs maps the 4-byte function signature to its string representation.
 11810  var ERC20DetailedFuncSigs = map[string]string{
 11811  	"dd62ed3e": "allowance(address,address)",
 11812  	"095ea7b3": "approve(address,uint256)",
 11813  	"70a08231": "balanceOf(address)",
 11814  	"313ce567": "decimals()",
 11815  	"06fdde03": "name()",
 11816  	"95d89b41": "symbol()",
 11817  	"18160ddd": "totalSupply()",
 11818  	"a9059cbb": "transfer(address,uint256)",
 11819  	"23b872dd": "transferFrom(address,address,uint256)",
 11820  }
 11821  
 11822  // ERC20Detailed is an auto generated Go binding around an Ethereum contract.
 11823  type ERC20Detailed struct {
 11824  	ERC20DetailedCaller     // Read-only binding to the contract
 11825  	ERC20DetailedTransactor // Write-only binding to the contract
 11826  	ERC20DetailedFilterer   // Log filterer for contract events
 11827  }
 11828  
 11829  // ERC20DetailedCaller is an auto generated read-only Go binding around an Ethereum contract.
 11830  type ERC20DetailedCaller struct {
 11831  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11832  }
 11833  
 11834  // ERC20DetailedTransactor is an auto generated write-only Go binding around an Ethereum contract.
 11835  type ERC20DetailedTransactor struct {
 11836  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11837  }
 11838  
 11839  // ERC20DetailedFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 11840  type ERC20DetailedFilterer struct {
 11841  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11842  }
 11843  
 11844  // ERC20DetailedSession is an auto generated Go binding around an Ethereum contract,
 11845  // with pre-set call and transact options.
 11846  type ERC20DetailedSession struct {
 11847  	Contract     *ERC20Detailed    // Generic contract binding to set the session for
 11848  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11849  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11850  }
 11851  
 11852  // ERC20DetailedCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 11853  // with pre-set call options.
 11854  type ERC20DetailedCallerSession struct {
 11855  	Contract *ERC20DetailedCaller // Generic contract caller binding to set the session for
 11856  	CallOpts bind.CallOpts        // Call options to use throughout this session
 11857  }
 11858  
 11859  // ERC20DetailedTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 11860  // with pre-set transact options.
 11861  type ERC20DetailedTransactorSession struct {
 11862  	Contract     *ERC20DetailedTransactor // Generic contract transactor binding to set the session for
 11863  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 11864  }
 11865  
 11866  // ERC20DetailedRaw is an auto generated low-level Go binding around an Ethereum contract.
 11867  type ERC20DetailedRaw struct {
 11868  	Contract *ERC20Detailed // Generic contract binding to access the raw methods on
 11869  }
 11870  
 11871  // ERC20DetailedCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 11872  type ERC20DetailedCallerRaw struct {
 11873  	Contract *ERC20DetailedCaller // Generic read-only contract binding to access the raw methods on
 11874  }
 11875  
 11876  // ERC20DetailedTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 11877  type ERC20DetailedTransactorRaw struct {
 11878  	Contract *ERC20DetailedTransactor // Generic write-only contract binding to access the raw methods on
 11879  }
 11880  
 11881  // NewERC20Detailed creates a new instance of ERC20Detailed, bound to a specific deployed contract.
 11882  func NewERC20Detailed(address common.Address, backend bind.ContractBackend) (*ERC20Detailed, error) {
 11883  	contract, err := bindERC20Detailed(address, backend, backend, backend)
 11884  	if err != nil {
 11885  		return nil, err
 11886  	}
 11887  	return &ERC20Detailed{ERC20DetailedCaller: ERC20DetailedCaller{contract: contract}, ERC20DetailedTransactor: ERC20DetailedTransactor{contract: contract}, ERC20DetailedFilterer: ERC20DetailedFilterer{contract: contract}}, nil
 11888  }
 11889  
 11890  // NewERC20DetailedCaller creates a new read-only instance of ERC20Detailed, bound to a specific deployed contract.
 11891  func NewERC20DetailedCaller(address common.Address, caller bind.ContractCaller) (*ERC20DetailedCaller, error) {
 11892  	contract, err := bindERC20Detailed(address, caller, nil, nil)
 11893  	if err != nil {
 11894  		return nil, err
 11895  	}
 11896  	return &ERC20DetailedCaller{contract: contract}, nil
 11897  }
 11898  
 11899  // NewERC20DetailedTransactor creates a new write-only instance of ERC20Detailed, bound to a specific deployed contract.
 11900  func NewERC20DetailedTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20DetailedTransactor, error) {
 11901  	contract, err := bindERC20Detailed(address, nil, transactor, nil)
 11902  	if err != nil {
 11903  		return nil, err
 11904  	}
 11905  	return &ERC20DetailedTransactor{contract: contract}, nil
 11906  }
 11907  
 11908  // NewERC20DetailedFilterer creates a new log filterer instance of ERC20Detailed, bound to a specific deployed contract.
 11909  func NewERC20DetailedFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20DetailedFilterer, error) {
 11910  	contract, err := bindERC20Detailed(address, nil, nil, filterer)
 11911  	if err != nil {
 11912  		return nil, err
 11913  	}
 11914  	return &ERC20DetailedFilterer{contract: contract}, nil
 11915  }
 11916  
 11917  // bindERC20Detailed binds a generic wrapper to an already deployed contract.
 11918  func bindERC20Detailed(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11919  	parsed, err := abi.JSON(strings.NewReader(ERC20DetailedABI))
 11920  	if err != nil {
 11921  		return nil, err
 11922  	}
 11923  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 11924  }
 11925  
 11926  // Call invokes the (constant) contract method with params as input values and
 11927  // sets the output to result. The result type might be a single field for simple
 11928  // returns, a slice of interfaces for anonymous returns and a struct for named
 11929  // returns.
 11930  func (_ERC20Detailed *ERC20DetailedRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 11931  	return _ERC20Detailed.Contract.ERC20DetailedCaller.contract.Call(opts, result, method, params...)
 11932  }
 11933  
 11934  // Transfer initiates a plain transaction to move funds to the contract, calling
 11935  // its default method if one is available.
 11936  func (_ERC20Detailed *ERC20DetailedRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11937  	return _ERC20Detailed.Contract.ERC20DetailedTransactor.contract.Transfer(opts)
 11938  }
 11939  
 11940  // Transact invokes the (paid) contract method with params as input values.
 11941  func (_ERC20Detailed *ERC20DetailedRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11942  	return _ERC20Detailed.Contract.ERC20DetailedTransactor.contract.Transact(opts, method, params...)
 11943  }
 11944  
 11945  // Call invokes the (constant) contract method with params as input values and
 11946  // sets the output to result. The result type might be a single field for simple
 11947  // returns, a slice of interfaces for anonymous returns and a struct for named
 11948  // returns.
 11949  func (_ERC20Detailed *ERC20DetailedCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 11950  	return _ERC20Detailed.Contract.contract.Call(opts, result, method, params...)
 11951  }
 11952  
 11953  // Transfer initiates a plain transaction to move funds to the contract, calling
 11954  // its default method if one is available.
 11955  func (_ERC20Detailed *ERC20DetailedTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11956  	return _ERC20Detailed.Contract.contract.Transfer(opts)
 11957  }
 11958  
 11959  // Transact invokes the (paid) contract method with params as input values.
 11960  func (_ERC20Detailed *ERC20DetailedTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11961  	return _ERC20Detailed.Contract.contract.Transact(opts, method, params...)
 11962  }
 11963  
 11964  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11965  //
 11966  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 11967  func (_ERC20Detailed *ERC20DetailedCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 11968  	var (
 11969  		ret0 = new(*big.Int)
 11970  	)
 11971  	out := ret0
 11972  	err := _ERC20Detailed.contract.Call(opts, out, "allowance", owner, spender)
 11973  	return *ret0, err
 11974  }
 11975  
 11976  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11977  //
 11978  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 11979  func (_ERC20Detailed *ERC20DetailedSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 11980  	return _ERC20Detailed.Contract.Allowance(&_ERC20Detailed.CallOpts, owner, spender)
 11981  }
 11982  
 11983  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11984  //
 11985  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 11986  func (_ERC20Detailed *ERC20DetailedCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 11987  	return _ERC20Detailed.Contract.Allowance(&_ERC20Detailed.CallOpts, owner, spender)
 11988  }
 11989  
 11990  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11991  //
 11992  // Solidity: function balanceOf(address account) constant returns(uint256)
 11993  func (_ERC20Detailed *ERC20DetailedCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 11994  	var (
 11995  		ret0 = new(*big.Int)
 11996  	)
 11997  	out := ret0
 11998  	err := _ERC20Detailed.contract.Call(opts, out, "balanceOf", account)
 11999  	return *ret0, err
 12000  }
 12001  
 12002  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12003  //
 12004  // Solidity: function balanceOf(address account) constant returns(uint256)
 12005  func (_ERC20Detailed *ERC20DetailedSession) BalanceOf(account common.Address) (*big.Int, error) {
 12006  	return _ERC20Detailed.Contract.BalanceOf(&_ERC20Detailed.CallOpts, account)
 12007  }
 12008  
 12009  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12010  //
 12011  // Solidity: function balanceOf(address account) constant returns(uint256)
 12012  func (_ERC20Detailed *ERC20DetailedCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 12013  	return _ERC20Detailed.Contract.BalanceOf(&_ERC20Detailed.CallOpts, account)
 12014  }
 12015  
 12016  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 12017  //
 12018  // Solidity: function decimals() constant returns(uint8)
 12019  func (_ERC20Detailed *ERC20DetailedCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
 12020  	var (
 12021  		ret0 = new(uint8)
 12022  	)
 12023  	out := ret0
 12024  	err := _ERC20Detailed.contract.Call(opts, out, "decimals")
 12025  	return *ret0, err
 12026  }
 12027  
 12028  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 12029  //
 12030  // Solidity: function decimals() constant returns(uint8)
 12031  func (_ERC20Detailed *ERC20DetailedSession) Decimals() (uint8, error) {
 12032  	return _ERC20Detailed.Contract.Decimals(&_ERC20Detailed.CallOpts)
 12033  }
 12034  
 12035  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 12036  //
 12037  // Solidity: function decimals() constant returns(uint8)
 12038  func (_ERC20Detailed *ERC20DetailedCallerSession) Decimals() (uint8, error) {
 12039  	return _ERC20Detailed.Contract.Decimals(&_ERC20Detailed.CallOpts)
 12040  }
 12041  
 12042  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 12043  //
 12044  // Solidity: function name() constant returns(string)
 12045  func (_ERC20Detailed *ERC20DetailedCaller) Name(opts *bind.CallOpts) (string, error) {
 12046  	var (
 12047  		ret0 = new(string)
 12048  	)
 12049  	out := ret0
 12050  	err := _ERC20Detailed.contract.Call(opts, out, "name")
 12051  	return *ret0, err
 12052  }
 12053  
 12054  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 12055  //
 12056  // Solidity: function name() constant returns(string)
 12057  func (_ERC20Detailed *ERC20DetailedSession) Name() (string, error) {
 12058  	return _ERC20Detailed.Contract.Name(&_ERC20Detailed.CallOpts)
 12059  }
 12060  
 12061  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 12062  //
 12063  // Solidity: function name() constant returns(string)
 12064  func (_ERC20Detailed *ERC20DetailedCallerSession) Name() (string, error) {
 12065  	return _ERC20Detailed.Contract.Name(&_ERC20Detailed.CallOpts)
 12066  }
 12067  
 12068  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 12069  //
 12070  // Solidity: function symbol() constant returns(string)
 12071  func (_ERC20Detailed *ERC20DetailedCaller) Symbol(opts *bind.CallOpts) (string, error) {
 12072  	var (
 12073  		ret0 = new(string)
 12074  	)
 12075  	out := ret0
 12076  	err := _ERC20Detailed.contract.Call(opts, out, "symbol")
 12077  	return *ret0, err
 12078  }
 12079  
 12080  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 12081  //
 12082  // Solidity: function symbol() constant returns(string)
 12083  func (_ERC20Detailed *ERC20DetailedSession) Symbol() (string, error) {
 12084  	return _ERC20Detailed.Contract.Symbol(&_ERC20Detailed.CallOpts)
 12085  }
 12086  
 12087  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 12088  //
 12089  // Solidity: function symbol() constant returns(string)
 12090  func (_ERC20Detailed *ERC20DetailedCallerSession) Symbol() (string, error) {
 12091  	return _ERC20Detailed.Contract.Symbol(&_ERC20Detailed.CallOpts)
 12092  }
 12093  
 12094  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12095  //
 12096  // Solidity: function totalSupply() constant returns(uint256)
 12097  func (_ERC20Detailed *ERC20DetailedCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 12098  	var (
 12099  		ret0 = new(*big.Int)
 12100  	)
 12101  	out := ret0
 12102  	err := _ERC20Detailed.contract.Call(opts, out, "totalSupply")
 12103  	return *ret0, err
 12104  }
 12105  
 12106  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12107  //
 12108  // Solidity: function totalSupply() constant returns(uint256)
 12109  func (_ERC20Detailed *ERC20DetailedSession) TotalSupply() (*big.Int, error) {
 12110  	return _ERC20Detailed.Contract.TotalSupply(&_ERC20Detailed.CallOpts)
 12111  }
 12112  
 12113  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12114  //
 12115  // Solidity: function totalSupply() constant returns(uint256)
 12116  func (_ERC20Detailed *ERC20DetailedCallerSession) TotalSupply() (*big.Int, error) {
 12117  	return _ERC20Detailed.Contract.TotalSupply(&_ERC20Detailed.CallOpts)
 12118  }
 12119  
 12120  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12121  //
 12122  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 12123  func (_ERC20Detailed *ERC20DetailedTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 12124  	return _ERC20Detailed.contract.Transact(opts, "approve", spender, amount)
 12125  }
 12126  
 12127  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12128  //
 12129  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 12130  func (_ERC20Detailed *ERC20DetailedSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 12131  	return _ERC20Detailed.Contract.Approve(&_ERC20Detailed.TransactOpts, spender, amount)
 12132  }
 12133  
 12134  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12135  //
 12136  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 12137  func (_ERC20Detailed *ERC20DetailedTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 12138  	return _ERC20Detailed.Contract.Approve(&_ERC20Detailed.TransactOpts, spender, amount)
 12139  }
 12140  
 12141  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12142  //
 12143  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12144  func (_ERC20Detailed *ERC20DetailedTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12145  	return _ERC20Detailed.contract.Transact(opts, "transfer", recipient, amount)
 12146  }
 12147  
 12148  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12149  //
 12150  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12151  func (_ERC20Detailed *ERC20DetailedSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12152  	return _ERC20Detailed.Contract.Transfer(&_ERC20Detailed.TransactOpts, recipient, amount)
 12153  }
 12154  
 12155  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12156  //
 12157  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12158  func (_ERC20Detailed *ERC20DetailedTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12159  	return _ERC20Detailed.Contract.Transfer(&_ERC20Detailed.TransactOpts, recipient, amount)
 12160  }
 12161  
 12162  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12163  //
 12164  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12165  func (_ERC20Detailed *ERC20DetailedTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12166  	return _ERC20Detailed.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 12167  }
 12168  
 12169  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12170  //
 12171  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12172  func (_ERC20Detailed *ERC20DetailedSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12173  	return _ERC20Detailed.Contract.TransferFrom(&_ERC20Detailed.TransactOpts, sender, recipient, amount)
 12174  }
 12175  
 12176  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12177  //
 12178  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12179  func (_ERC20Detailed *ERC20DetailedTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12180  	return _ERC20Detailed.Contract.TransferFrom(&_ERC20Detailed.TransactOpts, sender, recipient, amount)
 12181  }
 12182  
 12183  // ERC20DetailedApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Detailed contract.
 12184  type ERC20DetailedApprovalIterator struct {
 12185  	Event *ERC20DetailedApproval // Event containing the contract specifics and raw log
 12186  
 12187  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12188  	event    string              // Event name to use for unpacking event data
 12189  
 12190  	logs chan types.Log        // Log channel receiving the found contract events
 12191  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12192  	done bool                  // Whether the subscription completed delivering logs
 12193  	fail error                 // Occurred error to stop iteration
 12194  }
 12195  
 12196  // Next advances the iterator to the subsequent event, returning whether there
 12197  // are any more events found. In case of a retrieval or parsing error, false is
 12198  // returned and Error() can be queried for the exact failure.
 12199  func (it *ERC20DetailedApprovalIterator) Next() bool {
 12200  	// If the iterator failed, stop iterating
 12201  	if it.fail != nil {
 12202  		return false
 12203  	}
 12204  	// If the iterator completed, deliver directly whatever's available
 12205  	if it.done {
 12206  		select {
 12207  		case log := <-it.logs:
 12208  			it.Event = new(ERC20DetailedApproval)
 12209  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12210  				it.fail = err
 12211  				return false
 12212  			}
 12213  			it.Event.Raw = log
 12214  			return true
 12215  
 12216  		default:
 12217  			return false
 12218  		}
 12219  	}
 12220  	// Iterator still in progress, wait for either a data or an error event
 12221  	select {
 12222  	case log := <-it.logs:
 12223  		it.Event = new(ERC20DetailedApproval)
 12224  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12225  			it.fail = err
 12226  			return false
 12227  		}
 12228  		it.Event.Raw = log
 12229  		return true
 12230  
 12231  	case err := <-it.sub.Err():
 12232  		it.done = true
 12233  		it.fail = err
 12234  		return it.Next()
 12235  	}
 12236  }
 12237  
 12238  // Error returns any retrieval or parsing error occurred during filtering.
 12239  func (it *ERC20DetailedApprovalIterator) Error() error {
 12240  	return it.fail
 12241  }
 12242  
 12243  // Close terminates the iteration process, releasing any pending underlying
 12244  // resources.
 12245  func (it *ERC20DetailedApprovalIterator) Close() error {
 12246  	it.sub.Unsubscribe()
 12247  	return nil
 12248  }
 12249  
 12250  // ERC20DetailedApproval represents a Approval event raised by the ERC20Detailed contract.
 12251  type ERC20DetailedApproval struct {
 12252  	Owner   common.Address
 12253  	Spender common.Address
 12254  	Value   *big.Int
 12255  	Raw     types.Log // Blockchain specific contextual infos
 12256  }
 12257  
 12258  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12259  //
 12260  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12261  func (_ERC20Detailed *ERC20DetailedFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20DetailedApprovalIterator, error) {
 12262  
 12263  	var ownerRule []interface{}
 12264  	for _, ownerItem := range owner {
 12265  		ownerRule = append(ownerRule, ownerItem)
 12266  	}
 12267  	var spenderRule []interface{}
 12268  	for _, spenderItem := range spender {
 12269  		spenderRule = append(spenderRule, spenderItem)
 12270  	}
 12271  
 12272  	logs, sub, err := _ERC20Detailed.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 12273  	if err != nil {
 12274  		return nil, err
 12275  	}
 12276  	return &ERC20DetailedApprovalIterator{contract: _ERC20Detailed.contract, event: "Approval", logs: logs, sub: sub}, nil
 12277  }
 12278  
 12279  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12280  //
 12281  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12282  func (_ERC20Detailed *ERC20DetailedFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20DetailedApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 12283  
 12284  	var ownerRule []interface{}
 12285  	for _, ownerItem := range owner {
 12286  		ownerRule = append(ownerRule, ownerItem)
 12287  	}
 12288  	var spenderRule []interface{}
 12289  	for _, spenderItem := range spender {
 12290  		spenderRule = append(spenderRule, spenderItem)
 12291  	}
 12292  
 12293  	logs, sub, err := _ERC20Detailed.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 12294  	if err != nil {
 12295  		return nil, err
 12296  	}
 12297  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12298  		defer sub.Unsubscribe()
 12299  		for {
 12300  			select {
 12301  			case log := <-logs:
 12302  				// New log arrived, parse the event and forward to the user
 12303  				event := new(ERC20DetailedApproval)
 12304  				if err := _ERC20Detailed.contract.UnpackLog(event, "Approval", log); err != nil {
 12305  					return err
 12306  				}
 12307  				event.Raw = log
 12308  
 12309  				select {
 12310  				case sink <- event:
 12311  				case err := <-sub.Err():
 12312  					return err
 12313  				case <-quit:
 12314  					return nil
 12315  				}
 12316  			case err := <-sub.Err():
 12317  				return err
 12318  			case <-quit:
 12319  				return nil
 12320  			}
 12321  		}
 12322  	}), nil
 12323  }
 12324  
 12325  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12326  //
 12327  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12328  func (_ERC20Detailed *ERC20DetailedFilterer) ParseApproval(log types.Log) (*ERC20DetailedApproval, error) {
 12329  	event := new(ERC20DetailedApproval)
 12330  	if err := _ERC20Detailed.contract.UnpackLog(event, "Approval", log); err != nil {
 12331  		return nil, err
 12332  	}
 12333  	return event, nil
 12334  }
 12335  
 12336  // ERC20DetailedTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Detailed contract.
 12337  type ERC20DetailedTransferIterator struct {
 12338  	Event *ERC20DetailedTransfer // Event containing the contract specifics and raw log
 12339  
 12340  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12341  	event    string              // Event name to use for unpacking event data
 12342  
 12343  	logs chan types.Log        // Log channel receiving the found contract events
 12344  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12345  	done bool                  // Whether the subscription completed delivering logs
 12346  	fail error                 // Occurred error to stop iteration
 12347  }
 12348  
 12349  // Next advances the iterator to the subsequent event, returning whether there
 12350  // are any more events found. In case of a retrieval or parsing error, false is
 12351  // returned and Error() can be queried for the exact failure.
 12352  func (it *ERC20DetailedTransferIterator) Next() bool {
 12353  	// If the iterator failed, stop iterating
 12354  	if it.fail != nil {
 12355  		return false
 12356  	}
 12357  	// If the iterator completed, deliver directly whatever's available
 12358  	if it.done {
 12359  		select {
 12360  		case log := <-it.logs:
 12361  			it.Event = new(ERC20DetailedTransfer)
 12362  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12363  				it.fail = err
 12364  				return false
 12365  			}
 12366  			it.Event.Raw = log
 12367  			return true
 12368  
 12369  		default:
 12370  			return false
 12371  		}
 12372  	}
 12373  	// Iterator still in progress, wait for either a data or an error event
 12374  	select {
 12375  	case log := <-it.logs:
 12376  		it.Event = new(ERC20DetailedTransfer)
 12377  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12378  			it.fail = err
 12379  			return false
 12380  		}
 12381  		it.Event.Raw = log
 12382  		return true
 12383  
 12384  	case err := <-it.sub.Err():
 12385  		it.done = true
 12386  		it.fail = err
 12387  		return it.Next()
 12388  	}
 12389  }
 12390  
 12391  // Error returns any retrieval or parsing error occurred during filtering.
 12392  func (it *ERC20DetailedTransferIterator) Error() error {
 12393  	return it.fail
 12394  }
 12395  
 12396  // Close terminates the iteration process, releasing any pending underlying
 12397  // resources.
 12398  func (it *ERC20DetailedTransferIterator) Close() error {
 12399  	it.sub.Unsubscribe()
 12400  	return nil
 12401  }
 12402  
 12403  // ERC20DetailedTransfer represents a Transfer event raised by the ERC20Detailed contract.
 12404  type ERC20DetailedTransfer struct {
 12405  	From  common.Address
 12406  	To    common.Address
 12407  	Value *big.Int
 12408  	Raw   types.Log // Blockchain specific contextual infos
 12409  }
 12410  
 12411  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 12412  //
 12413  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 12414  func (_ERC20Detailed *ERC20DetailedFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20DetailedTransferIterator, error) {
 12415  
 12416  	var fromRule []interface{}
 12417  	for _, fromItem := range from {
 12418  		fromRule = append(fromRule, fromItem)
 12419  	}
 12420  	var toRule []interface{}
 12421  	for _, toItem := range to {
 12422  		toRule = append(toRule, toItem)
 12423  	}
 12424  
 12425  	logs, sub, err := _ERC20Detailed.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 12426  	if err != nil {
 12427  		return nil, err
 12428  	}
 12429  	return &ERC20DetailedTransferIterator{contract: _ERC20Detailed.contract, event: "Transfer", logs: logs, sub: sub}, nil
 12430  }
 12431  
 12432  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 12433  //
 12434  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 12435  func (_ERC20Detailed *ERC20DetailedFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20DetailedTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 12436  
 12437  	var fromRule []interface{}
 12438  	for _, fromItem := range from {
 12439  		fromRule = append(fromRule, fromItem)
 12440  	}
 12441  	var toRule []interface{}
 12442  	for _, toItem := range to {
 12443  		toRule = append(toRule, toItem)
 12444  	}
 12445  
 12446  	logs, sub, err := _ERC20Detailed.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 12447  	if err != nil {
 12448  		return nil, err
 12449  	}
 12450  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12451  		defer sub.Unsubscribe()
 12452  		for {
 12453  			select {
 12454  			case log := <-logs:
 12455  				// New log arrived, parse the event and forward to the user
 12456  				event := new(ERC20DetailedTransfer)
 12457  				if err := _ERC20Detailed.contract.UnpackLog(event, "Transfer", log); err != nil {
 12458  					return err
 12459  				}
 12460  				event.Raw = log
 12461  
 12462  				select {
 12463  				case sink <- event:
 12464  				case err := <-sub.Err():
 12465  					return err
 12466  				case <-quit:
 12467  					return nil
 12468  				}
 12469  			case err := <-sub.Err():
 12470  				return err
 12471  			case <-quit:
 12472  				return nil
 12473  			}
 12474  		}
 12475  	}), nil
 12476  }
 12477  
 12478  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 12479  //
 12480  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 12481  func (_ERC20Detailed *ERC20DetailedFilterer) ParseTransfer(log types.Log) (*ERC20DetailedTransfer, error) {
 12482  	event := new(ERC20DetailedTransfer)
 12483  	if err := _ERC20Detailed.contract.UnpackLog(event, "Transfer", log); err != nil {
 12484  		return nil, err
 12485  	}
 12486  	return event, nil
 12487  }
 12488  
 12489  // ERC20MintableABI is the input ABI used to generate the binding from.
 12490  const ERC20MintableABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 12491  
 12492  // ERC20MintableFuncSigs maps the 4-byte function signature to its string representation.
 12493  var ERC20MintableFuncSigs = map[string]string{
 12494  	"983b2d56": "addMinter(address)",
 12495  	"dd62ed3e": "allowance(address,address)",
 12496  	"095ea7b3": "approve(address,uint256)",
 12497  	"70a08231": "balanceOf(address)",
 12498  	"a457c2d7": "decreaseAllowance(address,uint256)",
 12499  	"39509351": "increaseAllowance(address,uint256)",
 12500  	"aa271e1a": "isMinter(address)",
 12501  	"40c10f19": "mint(address,uint256)",
 12502  	"98650275": "renounceMinter()",
 12503  	"18160ddd": "totalSupply()",
 12504  	"a9059cbb": "transfer(address,uint256)",
 12505  	"23b872dd": "transferFrom(address,address,uint256)",
 12506  }
 12507  
 12508  // ERC20MintableBin is the compiled bytecode used for deploying new contracts.
 12509  var ERC20MintableBin = "0x60806040526100266100186001600160e01b0361002b16565b6001600160e01b0361002f16565b6101a3565b3390565b61004781600361007e60201b610a6e1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61009182826001600160e01b0361012216565b156100fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216610183576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610eb16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610cff806101b26000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146101c757806398650275146101ef578063a457c2d7146101f7578063a9059cbb14610223578063aa271e1a1461024f578063dd62ed3e14610275576100b4565b8063095ea7b3146100b957806318160ddd146100f957806323b872dd14610113578063395093511461014957806340c10f191461017557806370a08231146101a1575b600080fd5b6100e5600480360360408110156100cf57600080fd5b506001600160a01b0381351690602001356102a3565b604080519115158252519081900360200190f35b6101016102c0565b60408051918252519081900360200190f35b6100e56004803603606081101561012957600080fd5b506001600160a01b038135811691602081013590911690604001356102c6565b6100e56004803603604081101561015f57600080fd5b506001600160a01b038135169060200135610353565b6100e56004803603604081101561018b57600080fd5b506001600160a01b0381351690602001356103a7565b610101600480360360208110156101b757600080fd5b50356001600160a01b03166103fe565b6101ed600480360360208110156101dd57600080fd5b50356001600160a01b0316610419565b005b6101ed61046b565b6100e56004803603604081101561020d57600080fd5b506001600160a01b03813516906020013561047d565b6100e56004803603604081101561023957600080fd5b506001600160a01b0381351690602001356104eb565b6100e56004803603602081101561026557600080fd5b50356001600160a01b03166104ff565b6101016004803603604081101561028b57600080fd5b506001600160a01b0381358116916020013516610518565b60006102b76102b0610543565b8484610547565b50600192915050565b60025490565b60006102d3848484610633565b610349846102df610543565b61034485604051806060016040528060288152602001610c13602891396001600160a01b038a1660009081526001602052604081209061031d610543565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61078f16565b610547565b5060019392505050565b60006102b7610360610543565b846103448560016000610371610543565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61082616565b60006103b96103b4610543565b6104ff565b6103f45760405162461bcd60e51b8152600401808060200182810382526030815260200180610bc26030913960400191505060405180910390fd5b6102b78383610887565b6001600160a01b031660009081526020819052604090205490565b6104246103b4610543565b61045f5760405162461bcd60e51b8152600401808060200182810382526030815260200180610bc26030913960400191505060405180910390fd5b61046881610977565b50565b61047b610476610543565b6109bf565b565b60006102b761048a610543565b8461034485604051806060016040528060258152602001610ca660259139600160006104b4610543565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61078f16565b60006102b76104f8610543565b8484610633565b600061051260038363ffffffff610a0716565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661058c5760405162461bcd60e51b8152600401808060200182810382526024815260200180610c826024913960400191505060405180910390fd5b6001600160a01b0382166105d15760405162461bcd60e51b8152600401808060200182810382526022815260200180610b7a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106785760405162461bcd60e51b8152600401808060200182810382526025815260200180610c5d6025913960400191505060405180910390fd5b6001600160a01b0382166106bd5760405162461bcd60e51b8152600401808060200182810382526023815260200180610b576023913960400191505060405180910390fd5b61070081604051806060016040528060268152602001610b9c602691396001600160a01b038616600090815260208190526040902054919063ffffffff61078f16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610735908263ffffffff61082616565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561081e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e35781810151838201526020016107cb565b50505050905090810190601f1680156108105780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610880576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166108e2576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546108f5908263ffffffff61082616565b6002556001600160a01b038216600090815260208190526040902054610921908263ffffffff61082616565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b61098860038263ffffffff610a6e16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6109d060038263ffffffff610aef16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038216610a4e5760405162461bcd60e51b8152600401808060200182810382526022815260200180610c3b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610a788282610a07565b15610aca576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610af98282610a07565b610b345760405162461bcd60e51b8152600401808060200182810382526021815260200180610bf26021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582066ffadfcc37ded89686e3e2a1cc8a6f2b34fca15eda23d8b32eb601795c212b764736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373"
 12510  
 12511  // DeployERC20Mintable deploys a new Ethereum contract, binding an instance of ERC20Mintable to it.
 12512  func DeployERC20Mintable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20Mintable, error) {
 12513  	parsed, err := abi.JSON(strings.NewReader(ERC20MintableABI))
 12514  	if err != nil {
 12515  		return common.Address{}, nil, nil, err
 12516  	}
 12517  
 12518  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC20MintableBin), backend)
 12519  	if err != nil {
 12520  		return common.Address{}, nil, nil, err
 12521  	}
 12522  	return address, tx, &ERC20Mintable{ERC20MintableCaller: ERC20MintableCaller{contract: contract}, ERC20MintableTransactor: ERC20MintableTransactor{contract: contract}, ERC20MintableFilterer: ERC20MintableFilterer{contract: contract}}, nil
 12523  }
 12524  
 12525  // ERC20Mintable is an auto generated Go binding around an Ethereum contract.
 12526  type ERC20Mintable struct {
 12527  	ERC20MintableCaller     // Read-only binding to the contract
 12528  	ERC20MintableTransactor // Write-only binding to the contract
 12529  	ERC20MintableFilterer   // Log filterer for contract events
 12530  }
 12531  
 12532  // ERC20MintableCaller is an auto generated read-only Go binding around an Ethereum contract.
 12533  type ERC20MintableCaller struct {
 12534  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12535  }
 12536  
 12537  // ERC20MintableTransactor is an auto generated write-only Go binding around an Ethereum contract.
 12538  type ERC20MintableTransactor struct {
 12539  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12540  }
 12541  
 12542  // ERC20MintableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 12543  type ERC20MintableFilterer struct {
 12544  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12545  }
 12546  
 12547  // ERC20MintableSession is an auto generated Go binding around an Ethereum contract,
 12548  // with pre-set call and transact options.
 12549  type ERC20MintableSession struct {
 12550  	Contract     *ERC20Mintable    // Generic contract binding to set the session for
 12551  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 12552  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 12553  }
 12554  
 12555  // ERC20MintableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 12556  // with pre-set call options.
 12557  type ERC20MintableCallerSession struct {
 12558  	Contract *ERC20MintableCaller // Generic contract caller binding to set the session for
 12559  	CallOpts bind.CallOpts        // Call options to use throughout this session
 12560  }
 12561  
 12562  // ERC20MintableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 12563  // with pre-set transact options.
 12564  type ERC20MintableTransactorSession struct {
 12565  	Contract     *ERC20MintableTransactor // Generic contract transactor binding to set the session for
 12566  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 12567  }
 12568  
 12569  // ERC20MintableRaw is an auto generated low-level Go binding around an Ethereum contract.
 12570  type ERC20MintableRaw struct {
 12571  	Contract *ERC20Mintable // Generic contract binding to access the raw methods on
 12572  }
 12573  
 12574  // ERC20MintableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 12575  type ERC20MintableCallerRaw struct {
 12576  	Contract *ERC20MintableCaller // Generic read-only contract binding to access the raw methods on
 12577  }
 12578  
 12579  // ERC20MintableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 12580  type ERC20MintableTransactorRaw struct {
 12581  	Contract *ERC20MintableTransactor // Generic write-only contract binding to access the raw methods on
 12582  }
 12583  
 12584  // NewERC20Mintable creates a new instance of ERC20Mintable, bound to a specific deployed contract.
 12585  func NewERC20Mintable(address common.Address, backend bind.ContractBackend) (*ERC20Mintable, error) {
 12586  	contract, err := bindERC20Mintable(address, backend, backend, backend)
 12587  	if err != nil {
 12588  		return nil, err
 12589  	}
 12590  	return &ERC20Mintable{ERC20MintableCaller: ERC20MintableCaller{contract: contract}, ERC20MintableTransactor: ERC20MintableTransactor{contract: contract}, ERC20MintableFilterer: ERC20MintableFilterer{contract: contract}}, nil
 12591  }
 12592  
 12593  // NewERC20MintableCaller creates a new read-only instance of ERC20Mintable, bound to a specific deployed contract.
 12594  func NewERC20MintableCaller(address common.Address, caller bind.ContractCaller) (*ERC20MintableCaller, error) {
 12595  	contract, err := bindERC20Mintable(address, caller, nil, nil)
 12596  	if err != nil {
 12597  		return nil, err
 12598  	}
 12599  	return &ERC20MintableCaller{contract: contract}, nil
 12600  }
 12601  
 12602  // NewERC20MintableTransactor creates a new write-only instance of ERC20Mintable, bound to a specific deployed contract.
 12603  func NewERC20MintableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20MintableTransactor, error) {
 12604  	contract, err := bindERC20Mintable(address, nil, transactor, nil)
 12605  	if err != nil {
 12606  		return nil, err
 12607  	}
 12608  	return &ERC20MintableTransactor{contract: contract}, nil
 12609  }
 12610  
 12611  // NewERC20MintableFilterer creates a new log filterer instance of ERC20Mintable, bound to a specific deployed contract.
 12612  func NewERC20MintableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20MintableFilterer, error) {
 12613  	contract, err := bindERC20Mintable(address, nil, nil, filterer)
 12614  	if err != nil {
 12615  		return nil, err
 12616  	}
 12617  	return &ERC20MintableFilterer{contract: contract}, nil
 12618  }
 12619  
 12620  // bindERC20Mintable binds a generic wrapper to an already deployed contract.
 12621  func bindERC20Mintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 12622  	parsed, err := abi.JSON(strings.NewReader(ERC20MintableABI))
 12623  	if err != nil {
 12624  		return nil, err
 12625  	}
 12626  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 12627  }
 12628  
 12629  // Call invokes the (constant) contract method with params as input values and
 12630  // sets the output to result. The result type might be a single field for simple
 12631  // returns, a slice of interfaces for anonymous returns and a struct for named
 12632  // returns.
 12633  func (_ERC20Mintable *ERC20MintableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 12634  	return _ERC20Mintable.Contract.ERC20MintableCaller.contract.Call(opts, result, method, params...)
 12635  }
 12636  
 12637  // Transfer initiates a plain transaction to move funds to the contract, calling
 12638  // its default method if one is available.
 12639  func (_ERC20Mintable *ERC20MintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12640  	return _ERC20Mintable.Contract.ERC20MintableTransactor.contract.Transfer(opts)
 12641  }
 12642  
 12643  // Transact invokes the (paid) contract method with params as input values.
 12644  func (_ERC20Mintable *ERC20MintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12645  	return _ERC20Mintable.Contract.ERC20MintableTransactor.contract.Transact(opts, method, params...)
 12646  }
 12647  
 12648  // Call invokes the (constant) contract method with params as input values and
 12649  // sets the output to result. The result type might be a single field for simple
 12650  // returns, a slice of interfaces for anonymous returns and a struct for named
 12651  // returns.
 12652  func (_ERC20Mintable *ERC20MintableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 12653  	return _ERC20Mintable.Contract.contract.Call(opts, result, method, params...)
 12654  }
 12655  
 12656  // Transfer initiates a plain transaction to move funds to the contract, calling
 12657  // its default method if one is available.
 12658  func (_ERC20Mintable *ERC20MintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12659  	return _ERC20Mintable.Contract.contract.Transfer(opts)
 12660  }
 12661  
 12662  // Transact invokes the (paid) contract method with params as input values.
 12663  func (_ERC20Mintable *ERC20MintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12664  	return _ERC20Mintable.Contract.contract.Transact(opts, method, params...)
 12665  }
 12666  
 12667  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 12668  //
 12669  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 12670  func (_ERC20Mintable *ERC20MintableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 12671  	var (
 12672  		ret0 = new(*big.Int)
 12673  	)
 12674  	out := ret0
 12675  	err := _ERC20Mintable.contract.Call(opts, out, "allowance", owner, spender)
 12676  	return *ret0, err
 12677  }
 12678  
 12679  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 12680  //
 12681  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 12682  func (_ERC20Mintable *ERC20MintableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 12683  	return _ERC20Mintable.Contract.Allowance(&_ERC20Mintable.CallOpts, owner, spender)
 12684  }
 12685  
 12686  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 12687  //
 12688  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 12689  func (_ERC20Mintable *ERC20MintableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 12690  	return _ERC20Mintable.Contract.Allowance(&_ERC20Mintable.CallOpts, owner, spender)
 12691  }
 12692  
 12693  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12694  //
 12695  // Solidity: function balanceOf(address account) constant returns(uint256)
 12696  func (_ERC20Mintable *ERC20MintableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 12697  	var (
 12698  		ret0 = new(*big.Int)
 12699  	)
 12700  	out := ret0
 12701  	err := _ERC20Mintable.contract.Call(opts, out, "balanceOf", account)
 12702  	return *ret0, err
 12703  }
 12704  
 12705  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12706  //
 12707  // Solidity: function balanceOf(address account) constant returns(uint256)
 12708  func (_ERC20Mintable *ERC20MintableSession) BalanceOf(account common.Address) (*big.Int, error) {
 12709  	return _ERC20Mintable.Contract.BalanceOf(&_ERC20Mintable.CallOpts, account)
 12710  }
 12711  
 12712  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12713  //
 12714  // Solidity: function balanceOf(address account) constant returns(uint256)
 12715  func (_ERC20Mintable *ERC20MintableCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 12716  	return _ERC20Mintable.Contract.BalanceOf(&_ERC20Mintable.CallOpts, account)
 12717  }
 12718  
 12719  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 12720  //
 12721  // Solidity: function isMinter(address account) constant returns(bool)
 12722  func (_ERC20Mintable *ERC20MintableCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 12723  	var (
 12724  		ret0 = new(bool)
 12725  	)
 12726  	out := ret0
 12727  	err := _ERC20Mintable.contract.Call(opts, out, "isMinter", account)
 12728  	return *ret0, err
 12729  }
 12730  
 12731  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 12732  //
 12733  // Solidity: function isMinter(address account) constant returns(bool)
 12734  func (_ERC20Mintable *ERC20MintableSession) IsMinter(account common.Address) (bool, error) {
 12735  	return _ERC20Mintable.Contract.IsMinter(&_ERC20Mintable.CallOpts, account)
 12736  }
 12737  
 12738  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 12739  //
 12740  // Solidity: function isMinter(address account) constant returns(bool)
 12741  func (_ERC20Mintable *ERC20MintableCallerSession) IsMinter(account common.Address) (bool, error) {
 12742  	return _ERC20Mintable.Contract.IsMinter(&_ERC20Mintable.CallOpts, account)
 12743  }
 12744  
 12745  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12746  //
 12747  // Solidity: function totalSupply() constant returns(uint256)
 12748  func (_ERC20Mintable *ERC20MintableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 12749  	var (
 12750  		ret0 = new(*big.Int)
 12751  	)
 12752  	out := ret0
 12753  	err := _ERC20Mintable.contract.Call(opts, out, "totalSupply")
 12754  	return *ret0, err
 12755  }
 12756  
 12757  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12758  //
 12759  // Solidity: function totalSupply() constant returns(uint256)
 12760  func (_ERC20Mintable *ERC20MintableSession) TotalSupply() (*big.Int, error) {
 12761  	return _ERC20Mintable.Contract.TotalSupply(&_ERC20Mintable.CallOpts)
 12762  }
 12763  
 12764  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12765  //
 12766  // Solidity: function totalSupply() constant returns(uint256)
 12767  func (_ERC20Mintable *ERC20MintableCallerSession) TotalSupply() (*big.Int, error) {
 12768  	return _ERC20Mintable.Contract.TotalSupply(&_ERC20Mintable.CallOpts)
 12769  }
 12770  
 12771  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 12772  //
 12773  // Solidity: function addMinter(address account) returns()
 12774  func (_ERC20Mintable *ERC20MintableTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 12775  	return _ERC20Mintable.contract.Transact(opts, "addMinter", account)
 12776  }
 12777  
 12778  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 12779  //
 12780  // Solidity: function addMinter(address account) returns()
 12781  func (_ERC20Mintable *ERC20MintableSession) AddMinter(account common.Address) (*types.Transaction, error) {
 12782  	return _ERC20Mintable.Contract.AddMinter(&_ERC20Mintable.TransactOpts, account)
 12783  }
 12784  
 12785  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 12786  //
 12787  // Solidity: function addMinter(address account) returns()
 12788  func (_ERC20Mintable *ERC20MintableTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 12789  	return _ERC20Mintable.Contract.AddMinter(&_ERC20Mintable.TransactOpts, account)
 12790  }
 12791  
 12792  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12793  //
 12794  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 12795  func (_ERC20Mintable *ERC20MintableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 12796  	return _ERC20Mintable.contract.Transact(opts, "approve", spender, amount)
 12797  }
 12798  
 12799  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12800  //
 12801  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 12802  func (_ERC20Mintable *ERC20MintableSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 12803  	return _ERC20Mintable.Contract.Approve(&_ERC20Mintable.TransactOpts, spender, amount)
 12804  }
 12805  
 12806  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12807  //
 12808  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 12809  func (_ERC20Mintable *ERC20MintableTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 12810  	return _ERC20Mintable.Contract.Approve(&_ERC20Mintable.TransactOpts, spender, amount)
 12811  }
 12812  
 12813  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12814  //
 12815  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12816  func (_ERC20Mintable *ERC20MintableTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12817  	return _ERC20Mintable.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 12818  }
 12819  
 12820  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12821  //
 12822  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12823  func (_ERC20Mintable *ERC20MintableSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12824  	return _ERC20Mintable.Contract.DecreaseAllowance(&_ERC20Mintable.TransactOpts, spender, subtractedValue)
 12825  }
 12826  
 12827  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12828  //
 12829  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12830  func (_ERC20Mintable *ERC20MintableTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12831  	return _ERC20Mintable.Contract.DecreaseAllowance(&_ERC20Mintable.TransactOpts, spender, subtractedValue)
 12832  }
 12833  
 12834  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12835  //
 12836  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12837  func (_ERC20Mintable *ERC20MintableTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12838  	return _ERC20Mintable.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 12839  }
 12840  
 12841  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12842  //
 12843  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12844  func (_ERC20Mintable *ERC20MintableSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12845  	return _ERC20Mintable.Contract.IncreaseAllowance(&_ERC20Mintable.TransactOpts, spender, addedValue)
 12846  }
 12847  
 12848  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12849  //
 12850  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12851  func (_ERC20Mintable *ERC20MintableTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12852  	return _ERC20Mintable.Contract.IncreaseAllowance(&_ERC20Mintable.TransactOpts, spender, addedValue)
 12853  }
 12854  
 12855  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 12856  //
 12857  // Solidity: function mint(address account, uint256 amount) returns(bool)
 12858  func (_ERC20Mintable *ERC20MintableTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 12859  	return _ERC20Mintable.contract.Transact(opts, "mint", account, amount)
 12860  }
 12861  
 12862  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 12863  //
 12864  // Solidity: function mint(address account, uint256 amount) returns(bool)
 12865  func (_ERC20Mintable *ERC20MintableSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 12866  	return _ERC20Mintable.Contract.Mint(&_ERC20Mintable.TransactOpts, account, amount)
 12867  }
 12868  
 12869  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 12870  //
 12871  // Solidity: function mint(address account, uint256 amount) returns(bool)
 12872  func (_ERC20Mintable *ERC20MintableTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 12873  	return _ERC20Mintable.Contract.Mint(&_ERC20Mintable.TransactOpts, account, amount)
 12874  }
 12875  
 12876  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 12877  //
 12878  // Solidity: function renounceMinter() returns()
 12879  func (_ERC20Mintable *ERC20MintableTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 12880  	return _ERC20Mintable.contract.Transact(opts, "renounceMinter")
 12881  }
 12882  
 12883  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 12884  //
 12885  // Solidity: function renounceMinter() returns()
 12886  func (_ERC20Mintable *ERC20MintableSession) RenounceMinter() (*types.Transaction, error) {
 12887  	return _ERC20Mintable.Contract.RenounceMinter(&_ERC20Mintable.TransactOpts)
 12888  }
 12889  
 12890  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 12891  //
 12892  // Solidity: function renounceMinter() returns()
 12893  func (_ERC20Mintable *ERC20MintableTransactorSession) RenounceMinter() (*types.Transaction, error) {
 12894  	return _ERC20Mintable.Contract.RenounceMinter(&_ERC20Mintable.TransactOpts)
 12895  }
 12896  
 12897  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12898  //
 12899  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12900  func (_ERC20Mintable *ERC20MintableTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12901  	return _ERC20Mintable.contract.Transact(opts, "transfer", recipient, amount)
 12902  }
 12903  
 12904  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12905  //
 12906  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12907  func (_ERC20Mintable *ERC20MintableSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12908  	return _ERC20Mintable.Contract.Transfer(&_ERC20Mintable.TransactOpts, recipient, amount)
 12909  }
 12910  
 12911  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12912  //
 12913  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12914  func (_ERC20Mintable *ERC20MintableTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12915  	return _ERC20Mintable.Contract.Transfer(&_ERC20Mintable.TransactOpts, recipient, amount)
 12916  }
 12917  
 12918  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12919  //
 12920  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12921  func (_ERC20Mintable *ERC20MintableTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12922  	return _ERC20Mintable.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 12923  }
 12924  
 12925  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12926  //
 12927  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12928  func (_ERC20Mintable *ERC20MintableSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12929  	return _ERC20Mintable.Contract.TransferFrom(&_ERC20Mintable.TransactOpts, sender, recipient, amount)
 12930  }
 12931  
 12932  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12933  //
 12934  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12935  func (_ERC20Mintable *ERC20MintableTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12936  	return _ERC20Mintable.Contract.TransferFrom(&_ERC20Mintable.TransactOpts, sender, recipient, amount)
 12937  }
 12938  
 12939  // ERC20MintableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Mintable contract.
 12940  type ERC20MintableApprovalIterator struct {
 12941  	Event *ERC20MintableApproval // Event containing the contract specifics and raw log
 12942  
 12943  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12944  	event    string              // Event name to use for unpacking event data
 12945  
 12946  	logs chan types.Log        // Log channel receiving the found contract events
 12947  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12948  	done bool                  // Whether the subscription completed delivering logs
 12949  	fail error                 // Occurred error to stop iteration
 12950  }
 12951  
 12952  // Next advances the iterator to the subsequent event, returning whether there
 12953  // are any more events found. In case of a retrieval or parsing error, false is
 12954  // returned and Error() can be queried for the exact failure.
 12955  func (it *ERC20MintableApprovalIterator) Next() bool {
 12956  	// If the iterator failed, stop iterating
 12957  	if it.fail != nil {
 12958  		return false
 12959  	}
 12960  	// If the iterator completed, deliver directly whatever's available
 12961  	if it.done {
 12962  		select {
 12963  		case log := <-it.logs:
 12964  			it.Event = new(ERC20MintableApproval)
 12965  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12966  				it.fail = err
 12967  				return false
 12968  			}
 12969  			it.Event.Raw = log
 12970  			return true
 12971  
 12972  		default:
 12973  			return false
 12974  		}
 12975  	}
 12976  	// Iterator still in progress, wait for either a data or an error event
 12977  	select {
 12978  	case log := <-it.logs:
 12979  		it.Event = new(ERC20MintableApproval)
 12980  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12981  			it.fail = err
 12982  			return false
 12983  		}
 12984  		it.Event.Raw = log
 12985  		return true
 12986  
 12987  	case err := <-it.sub.Err():
 12988  		it.done = true
 12989  		it.fail = err
 12990  		return it.Next()
 12991  	}
 12992  }
 12993  
 12994  // Error returns any retrieval or parsing error occurred during filtering.
 12995  func (it *ERC20MintableApprovalIterator) Error() error {
 12996  	return it.fail
 12997  }
 12998  
 12999  // Close terminates the iteration process, releasing any pending underlying
 13000  // resources.
 13001  func (it *ERC20MintableApprovalIterator) Close() error {
 13002  	it.sub.Unsubscribe()
 13003  	return nil
 13004  }
 13005  
 13006  // ERC20MintableApproval represents a Approval event raised by the ERC20Mintable contract.
 13007  type ERC20MintableApproval struct {
 13008  	Owner   common.Address
 13009  	Spender common.Address
 13010  	Value   *big.Int
 13011  	Raw     types.Log // Blockchain specific contextual infos
 13012  }
 13013  
 13014  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13015  //
 13016  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 13017  func (_ERC20Mintable *ERC20MintableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20MintableApprovalIterator, error) {
 13018  
 13019  	var ownerRule []interface{}
 13020  	for _, ownerItem := range owner {
 13021  		ownerRule = append(ownerRule, ownerItem)
 13022  	}
 13023  	var spenderRule []interface{}
 13024  	for _, spenderItem := range spender {
 13025  		spenderRule = append(spenderRule, spenderItem)
 13026  	}
 13027  
 13028  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 13029  	if err != nil {
 13030  		return nil, err
 13031  	}
 13032  	return &ERC20MintableApprovalIterator{contract: _ERC20Mintable.contract, event: "Approval", logs: logs, sub: sub}, nil
 13033  }
 13034  
 13035  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13036  //
 13037  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 13038  func (_ERC20Mintable *ERC20MintableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20MintableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 13039  
 13040  	var ownerRule []interface{}
 13041  	for _, ownerItem := range owner {
 13042  		ownerRule = append(ownerRule, ownerItem)
 13043  	}
 13044  	var spenderRule []interface{}
 13045  	for _, spenderItem := range spender {
 13046  		spenderRule = append(spenderRule, spenderItem)
 13047  	}
 13048  
 13049  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 13050  	if err != nil {
 13051  		return nil, err
 13052  	}
 13053  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13054  		defer sub.Unsubscribe()
 13055  		for {
 13056  			select {
 13057  			case log := <-logs:
 13058  				// New log arrived, parse the event and forward to the user
 13059  				event := new(ERC20MintableApproval)
 13060  				if err := _ERC20Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
 13061  					return err
 13062  				}
 13063  				event.Raw = log
 13064  
 13065  				select {
 13066  				case sink <- event:
 13067  				case err := <-sub.Err():
 13068  					return err
 13069  				case <-quit:
 13070  					return nil
 13071  				}
 13072  			case err := <-sub.Err():
 13073  				return err
 13074  			case <-quit:
 13075  				return nil
 13076  			}
 13077  		}
 13078  	}), nil
 13079  }
 13080  
 13081  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13082  //
 13083  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 13084  func (_ERC20Mintable *ERC20MintableFilterer) ParseApproval(log types.Log) (*ERC20MintableApproval, error) {
 13085  	event := new(ERC20MintableApproval)
 13086  	if err := _ERC20Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
 13087  		return nil, err
 13088  	}
 13089  	return event, nil
 13090  }
 13091  
 13092  // ERC20MintableMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ERC20Mintable contract.
 13093  type ERC20MintableMinterAddedIterator struct {
 13094  	Event *ERC20MintableMinterAdded // Event containing the contract specifics and raw log
 13095  
 13096  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13097  	event    string              // Event name to use for unpacking event data
 13098  
 13099  	logs chan types.Log        // Log channel receiving the found contract events
 13100  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13101  	done bool                  // Whether the subscription completed delivering logs
 13102  	fail error                 // Occurred error to stop iteration
 13103  }
 13104  
 13105  // Next advances the iterator to the subsequent event, returning whether there
 13106  // are any more events found. In case of a retrieval or parsing error, false is
 13107  // returned and Error() can be queried for the exact failure.
 13108  func (it *ERC20MintableMinterAddedIterator) Next() bool {
 13109  	// If the iterator failed, stop iterating
 13110  	if it.fail != nil {
 13111  		return false
 13112  	}
 13113  	// If the iterator completed, deliver directly whatever's available
 13114  	if it.done {
 13115  		select {
 13116  		case log := <-it.logs:
 13117  			it.Event = new(ERC20MintableMinterAdded)
 13118  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13119  				it.fail = err
 13120  				return false
 13121  			}
 13122  			it.Event.Raw = log
 13123  			return true
 13124  
 13125  		default:
 13126  			return false
 13127  		}
 13128  	}
 13129  	// Iterator still in progress, wait for either a data or an error event
 13130  	select {
 13131  	case log := <-it.logs:
 13132  		it.Event = new(ERC20MintableMinterAdded)
 13133  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13134  			it.fail = err
 13135  			return false
 13136  		}
 13137  		it.Event.Raw = log
 13138  		return true
 13139  
 13140  	case err := <-it.sub.Err():
 13141  		it.done = true
 13142  		it.fail = err
 13143  		return it.Next()
 13144  	}
 13145  }
 13146  
 13147  // Error returns any retrieval or parsing error occurred during filtering.
 13148  func (it *ERC20MintableMinterAddedIterator) Error() error {
 13149  	return it.fail
 13150  }
 13151  
 13152  // Close terminates the iteration process, releasing any pending underlying
 13153  // resources.
 13154  func (it *ERC20MintableMinterAddedIterator) Close() error {
 13155  	it.sub.Unsubscribe()
 13156  	return nil
 13157  }
 13158  
 13159  // ERC20MintableMinterAdded represents a MinterAdded event raised by the ERC20Mintable contract.
 13160  type ERC20MintableMinterAdded struct {
 13161  	Account common.Address
 13162  	Raw     types.Log // Blockchain specific contextual infos
 13163  }
 13164  
 13165  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 13166  //
 13167  // Solidity: event MinterAdded(address indexed account)
 13168  func (_ERC20Mintable *ERC20MintableFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ERC20MintableMinterAddedIterator, error) {
 13169  
 13170  	var accountRule []interface{}
 13171  	for _, accountItem := range account {
 13172  		accountRule = append(accountRule, accountItem)
 13173  	}
 13174  
 13175  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "MinterAdded", accountRule)
 13176  	if err != nil {
 13177  		return nil, err
 13178  	}
 13179  	return &ERC20MintableMinterAddedIterator{contract: _ERC20Mintable.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 13180  }
 13181  
 13182  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 13183  //
 13184  // Solidity: event MinterAdded(address indexed account)
 13185  func (_ERC20Mintable *ERC20MintableFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ERC20MintableMinterAdded, account []common.Address) (event.Subscription, error) {
 13186  
 13187  	var accountRule []interface{}
 13188  	for _, accountItem := range account {
 13189  		accountRule = append(accountRule, accountItem)
 13190  	}
 13191  
 13192  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "MinterAdded", accountRule)
 13193  	if err != nil {
 13194  		return nil, err
 13195  	}
 13196  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13197  		defer sub.Unsubscribe()
 13198  		for {
 13199  			select {
 13200  			case log := <-logs:
 13201  				// New log arrived, parse the event and forward to the user
 13202  				event := new(ERC20MintableMinterAdded)
 13203  				if err := _ERC20Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 13204  					return err
 13205  				}
 13206  				event.Raw = log
 13207  
 13208  				select {
 13209  				case sink <- event:
 13210  				case err := <-sub.Err():
 13211  					return err
 13212  				case <-quit:
 13213  					return nil
 13214  				}
 13215  			case err := <-sub.Err():
 13216  				return err
 13217  			case <-quit:
 13218  				return nil
 13219  			}
 13220  		}
 13221  	}), nil
 13222  }
 13223  
 13224  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 13225  //
 13226  // Solidity: event MinterAdded(address indexed account)
 13227  func (_ERC20Mintable *ERC20MintableFilterer) ParseMinterAdded(log types.Log) (*ERC20MintableMinterAdded, error) {
 13228  	event := new(ERC20MintableMinterAdded)
 13229  	if err := _ERC20Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 13230  		return nil, err
 13231  	}
 13232  	return event, nil
 13233  }
 13234  
 13235  // ERC20MintableMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ERC20Mintable contract.
 13236  type ERC20MintableMinterRemovedIterator struct {
 13237  	Event *ERC20MintableMinterRemoved // Event containing the contract specifics and raw log
 13238  
 13239  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13240  	event    string              // Event name to use for unpacking event data
 13241  
 13242  	logs chan types.Log        // Log channel receiving the found contract events
 13243  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13244  	done bool                  // Whether the subscription completed delivering logs
 13245  	fail error                 // Occurred error to stop iteration
 13246  }
 13247  
 13248  // Next advances the iterator to the subsequent event, returning whether there
 13249  // are any more events found. In case of a retrieval or parsing error, false is
 13250  // returned and Error() can be queried for the exact failure.
 13251  func (it *ERC20MintableMinterRemovedIterator) Next() bool {
 13252  	// If the iterator failed, stop iterating
 13253  	if it.fail != nil {
 13254  		return false
 13255  	}
 13256  	// If the iterator completed, deliver directly whatever's available
 13257  	if it.done {
 13258  		select {
 13259  		case log := <-it.logs:
 13260  			it.Event = new(ERC20MintableMinterRemoved)
 13261  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13262  				it.fail = err
 13263  				return false
 13264  			}
 13265  			it.Event.Raw = log
 13266  			return true
 13267  
 13268  		default:
 13269  			return false
 13270  		}
 13271  	}
 13272  	// Iterator still in progress, wait for either a data or an error event
 13273  	select {
 13274  	case log := <-it.logs:
 13275  		it.Event = new(ERC20MintableMinterRemoved)
 13276  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13277  			it.fail = err
 13278  			return false
 13279  		}
 13280  		it.Event.Raw = log
 13281  		return true
 13282  
 13283  	case err := <-it.sub.Err():
 13284  		it.done = true
 13285  		it.fail = err
 13286  		return it.Next()
 13287  	}
 13288  }
 13289  
 13290  // Error returns any retrieval or parsing error occurred during filtering.
 13291  func (it *ERC20MintableMinterRemovedIterator) Error() error {
 13292  	return it.fail
 13293  }
 13294  
 13295  // Close terminates the iteration process, releasing any pending underlying
 13296  // resources.
 13297  func (it *ERC20MintableMinterRemovedIterator) Close() error {
 13298  	it.sub.Unsubscribe()
 13299  	return nil
 13300  }
 13301  
 13302  // ERC20MintableMinterRemoved represents a MinterRemoved event raised by the ERC20Mintable contract.
 13303  type ERC20MintableMinterRemoved struct {
 13304  	Account common.Address
 13305  	Raw     types.Log // Blockchain specific contextual infos
 13306  }
 13307  
 13308  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 13309  //
 13310  // Solidity: event MinterRemoved(address indexed account)
 13311  func (_ERC20Mintable *ERC20MintableFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ERC20MintableMinterRemovedIterator, error) {
 13312  
 13313  	var accountRule []interface{}
 13314  	for _, accountItem := range account {
 13315  		accountRule = append(accountRule, accountItem)
 13316  	}
 13317  
 13318  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 13319  	if err != nil {
 13320  		return nil, err
 13321  	}
 13322  	return &ERC20MintableMinterRemovedIterator{contract: _ERC20Mintable.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 13323  }
 13324  
 13325  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 13326  //
 13327  // Solidity: event MinterRemoved(address indexed account)
 13328  func (_ERC20Mintable *ERC20MintableFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ERC20MintableMinterRemoved, account []common.Address) (event.Subscription, error) {
 13329  
 13330  	var accountRule []interface{}
 13331  	for _, accountItem := range account {
 13332  		accountRule = append(accountRule, accountItem)
 13333  	}
 13334  
 13335  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 13336  	if err != nil {
 13337  		return nil, err
 13338  	}
 13339  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13340  		defer sub.Unsubscribe()
 13341  		for {
 13342  			select {
 13343  			case log := <-logs:
 13344  				// New log arrived, parse the event and forward to the user
 13345  				event := new(ERC20MintableMinterRemoved)
 13346  				if err := _ERC20Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 13347  					return err
 13348  				}
 13349  				event.Raw = log
 13350  
 13351  				select {
 13352  				case sink <- event:
 13353  				case err := <-sub.Err():
 13354  					return err
 13355  				case <-quit:
 13356  					return nil
 13357  				}
 13358  			case err := <-sub.Err():
 13359  				return err
 13360  			case <-quit:
 13361  				return nil
 13362  			}
 13363  		}
 13364  	}), nil
 13365  }
 13366  
 13367  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 13368  //
 13369  // Solidity: event MinterRemoved(address indexed account)
 13370  func (_ERC20Mintable *ERC20MintableFilterer) ParseMinterRemoved(log types.Log) (*ERC20MintableMinterRemoved, error) {
 13371  	event := new(ERC20MintableMinterRemoved)
 13372  	if err := _ERC20Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 13373  		return nil, err
 13374  	}
 13375  	return event, nil
 13376  }
 13377  
 13378  // ERC20MintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Mintable contract.
 13379  type ERC20MintableTransferIterator struct {
 13380  	Event *ERC20MintableTransfer // Event containing the contract specifics and raw log
 13381  
 13382  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13383  	event    string              // Event name to use for unpacking event data
 13384  
 13385  	logs chan types.Log        // Log channel receiving the found contract events
 13386  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13387  	done bool                  // Whether the subscription completed delivering logs
 13388  	fail error                 // Occurred error to stop iteration
 13389  }
 13390  
 13391  // Next advances the iterator to the subsequent event, returning whether there
 13392  // are any more events found. In case of a retrieval or parsing error, false is
 13393  // returned and Error() can be queried for the exact failure.
 13394  func (it *ERC20MintableTransferIterator) Next() bool {
 13395  	// If the iterator failed, stop iterating
 13396  	if it.fail != nil {
 13397  		return false
 13398  	}
 13399  	// If the iterator completed, deliver directly whatever's available
 13400  	if it.done {
 13401  		select {
 13402  		case log := <-it.logs:
 13403  			it.Event = new(ERC20MintableTransfer)
 13404  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13405  				it.fail = err
 13406  				return false
 13407  			}
 13408  			it.Event.Raw = log
 13409  			return true
 13410  
 13411  		default:
 13412  			return false
 13413  		}
 13414  	}
 13415  	// Iterator still in progress, wait for either a data or an error event
 13416  	select {
 13417  	case log := <-it.logs:
 13418  		it.Event = new(ERC20MintableTransfer)
 13419  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13420  			it.fail = err
 13421  			return false
 13422  		}
 13423  		it.Event.Raw = log
 13424  		return true
 13425  
 13426  	case err := <-it.sub.Err():
 13427  		it.done = true
 13428  		it.fail = err
 13429  		return it.Next()
 13430  	}
 13431  }
 13432  
 13433  // Error returns any retrieval or parsing error occurred during filtering.
 13434  func (it *ERC20MintableTransferIterator) Error() error {
 13435  	return it.fail
 13436  }
 13437  
 13438  // Close terminates the iteration process, releasing any pending underlying
 13439  // resources.
 13440  func (it *ERC20MintableTransferIterator) Close() error {
 13441  	it.sub.Unsubscribe()
 13442  	return nil
 13443  }
 13444  
 13445  // ERC20MintableTransfer represents a Transfer event raised by the ERC20Mintable contract.
 13446  type ERC20MintableTransfer struct {
 13447  	From  common.Address
 13448  	To    common.Address
 13449  	Value *big.Int
 13450  	Raw   types.Log // Blockchain specific contextual infos
 13451  }
 13452  
 13453  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13454  //
 13455  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 13456  func (_ERC20Mintable *ERC20MintableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20MintableTransferIterator, error) {
 13457  
 13458  	var fromRule []interface{}
 13459  	for _, fromItem := range from {
 13460  		fromRule = append(fromRule, fromItem)
 13461  	}
 13462  	var toRule []interface{}
 13463  	for _, toItem := range to {
 13464  		toRule = append(toRule, toItem)
 13465  	}
 13466  
 13467  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 13468  	if err != nil {
 13469  		return nil, err
 13470  	}
 13471  	return &ERC20MintableTransferIterator{contract: _ERC20Mintable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 13472  }
 13473  
 13474  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13475  //
 13476  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 13477  func (_ERC20Mintable *ERC20MintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20MintableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 13478  
 13479  	var fromRule []interface{}
 13480  	for _, fromItem := range from {
 13481  		fromRule = append(fromRule, fromItem)
 13482  	}
 13483  	var toRule []interface{}
 13484  	for _, toItem := range to {
 13485  		toRule = append(toRule, toItem)
 13486  	}
 13487  
 13488  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 13489  	if err != nil {
 13490  		return nil, err
 13491  	}
 13492  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13493  		defer sub.Unsubscribe()
 13494  		for {
 13495  			select {
 13496  			case log := <-logs:
 13497  				// New log arrived, parse the event and forward to the user
 13498  				event := new(ERC20MintableTransfer)
 13499  				if err := _ERC20Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 13500  					return err
 13501  				}
 13502  				event.Raw = log
 13503  
 13504  				select {
 13505  				case sink <- event:
 13506  				case err := <-sub.Err():
 13507  					return err
 13508  				case <-quit:
 13509  					return nil
 13510  				}
 13511  			case err := <-sub.Err():
 13512  				return err
 13513  			case <-quit:
 13514  				return nil
 13515  			}
 13516  		}
 13517  	}), nil
 13518  }
 13519  
 13520  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13521  //
 13522  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 13523  func (_ERC20Mintable *ERC20MintableFilterer) ParseTransfer(log types.Log) (*ERC20MintableTransfer, error) {
 13524  	event := new(ERC20MintableTransfer)
 13525  	if err := _ERC20Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 13526  		return nil, err
 13527  	}
 13528  	return event, nil
 13529  }
 13530  
 13531  // ERCProxyABI is the input ABI used to generate the binding from.
 13532  const ERCProxyABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"codeAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proxyType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proxyTypeId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]"
 13533  
 13534  // ERCProxyFuncSigs maps the 4-byte function signature to its string representation.
 13535  var ERCProxyFuncSigs = map[string]string{
 13536  	"5c60da1b": "implementation()",
 13537  	"4555d5c9": "proxyType()",
 13538  }
 13539  
 13540  // ERCProxy is an auto generated Go binding around an Ethereum contract.
 13541  type ERCProxy struct {
 13542  	ERCProxyCaller     // Read-only binding to the contract
 13543  	ERCProxyTransactor // Write-only binding to the contract
 13544  	ERCProxyFilterer   // Log filterer for contract events
 13545  }
 13546  
 13547  // ERCProxyCaller is an auto generated read-only Go binding around an Ethereum contract.
 13548  type ERCProxyCaller struct {
 13549  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13550  }
 13551  
 13552  // ERCProxyTransactor is an auto generated write-only Go binding around an Ethereum contract.
 13553  type ERCProxyTransactor struct {
 13554  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13555  }
 13556  
 13557  // ERCProxyFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 13558  type ERCProxyFilterer struct {
 13559  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13560  }
 13561  
 13562  // ERCProxySession is an auto generated Go binding around an Ethereum contract,
 13563  // with pre-set call and transact options.
 13564  type ERCProxySession struct {
 13565  	Contract     *ERCProxy         // Generic contract binding to set the session for
 13566  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 13567  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 13568  }
 13569  
 13570  // ERCProxyCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 13571  // with pre-set call options.
 13572  type ERCProxyCallerSession struct {
 13573  	Contract *ERCProxyCaller // Generic contract caller binding to set the session for
 13574  	CallOpts bind.CallOpts   // Call options to use throughout this session
 13575  }
 13576  
 13577  // ERCProxyTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 13578  // with pre-set transact options.
 13579  type ERCProxyTransactorSession struct {
 13580  	Contract     *ERCProxyTransactor // Generic contract transactor binding to set the session for
 13581  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 13582  }
 13583  
 13584  // ERCProxyRaw is an auto generated low-level Go binding around an Ethereum contract.
 13585  type ERCProxyRaw struct {
 13586  	Contract *ERCProxy // Generic contract binding to access the raw methods on
 13587  }
 13588  
 13589  // ERCProxyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 13590  type ERCProxyCallerRaw struct {
 13591  	Contract *ERCProxyCaller // Generic read-only contract binding to access the raw methods on
 13592  }
 13593  
 13594  // ERCProxyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 13595  type ERCProxyTransactorRaw struct {
 13596  	Contract *ERCProxyTransactor // Generic write-only contract binding to access the raw methods on
 13597  }
 13598  
 13599  // NewERCProxy creates a new instance of ERCProxy, bound to a specific deployed contract.
 13600  func NewERCProxy(address common.Address, backend bind.ContractBackend) (*ERCProxy, error) {
 13601  	contract, err := bindERCProxy(address, backend, backend, backend)
 13602  	if err != nil {
 13603  		return nil, err
 13604  	}
 13605  	return &ERCProxy{ERCProxyCaller: ERCProxyCaller{contract: contract}, ERCProxyTransactor: ERCProxyTransactor{contract: contract}, ERCProxyFilterer: ERCProxyFilterer{contract: contract}}, nil
 13606  }
 13607  
 13608  // NewERCProxyCaller creates a new read-only instance of ERCProxy, bound to a specific deployed contract.
 13609  func NewERCProxyCaller(address common.Address, caller bind.ContractCaller) (*ERCProxyCaller, error) {
 13610  	contract, err := bindERCProxy(address, caller, nil, nil)
 13611  	if err != nil {
 13612  		return nil, err
 13613  	}
 13614  	return &ERCProxyCaller{contract: contract}, nil
 13615  }
 13616  
 13617  // NewERCProxyTransactor creates a new write-only instance of ERCProxy, bound to a specific deployed contract.
 13618  func NewERCProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*ERCProxyTransactor, error) {
 13619  	contract, err := bindERCProxy(address, nil, transactor, nil)
 13620  	if err != nil {
 13621  		return nil, err
 13622  	}
 13623  	return &ERCProxyTransactor{contract: contract}, nil
 13624  }
 13625  
 13626  // NewERCProxyFilterer creates a new log filterer instance of ERCProxy, bound to a specific deployed contract.
 13627  func NewERCProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*ERCProxyFilterer, error) {
 13628  	contract, err := bindERCProxy(address, nil, nil, filterer)
 13629  	if err != nil {
 13630  		return nil, err
 13631  	}
 13632  	return &ERCProxyFilterer{contract: contract}, nil
 13633  }
 13634  
 13635  // bindERCProxy binds a generic wrapper to an already deployed contract.
 13636  func bindERCProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 13637  	parsed, err := abi.JSON(strings.NewReader(ERCProxyABI))
 13638  	if err != nil {
 13639  		return nil, err
 13640  	}
 13641  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 13642  }
 13643  
 13644  // Call invokes the (constant) contract method with params as input values and
 13645  // sets the output to result. The result type might be a single field for simple
 13646  // returns, a slice of interfaces for anonymous returns and a struct for named
 13647  // returns.
 13648  func (_ERCProxy *ERCProxyRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 13649  	return _ERCProxy.Contract.ERCProxyCaller.contract.Call(opts, result, method, params...)
 13650  }
 13651  
 13652  // Transfer initiates a plain transaction to move funds to the contract, calling
 13653  // its default method if one is available.
 13654  func (_ERCProxy *ERCProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13655  	return _ERCProxy.Contract.ERCProxyTransactor.contract.Transfer(opts)
 13656  }
 13657  
 13658  // Transact invokes the (paid) contract method with params as input values.
 13659  func (_ERCProxy *ERCProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13660  	return _ERCProxy.Contract.ERCProxyTransactor.contract.Transact(opts, method, params...)
 13661  }
 13662  
 13663  // Call invokes the (constant) contract method with params as input values and
 13664  // sets the output to result. The result type might be a single field for simple
 13665  // returns, a slice of interfaces for anonymous returns and a struct for named
 13666  // returns.
 13667  func (_ERCProxy *ERCProxyCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 13668  	return _ERCProxy.Contract.contract.Call(opts, result, method, params...)
 13669  }
 13670  
 13671  // Transfer initiates a plain transaction to move funds to the contract, calling
 13672  // its default method if one is available.
 13673  func (_ERCProxy *ERCProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13674  	return _ERCProxy.Contract.contract.Transfer(opts)
 13675  }
 13676  
 13677  // Transact invokes the (paid) contract method with params as input values.
 13678  func (_ERCProxy *ERCProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13679  	return _ERCProxy.Contract.contract.Transact(opts, method, params...)
 13680  }
 13681  
 13682  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
 13683  //
 13684  // Solidity: function implementation() constant returns(address codeAddr)
 13685  func (_ERCProxy *ERCProxyCaller) Implementation(opts *bind.CallOpts) (common.Address, error) {
 13686  	var (
 13687  		ret0 = new(common.Address)
 13688  	)
 13689  	out := ret0
 13690  	err := _ERCProxy.contract.Call(opts, out, "implementation")
 13691  	return *ret0, err
 13692  }
 13693  
 13694  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
 13695  //
 13696  // Solidity: function implementation() constant returns(address codeAddr)
 13697  func (_ERCProxy *ERCProxySession) Implementation() (common.Address, error) {
 13698  	return _ERCProxy.Contract.Implementation(&_ERCProxy.CallOpts)
 13699  }
 13700  
 13701  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
 13702  //
 13703  // Solidity: function implementation() constant returns(address codeAddr)
 13704  func (_ERCProxy *ERCProxyCallerSession) Implementation() (common.Address, error) {
 13705  	return _ERCProxy.Contract.Implementation(&_ERCProxy.CallOpts)
 13706  }
 13707  
 13708  // ProxyType is a free data retrieval call binding the contract method 0x4555d5c9.
 13709  //
 13710  // Solidity: function proxyType() constant returns(uint256 proxyTypeId)
 13711  func (_ERCProxy *ERCProxyCaller) ProxyType(opts *bind.CallOpts) (*big.Int, error) {
 13712  	var (
 13713  		ret0 = new(*big.Int)
 13714  	)
 13715  	out := ret0
 13716  	err := _ERCProxy.contract.Call(opts, out, "proxyType")
 13717  	return *ret0, err
 13718  }
 13719  
 13720  // ProxyType is a free data retrieval call binding the contract method 0x4555d5c9.
 13721  //
 13722  // Solidity: function proxyType() constant returns(uint256 proxyTypeId)
 13723  func (_ERCProxy *ERCProxySession) ProxyType() (*big.Int, error) {
 13724  	return _ERCProxy.Contract.ProxyType(&_ERCProxy.CallOpts)
 13725  }
 13726  
 13727  // ProxyType is a free data retrieval call binding the contract method 0x4555d5c9.
 13728  //
 13729  // Solidity: function proxyType() constant returns(uint256 proxyTypeId)
 13730  func (_ERCProxy *ERCProxyCallerSession) ProxyType() (*big.Int, error) {
 13731  	return _ERCProxy.Contract.ProxyType(&_ERCProxy.CallOpts)
 13732  }
 13733  
 13734  // FixedIncrementCoinageABI is the input ABI used to generate the binding from.
 13735  const FixedIncrementCoinageABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"seigPerBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"v\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigPerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 13736  
 13737  // FixedIncrementCoinageFuncSigs maps the 4-byte function signature to its string representation.
 13738  var FixedIncrementCoinageFuncSigs = map[string]string{
 13739  	"dd62ed3e": "allowance(address,address)",
 13740  	"095ea7b3": "approve(address,uint256)",
 13741  	"70a08231": "balanceOf(address)",
 13742  	"313ce567": "decimals()",
 13743  	"a457c2d7": "decreaseAllowance(address,uint256)",
 13744  	"f41e60c5": "enableTransfers(bool)",
 13745  	"54f703f8": "factor()",
 13746  	"d4132ee2": "factorIncrement()",
 13747  	"39509351": "increaseAllowance(address,uint256)",
 13748  	"8f32d59b": "isOwner()",
 13749  	"806b984f": "lastBlock()",
 13750  	"06fdde03": "name()",
 13751  	"8da5cb5b": "owner()",
 13752  	"715018a6": "renounceOwnership()",
 13753  	"5f40a349": "seigPerBlock()",
 13754  	"95d89b41": "symbol()",
 13755  	"18160ddd": "totalSupply()",
 13756  	"a9059cbb": "transfer(address,uint256)",
 13757  	"23b872dd": "transferFrom(address,address,uint256)",
 13758  	"f2fde38b": "transferOwnership(address)",
 13759  	"bef97c87": "transfersEnabled()",
 13760  }
 13761  
 13762  // FixedIncrementCoinageBin is the compiled bytecode used for deploying new contracts.
 13763  var FixedIncrementCoinageBin = "0x60806040523480156200001157600080fd5b506040516200154438038062001544833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060909201519093509091508484846000848484601b620001d06001600160e01b03620002de16565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a382516200022d906001906020860190620002e3565b50815162000243906002906020850190620002e3565b506003805460ff90921660ff19928316179055600795909555505060089190915543600955600a805491151591909216179055505081620002d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180620015126032913960400191505060405180910390fd5b50600b555062000385915050565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032657805160ff191683800117855562000356565b8280016001018555821562000356579182015b828111156200035657825182559160200191906001019062000339565b506200036492915062000368565b5090565b620002e091905b808211156200036457600081556001016200036f565b61117d80620003956000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063806b984f116100b8578063a9059cbb1161007c578063a9059cbb1461033b578063bef97c8714610367578063d4132ee21461036f578063dd62ed3e14610377578063f2fde38b146103a5578063f41e60c5146103cb57610137565b8063806b984f146102d35780638da5cb5b146102db5780638f32d59b146102ff57806395d89b4114610307578063a457c2d71461030f57610137565b806339509351116100ff578063395093511461026757806354f703f8146102935780635f40a3491461029b57806370a08231146102a3578063715018a6146102c957610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806323b872dd14610213578063313ce56714610249575b600080fd5b6101446103ea565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b03813516906020013561047f565b604080519115158252519081900360200190f35b61020161049d565b60408051918252519081900360200190f35b6101e56004803603606081101561022957600080fd5b506001600160a01b038135811691602081013590911690604001356104af565b6102516105a0565b6040805160ff9092168252519081900360200190f35b6101e56004803603604081101561027d57600080fd5b506001600160a01b0381351690602001356105a9565b6102016105fd565b61020161060a565b610201600480360360208110156102b957600080fd5b50356001600160a01b0316610610565b6102d161063a565b005b6102016106dd565b6102e36106e3565b604080516001600160a01b039092168252519081900360200190f35b6101e56106f2565b610144610716565b6101e56004803603604081101561032557600080fd5b506001600160a01b038135169060200135610774565b6101e56004803603604081101561035157600080fd5b506001600160a01b0381351690602001356107e2565b6101e561085a565b610201610863565b6102016004803603604081101561038d57600080fd5b506001600160a01b0381358116916020013516610869565b6102d1600480360360208110156103bb57600080fd5b50356001600160a01b0316610894565b6102d1600480360360208110156103e157600080fd5b503515156108f9565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b5050505050905090565b600061049361048c610965565b8484610969565b5060015b92915050565b60006104aa600654610a5d565b905090565b60006104b96106e3565b6001600160a01b0316336001600160a01b031614806104da5750600a5460ff165b6105155760405162461bcd60e51b815260040180806020018281038252602a8152602001806110e8602a913960400191505060405180910390fd5b610520848484610aa3565b6105968461052c610965565b61059185604051806060016040528060378152602001611112603791396001600160a01b038a1660009081526005602052604081209061056a610965565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610c1a16565b610969565b5060019392505050565b60035460ff1690565b60006104936105b6610965565b8461059185600560006105c7610965565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610cb116565b60006104aa600754610a5d565b600b5490565b6001600160a01b03811660009081526004602052604081205461063290610a5d565b90505b919050565b6106426106f2565b610693576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60095490565b6000546001600160a01b031690565b600080546001600160a01b0316610707610965565b6001600160a01b031614905090565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156104755780601f1061044a57610100808354040283529160200191610475565b6000610493610781610965565b8461059185604051806060016040528060348152602001610fb560349139600560006107ab610965565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610c1a16565b60006107ec6106e3565b6001600160a01b0316336001600160a01b0316148061080d5750600a5460ff165b6108485760405162461bcd60e51b815260040180806020018281038252602a8152602001806110e8602a913960400191505060405180910390fd5b610493610853610965565b8484610aa3565b600a5460ff1690565b60085490565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61089c6106f2565b6108ed576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6108f681610d0b565b50565b6109016106f2565b610952576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b3390565b610971610dab565b6001600160a01b0383166109b65760405162461bcd60e51b815260040180806020018281038252603381526020018061101d6033913960400191505060405180910390fd5b6001600160a01b0382166109fb5760405162461bcd60e51b81526004018080602001828103825260318152602001806110506031913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610a6c57506000610635565b600954430380610a8a57610a8283600754610dfd565b915050610635565b610a9c83610a9783610e3e565b610dfd565b9392505050565b610aab610dab565b6001600160a01b038316610af05760405162461bcd60e51b8152600401808060200182810382526034815260200180610fe96034913960400191505060405180910390fd5b6001600160a01b038216610b355760405162461bcd60e51b81526004018080602001828103825260328152602001806110816032913960400191505060405180910390fd5b6000610b4082610e9c565b9050610b85816040518060600160405280603581526020016110b3603591396001600160a01b038716600090815260046020526040902054919063ffffffff610c1a16565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610bba908263ffffffff610cb116565b6001600160a01b0380851660008181526004602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610c0384610eaa565b60408051918252519081900360200190a350505050565b60008184841115610ca95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6e578181015183820152602001610c56565b50505050905090810190601f168015610c9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610a9c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116610d505760405162461bcd60e51b8152600401808060200182810382526026815260200180610f8f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600954430380156108f657610dbf81610e3e565b60078190554360095560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce8000000610e2f610e198585610eb8565b60026b033b2e3c9fd0803ce80000005b04610f1b565b81610e3657fe5b049392505050565b600060065460001415610e545750600754610635565b6000610e64600654600754610dfd565b90506000610e7d82610e78600b5487610eb8565b610f1b565b9050610e94610e8e60075483610dfd565b83610f6a565b949350505050565b600061063282600754610f6a565b600061063282600754610dfd565b6000811580610ed357505080820282828281610ed057fe5b04145b610497576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015610497576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600081610e2f610f86856b033b2e3c9fd0803ce8000000610eb8565b600285610e2956fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a72315820fe9a686cb6dc0e406b828d2541ba979be7f69b73db188b53d9e02c5fc4d5e56c64736f6c634300050c00324669786564496e6372656d656e74436f696e6167653a20736569676e6f72616765206d757374206e6f74206265207a65726f"
 13764  
 13765  // DeployFixedIncrementCoinage deploys a new Ethereum contract, binding an instance of FixedIncrementCoinage to it.
 13766  func DeployFixedIncrementCoinage(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, factor *big.Int, seigPerBlock *big.Int, transfersEnabled bool) (common.Address, *types.Transaction, *FixedIncrementCoinage, error) {
 13767  	parsed, err := abi.JSON(strings.NewReader(FixedIncrementCoinageABI))
 13768  	if err != nil {
 13769  		return common.Address{}, nil, nil, err
 13770  	}
 13771  
 13772  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(FixedIncrementCoinageBin), backend, name, symbol, factor, seigPerBlock, transfersEnabled)
 13773  	if err != nil {
 13774  		return common.Address{}, nil, nil, err
 13775  	}
 13776  	return address, tx, &FixedIncrementCoinage{FixedIncrementCoinageCaller: FixedIncrementCoinageCaller{contract: contract}, FixedIncrementCoinageTransactor: FixedIncrementCoinageTransactor{contract: contract}, FixedIncrementCoinageFilterer: FixedIncrementCoinageFilterer{contract: contract}}, nil
 13777  }
 13778  
 13779  // FixedIncrementCoinage is an auto generated Go binding around an Ethereum contract.
 13780  type FixedIncrementCoinage struct {
 13781  	FixedIncrementCoinageCaller     // Read-only binding to the contract
 13782  	FixedIncrementCoinageTransactor // Write-only binding to the contract
 13783  	FixedIncrementCoinageFilterer   // Log filterer for contract events
 13784  }
 13785  
 13786  // FixedIncrementCoinageCaller is an auto generated read-only Go binding around an Ethereum contract.
 13787  type FixedIncrementCoinageCaller struct {
 13788  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13789  }
 13790  
 13791  // FixedIncrementCoinageTransactor is an auto generated write-only Go binding around an Ethereum contract.
 13792  type FixedIncrementCoinageTransactor struct {
 13793  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13794  }
 13795  
 13796  // FixedIncrementCoinageFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 13797  type FixedIncrementCoinageFilterer struct {
 13798  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13799  }
 13800  
 13801  // FixedIncrementCoinageSession is an auto generated Go binding around an Ethereum contract,
 13802  // with pre-set call and transact options.
 13803  type FixedIncrementCoinageSession struct {
 13804  	Contract     *FixedIncrementCoinage // Generic contract binding to set the session for
 13805  	CallOpts     bind.CallOpts          // Call options to use throughout this session
 13806  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
 13807  }
 13808  
 13809  // FixedIncrementCoinageCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 13810  // with pre-set call options.
 13811  type FixedIncrementCoinageCallerSession struct {
 13812  	Contract *FixedIncrementCoinageCaller // Generic contract caller binding to set the session for
 13813  	CallOpts bind.CallOpts                // Call options to use throughout this session
 13814  }
 13815  
 13816  // FixedIncrementCoinageTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 13817  // with pre-set transact options.
 13818  type FixedIncrementCoinageTransactorSession struct {
 13819  	Contract     *FixedIncrementCoinageTransactor // Generic contract transactor binding to set the session for
 13820  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
 13821  }
 13822  
 13823  // FixedIncrementCoinageRaw is an auto generated low-level Go binding around an Ethereum contract.
 13824  type FixedIncrementCoinageRaw struct {
 13825  	Contract *FixedIncrementCoinage // Generic contract binding to access the raw methods on
 13826  }
 13827  
 13828  // FixedIncrementCoinageCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 13829  type FixedIncrementCoinageCallerRaw struct {
 13830  	Contract *FixedIncrementCoinageCaller // Generic read-only contract binding to access the raw methods on
 13831  }
 13832  
 13833  // FixedIncrementCoinageTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 13834  type FixedIncrementCoinageTransactorRaw struct {
 13835  	Contract *FixedIncrementCoinageTransactor // Generic write-only contract binding to access the raw methods on
 13836  }
 13837  
 13838  // NewFixedIncrementCoinage creates a new instance of FixedIncrementCoinage, bound to a specific deployed contract.
 13839  func NewFixedIncrementCoinage(address common.Address, backend bind.ContractBackend) (*FixedIncrementCoinage, error) {
 13840  	contract, err := bindFixedIncrementCoinage(address, backend, backend, backend)
 13841  	if err != nil {
 13842  		return nil, err
 13843  	}
 13844  	return &FixedIncrementCoinage{FixedIncrementCoinageCaller: FixedIncrementCoinageCaller{contract: contract}, FixedIncrementCoinageTransactor: FixedIncrementCoinageTransactor{contract: contract}, FixedIncrementCoinageFilterer: FixedIncrementCoinageFilterer{contract: contract}}, nil
 13845  }
 13846  
 13847  // NewFixedIncrementCoinageCaller creates a new read-only instance of FixedIncrementCoinage, bound to a specific deployed contract.
 13848  func NewFixedIncrementCoinageCaller(address common.Address, caller bind.ContractCaller) (*FixedIncrementCoinageCaller, error) {
 13849  	contract, err := bindFixedIncrementCoinage(address, caller, nil, nil)
 13850  	if err != nil {
 13851  		return nil, err
 13852  	}
 13853  	return &FixedIncrementCoinageCaller{contract: contract}, nil
 13854  }
 13855  
 13856  // NewFixedIncrementCoinageTransactor creates a new write-only instance of FixedIncrementCoinage, bound to a specific deployed contract.
 13857  func NewFixedIncrementCoinageTransactor(address common.Address, transactor bind.ContractTransactor) (*FixedIncrementCoinageTransactor, error) {
 13858  	contract, err := bindFixedIncrementCoinage(address, nil, transactor, nil)
 13859  	if err != nil {
 13860  		return nil, err
 13861  	}
 13862  	return &FixedIncrementCoinageTransactor{contract: contract}, nil
 13863  }
 13864  
 13865  // NewFixedIncrementCoinageFilterer creates a new log filterer instance of FixedIncrementCoinage, bound to a specific deployed contract.
 13866  func NewFixedIncrementCoinageFilterer(address common.Address, filterer bind.ContractFilterer) (*FixedIncrementCoinageFilterer, error) {
 13867  	contract, err := bindFixedIncrementCoinage(address, nil, nil, filterer)
 13868  	if err != nil {
 13869  		return nil, err
 13870  	}
 13871  	return &FixedIncrementCoinageFilterer{contract: contract}, nil
 13872  }
 13873  
 13874  // bindFixedIncrementCoinage binds a generic wrapper to an already deployed contract.
 13875  func bindFixedIncrementCoinage(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 13876  	parsed, err := abi.JSON(strings.NewReader(FixedIncrementCoinageABI))
 13877  	if err != nil {
 13878  		return nil, err
 13879  	}
 13880  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 13881  }
 13882  
 13883  // Call invokes the (constant) contract method with params as input values and
 13884  // sets the output to result. The result type might be a single field for simple
 13885  // returns, a slice of interfaces for anonymous returns and a struct for named
 13886  // returns.
 13887  func (_FixedIncrementCoinage *FixedIncrementCoinageRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 13888  	return _FixedIncrementCoinage.Contract.FixedIncrementCoinageCaller.contract.Call(opts, result, method, params...)
 13889  }
 13890  
 13891  // Transfer initiates a plain transaction to move funds to the contract, calling
 13892  // its default method if one is available.
 13893  func (_FixedIncrementCoinage *FixedIncrementCoinageRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13894  	return _FixedIncrementCoinage.Contract.FixedIncrementCoinageTransactor.contract.Transfer(opts)
 13895  }
 13896  
 13897  // Transact invokes the (paid) contract method with params as input values.
 13898  func (_FixedIncrementCoinage *FixedIncrementCoinageRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13899  	return _FixedIncrementCoinage.Contract.FixedIncrementCoinageTransactor.contract.Transact(opts, method, params...)
 13900  }
 13901  
 13902  // Call invokes the (constant) contract method with params as input values and
 13903  // sets the output to result. The result type might be a single field for simple
 13904  // returns, a slice of interfaces for anonymous returns and a struct for named
 13905  // returns.
 13906  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 13907  	return _FixedIncrementCoinage.Contract.contract.Call(opts, result, method, params...)
 13908  }
 13909  
 13910  // Transfer initiates a plain transaction to move funds to the contract, calling
 13911  // its default method if one is available.
 13912  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13913  	return _FixedIncrementCoinage.Contract.contract.Transfer(opts)
 13914  }
 13915  
 13916  // Transact invokes the (paid) contract method with params as input values.
 13917  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13918  	return _FixedIncrementCoinage.Contract.contract.Transact(opts, method, params...)
 13919  }
 13920  
 13921  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 13922  //
 13923  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 13924  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 13925  	var (
 13926  		ret0 = new(*big.Int)
 13927  	)
 13928  	out := ret0
 13929  	err := _FixedIncrementCoinage.contract.Call(opts, out, "allowance", owner, spender)
 13930  	return *ret0, err
 13931  }
 13932  
 13933  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 13934  //
 13935  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 13936  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 13937  	return _FixedIncrementCoinage.Contract.Allowance(&_FixedIncrementCoinage.CallOpts, owner, spender)
 13938  }
 13939  
 13940  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 13941  //
 13942  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 13943  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 13944  	return _FixedIncrementCoinage.Contract.Allowance(&_FixedIncrementCoinage.CallOpts, owner, spender)
 13945  }
 13946  
 13947  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13948  //
 13949  // Solidity: function balanceOf(address account) constant returns(uint256)
 13950  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 13951  	var (
 13952  		ret0 = new(*big.Int)
 13953  	)
 13954  	out := ret0
 13955  	err := _FixedIncrementCoinage.contract.Call(opts, out, "balanceOf", account)
 13956  	return *ret0, err
 13957  }
 13958  
 13959  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13960  //
 13961  // Solidity: function balanceOf(address account) constant returns(uint256)
 13962  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) BalanceOf(account common.Address) (*big.Int, error) {
 13963  	return _FixedIncrementCoinage.Contract.BalanceOf(&_FixedIncrementCoinage.CallOpts, account)
 13964  }
 13965  
 13966  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13967  //
 13968  // Solidity: function balanceOf(address account) constant returns(uint256)
 13969  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 13970  	return _FixedIncrementCoinage.Contract.BalanceOf(&_FixedIncrementCoinage.CallOpts, account)
 13971  }
 13972  
 13973  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 13974  //
 13975  // Solidity: function decimals() constant returns(uint8)
 13976  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
 13977  	var (
 13978  		ret0 = new(uint8)
 13979  	)
 13980  	out := ret0
 13981  	err := _FixedIncrementCoinage.contract.Call(opts, out, "decimals")
 13982  	return *ret0, err
 13983  }
 13984  
 13985  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 13986  //
 13987  // Solidity: function decimals() constant returns(uint8)
 13988  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Decimals() (uint8, error) {
 13989  	return _FixedIncrementCoinage.Contract.Decimals(&_FixedIncrementCoinage.CallOpts)
 13990  }
 13991  
 13992  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 13993  //
 13994  // Solidity: function decimals() constant returns(uint8)
 13995  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) Decimals() (uint8, error) {
 13996  	return _FixedIncrementCoinage.Contract.Decimals(&_FixedIncrementCoinage.CallOpts)
 13997  }
 13998  
 13999  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
 14000  //
 14001  // Solidity: function factor() constant returns(uint256)
 14002  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
 14003  	var (
 14004  		ret0 = new(*big.Int)
 14005  	)
 14006  	out := ret0
 14007  	err := _FixedIncrementCoinage.contract.Call(opts, out, "factor")
 14008  	return *ret0, err
 14009  }
 14010  
 14011  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
 14012  //
 14013  // Solidity: function factor() constant returns(uint256)
 14014  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Factor() (*big.Int, error) {
 14015  	return _FixedIncrementCoinage.Contract.Factor(&_FixedIncrementCoinage.CallOpts)
 14016  }
 14017  
 14018  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
 14019  //
 14020  // Solidity: function factor() constant returns(uint256)
 14021  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) Factor() (*big.Int, error) {
 14022  	return _FixedIncrementCoinage.Contract.Factor(&_FixedIncrementCoinage.CallOpts)
 14023  }
 14024  
 14025  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
 14026  //
 14027  // Solidity: function factorIncrement() constant returns(uint256)
 14028  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
 14029  	var (
 14030  		ret0 = new(*big.Int)
 14031  	)
 14032  	out := ret0
 14033  	err := _FixedIncrementCoinage.contract.Call(opts, out, "factorIncrement")
 14034  	return *ret0, err
 14035  }
 14036  
 14037  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
 14038  //
 14039  // Solidity: function factorIncrement() constant returns(uint256)
 14040  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) FactorIncrement() (*big.Int, error) {
 14041  	return _FixedIncrementCoinage.Contract.FactorIncrement(&_FixedIncrementCoinage.CallOpts)
 14042  }
 14043  
 14044  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
 14045  //
 14046  // Solidity: function factorIncrement() constant returns(uint256)
 14047  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) FactorIncrement() (*big.Int, error) {
 14048  	return _FixedIncrementCoinage.Contract.FactorIncrement(&_FixedIncrementCoinage.CallOpts)
 14049  }
 14050  
 14051  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 14052  //
 14053  // Solidity: function isOwner() constant returns(bool)
 14054  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 14055  	var (
 14056  		ret0 = new(bool)
 14057  	)
 14058  	out := ret0
 14059  	err := _FixedIncrementCoinage.contract.Call(opts, out, "isOwner")
 14060  	return *ret0, err
 14061  }
 14062  
 14063  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 14064  //
 14065  // Solidity: function isOwner() constant returns(bool)
 14066  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) IsOwner() (bool, error) {
 14067  	return _FixedIncrementCoinage.Contract.IsOwner(&_FixedIncrementCoinage.CallOpts)
 14068  }
 14069  
 14070  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 14071  //
 14072  // Solidity: function isOwner() constant returns(bool)
 14073  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) IsOwner() (bool, error) {
 14074  	return _FixedIncrementCoinage.Contract.IsOwner(&_FixedIncrementCoinage.CallOpts)
 14075  }
 14076  
 14077  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
 14078  //
 14079  // Solidity: function lastBlock() constant returns(uint256)
 14080  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) LastBlock(opts *bind.CallOpts) (*big.Int, error) {
 14081  	var (
 14082  		ret0 = new(*big.Int)
 14083  	)
 14084  	out := ret0
 14085  	err := _FixedIncrementCoinage.contract.Call(opts, out, "lastBlock")
 14086  	return *ret0, err
 14087  }
 14088  
 14089  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
 14090  //
 14091  // Solidity: function lastBlock() constant returns(uint256)
 14092  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) LastBlock() (*big.Int, error) {
 14093  	return _FixedIncrementCoinage.Contract.LastBlock(&_FixedIncrementCoinage.CallOpts)
 14094  }
 14095  
 14096  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
 14097  //
 14098  // Solidity: function lastBlock() constant returns(uint256)
 14099  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) LastBlock() (*big.Int, error) {
 14100  	return _FixedIncrementCoinage.Contract.LastBlock(&_FixedIncrementCoinage.CallOpts)
 14101  }
 14102  
 14103  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 14104  //
 14105  // Solidity: function name() constant returns(string)
 14106  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) Name(opts *bind.CallOpts) (string, error) {
 14107  	var (
 14108  		ret0 = new(string)
 14109  	)
 14110  	out := ret0
 14111  	err := _FixedIncrementCoinage.contract.Call(opts, out, "name")
 14112  	return *ret0, err
 14113  }
 14114  
 14115  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 14116  //
 14117  // Solidity: function name() constant returns(string)
 14118  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Name() (string, error) {
 14119  	return _FixedIncrementCoinage.Contract.Name(&_FixedIncrementCoinage.CallOpts)
 14120  }
 14121  
 14122  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 14123  //
 14124  // Solidity: function name() constant returns(string)
 14125  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) Name() (string, error) {
 14126  	return _FixedIncrementCoinage.Contract.Name(&_FixedIncrementCoinage.CallOpts)
 14127  }
 14128  
 14129  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 14130  //
 14131  // Solidity: function owner() constant returns(address)
 14132  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 14133  	var (
 14134  		ret0 = new(common.Address)
 14135  	)
 14136  	out := ret0
 14137  	err := _FixedIncrementCoinage.contract.Call(opts, out, "owner")
 14138  	return *ret0, err
 14139  }
 14140  
 14141  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 14142  //
 14143  // Solidity: function owner() constant returns(address)
 14144  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Owner() (common.Address, error) {
 14145  	return _FixedIncrementCoinage.Contract.Owner(&_FixedIncrementCoinage.CallOpts)
 14146  }
 14147  
 14148  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 14149  //
 14150  // Solidity: function owner() constant returns(address)
 14151  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) Owner() (common.Address, error) {
 14152  	return _FixedIncrementCoinage.Contract.Owner(&_FixedIncrementCoinage.CallOpts)
 14153  }
 14154  
 14155  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 14156  //
 14157  // Solidity: function seigPerBlock() constant returns(uint256)
 14158  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) SeigPerBlock(opts *bind.CallOpts) (*big.Int, error) {
 14159  	var (
 14160  		ret0 = new(*big.Int)
 14161  	)
 14162  	out := ret0
 14163  	err := _FixedIncrementCoinage.contract.Call(opts, out, "seigPerBlock")
 14164  	return *ret0, err
 14165  }
 14166  
 14167  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 14168  //
 14169  // Solidity: function seigPerBlock() constant returns(uint256)
 14170  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) SeigPerBlock() (*big.Int, error) {
 14171  	return _FixedIncrementCoinage.Contract.SeigPerBlock(&_FixedIncrementCoinage.CallOpts)
 14172  }
 14173  
 14174  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 14175  //
 14176  // Solidity: function seigPerBlock() constant returns(uint256)
 14177  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) SeigPerBlock() (*big.Int, error) {
 14178  	return _FixedIncrementCoinage.Contract.SeigPerBlock(&_FixedIncrementCoinage.CallOpts)
 14179  }
 14180  
 14181  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 14182  //
 14183  // Solidity: function symbol() constant returns(string)
 14184  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) Symbol(opts *bind.CallOpts) (string, error) {
 14185  	var (
 14186  		ret0 = new(string)
 14187  	)
 14188  	out := ret0
 14189  	err := _FixedIncrementCoinage.contract.Call(opts, out, "symbol")
 14190  	return *ret0, err
 14191  }
 14192  
 14193  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 14194  //
 14195  // Solidity: function symbol() constant returns(string)
 14196  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Symbol() (string, error) {
 14197  	return _FixedIncrementCoinage.Contract.Symbol(&_FixedIncrementCoinage.CallOpts)
 14198  }
 14199  
 14200  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 14201  //
 14202  // Solidity: function symbol() constant returns(string)
 14203  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) Symbol() (string, error) {
 14204  	return _FixedIncrementCoinage.Contract.Symbol(&_FixedIncrementCoinage.CallOpts)
 14205  }
 14206  
 14207  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 14208  //
 14209  // Solidity: function totalSupply() constant returns(uint256)
 14210  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 14211  	var (
 14212  		ret0 = new(*big.Int)
 14213  	)
 14214  	out := ret0
 14215  	err := _FixedIncrementCoinage.contract.Call(opts, out, "totalSupply")
 14216  	return *ret0, err
 14217  }
 14218  
 14219  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 14220  //
 14221  // Solidity: function totalSupply() constant returns(uint256)
 14222  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) TotalSupply() (*big.Int, error) {
 14223  	return _FixedIncrementCoinage.Contract.TotalSupply(&_FixedIncrementCoinage.CallOpts)
 14224  }
 14225  
 14226  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 14227  //
 14228  // Solidity: function totalSupply() constant returns(uint256)
 14229  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) TotalSupply() (*big.Int, error) {
 14230  	return _FixedIncrementCoinage.Contract.TotalSupply(&_FixedIncrementCoinage.CallOpts)
 14231  }
 14232  
 14233  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 14234  //
 14235  // Solidity: function transfersEnabled() constant returns(bool)
 14236  func (_FixedIncrementCoinage *FixedIncrementCoinageCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
 14237  	var (
 14238  		ret0 = new(bool)
 14239  	)
 14240  	out := ret0
 14241  	err := _FixedIncrementCoinage.contract.Call(opts, out, "transfersEnabled")
 14242  	return *ret0, err
 14243  }
 14244  
 14245  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 14246  //
 14247  // Solidity: function transfersEnabled() constant returns(bool)
 14248  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) TransfersEnabled() (bool, error) {
 14249  	return _FixedIncrementCoinage.Contract.TransfersEnabled(&_FixedIncrementCoinage.CallOpts)
 14250  }
 14251  
 14252  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 14253  //
 14254  // Solidity: function transfersEnabled() constant returns(bool)
 14255  func (_FixedIncrementCoinage *FixedIncrementCoinageCallerSession) TransfersEnabled() (bool, error) {
 14256  	return _FixedIncrementCoinage.Contract.TransfersEnabled(&_FixedIncrementCoinage.CallOpts)
 14257  }
 14258  
 14259  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14260  //
 14261  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 14262  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 14263  	return _FixedIncrementCoinage.contract.Transact(opts, "approve", spender, amount)
 14264  }
 14265  
 14266  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14267  //
 14268  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 14269  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 14270  	return _FixedIncrementCoinage.Contract.Approve(&_FixedIncrementCoinage.TransactOpts, spender, amount)
 14271  }
 14272  
 14273  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14274  //
 14275  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 14276  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 14277  	return _FixedIncrementCoinage.Contract.Approve(&_FixedIncrementCoinage.TransactOpts, spender, amount)
 14278  }
 14279  
 14280  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 14281  //
 14282  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 14283  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 14284  	return _FixedIncrementCoinage.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 14285  }
 14286  
 14287  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 14288  //
 14289  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 14290  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 14291  	return _FixedIncrementCoinage.Contract.DecreaseAllowance(&_FixedIncrementCoinage.TransactOpts, spender, subtractedValue)
 14292  }
 14293  
 14294  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 14295  //
 14296  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 14297  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 14298  	return _FixedIncrementCoinage.Contract.DecreaseAllowance(&_FixedIncrementCoinage.TransactOpts, spender, subtractedValue)
 14299  }
 14300  
 14301  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 14302  //
 14303  // Solidity: function enableTransfers(bool v) returns()
 14304  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) EnableTransfers(opts *bind.TransactOpts, v bool) (*types.Transaction, error) {
 14305  	return _FixedIncrementCoinage.contract.Transact(opts, "enableTransfers", v)
 14306  }
 14307  
 14308  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 14309  //
 14310  // Solidity: function enableTransfers(bool v) returns()
 14311  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) EnableTransfers(v bool) (*types.Transaction, error) {
 14312  	return _FixedIncrementCoinage.Contract.EnableTransfers(&_FixedIncrementCoinage.TransactOpts, v)
 14313  }
 14314  
 14315  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 14316  //
 14317  // Solidity: function enableTransfers(bool v) returns()
 14318  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) EnableTransfers(v bool) (*types.Transaction, error) {
 14319  	return _FixedIncrementCoinage.Contract.EnableTransfers(&_FixedIncrementCoinage.TransactOpts, v)
 14320  }
 14321  
 14322  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 14323  //
 14324  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 14325  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 14326  	return _FixedIncrementCoinage.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 14327  }
 14328  
 14329  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 14330  //
 14331  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 14332  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 14333  	return _FixedIncrementCoinage.Contract.IncreaseAllowance(&_FixedIncrementCoinage.TransactOpts, spender, addedValue)
 14334  }
 14335  
 14336  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 14337  //
 14338  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 14339  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 14340  	return _FixedIncrementCoinage.Contract.IncreaseAllowance(&_FixedIncrementCoinage.TransactOpts, spender, addedValue)
 14341  }
 14342  
 14343  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 14344  //
 14345  // Solidity: function renounceOwnership() returns()
 14346  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 14347  	return _FixedIncrementCoinage.contract.Transact(opts, "renounceOwnership")
 14348  }
 14349  
 14350  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 14351  //
 14352  // Solidity: function renounceOwnership() returns()
 14353  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) RenounceOwnership() (*types.Transaction, error) {
 14354  	return _FixedIncrementCoinage.Contract.RenounceOwnership(&_FixedIncrementCoinage.TransactOpts)
 14355  }
 14356  
 14357  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 14358  //
 14359  // Solidity: function renounceOwnership() returns()
 14360  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 14361  	return _FixedIncrementCoinage.Contract.RenounceOwnership(&_FixedIncrementCoinage.TransactOpts)
 14362  }
 14363  
 14364  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 14365  //
 14366  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 14367  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 14368  	return _FixedIncrementCoinage.contract.Transact(opts, "transfer", recipient, amount)
 14369  }
 14370  
 14371  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 14372  //
 14373  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 14374  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 14375  	return _FixedIncrementCoinage.Contract.Transfer(&_FixedIncrementCoinage.TransactOpts, recipient, amount)
 14376  }
 14377  
 14378  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 14379  //
 14380  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 14381  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 14382  	return _FixedIncrementCoinage.Contract.Transfer(&_FixedIncrementCoinage.TransactOpts, recipient, amount)
 14383  }
 14384  
 14385  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14386  //
 14387  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 14388  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 14389  	return _FixedIncrementCoinage.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 14390  }
 14391  
 14392  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14393  //
 14394  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 14395  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 14396  	return _FixedIncrementCoinage.Contract.TransferFrom(&_FixedIncrementCoinage.TransactOpts, sender, recipient, amount)
 14397  }
 14398  
 14399  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14400  //
 14401  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 14402  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 14403  	return _FixedIncrementCoinage.Contract.TransferFrom(&_FixedIncrementCoinage.TransactOpts, sender, recipient, amount)
 14404  }
 14405  
 14406  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 14407  //
 14408  // Solidity: function transferOwnership(address newOwner) returns()
 14409  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 14410  	return _FixedIncrementCoinage.contract.Transact(opts, "transferOwnership", newOwner)
 14411  }
 14412  
 14413  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 14414  //
 14415  // Solidity: function transferOwnership(address newOwner) returns()
 14416  func (_FixedIncrementCoinage *FixedIncrementCoinageSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 14417  	return _FixedIncrementCoinage.Contract.TransferOwnership(&_FixedIncrementCoinage.TransactOpts, newOwner)
 14418  }
 14419  
 14420  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 14421  //
 14422  // Solidity: function transferOwnership(address newOwner) returns()
 14423  func (_FixedIncrementCoinage *FixedIncrementCoinageTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 14424  	return _FixedIncrementCoinage.Contract.TransferOwnership(&_FixedIncrementCoinage.TransactOpts, newOwner)
 14425  }
 14426  
 14427  // FixedIncrementCoinageApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the FixedIncrementCoinage contract.
 14428  type FixedIncrementCoinageApprovalIterator struct {
 14429  	Event *FixedIncrementCoinageApproval // Event containing the contract specifics and raw log
 14430  
 14431  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14432  	event    string              // Event name to use for unpacking event data
 14433  
 14434  	logs chan types.Log        // Log channel receiving the found contract events
 14435  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14436  	done bool                  // Whether the subscription completed delivering logs
 14437  	fail error                 // Occurred error to stop iteration
 14438  }
 14439  
 14440  // Next advances the iterator to the subsequent event, returning whether there
 14441  // are any more events found. In case of a retrieval or parsing error, false is
 14442  // returned and Error() can be queried for the exact failure.
 14443  func (it *FixedIncrementCoinageApprovalIterator) Next() bool {
 14444  	// If the iterator failed, stop iterating
 14445  	if it.fail != nil {
 14446  		return false
 14447  	}
 14448  	// If the iterator completed, deliver directly whatever's available
 14449  	if it.done {
 14450  		select {
 14451  		case log := <-it.logs:
 14452  			it.Event = new(FixedIncrementCoinageApproval)
 14453  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14454  				it.fail = err
 14455  				return false
 14456  			}
 14457  			it.Event.Raw = log
 14458  			return true
 14459  
 14460  		default:
 14461  			return false
 14462  		}
 14463  	}
 14464  	// Iterator still in progress, wait for either a data or an error event
 14465  	select {
 14466  	case log := <-it.logs:
 14467  		it.Event = new(FixedIncrementCoinageApproval)
 14468  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14469  			it.fail = err
 14470  			return false
 14471  		}
 14472  		it.Event.Raw = log
 14473  		return true
 14474  
 14475  	case err := <-it.sub.Err():
 14476  		it.done = true
 14477  		it.fail = err
 14478  		return it.Next()
 14479  	}
 14480  }
 14481  
 14482  // Error returns any retrieval or parsing error occurred during filtering.
 14483  func (it *FixedIncrementCoinageApprovalIterator) Error() error {
 14484  	return it.fail
 14485  }
 14486  
 14487  // Close terminates the iteration process, releasing any pending underlying
 14488  // resources.
 14489  func (it *FixedIncrementCoinageApprovalIterator) Close() error {
 14490  	it.sub.Unsubscribe()
 14491  	return nil
 14492  }
 14493  
 14494  // FixedIncrementCoinageApproval represents a Approval event raised by the FixedIncrementCoinage contract.
 14495  type FixedIncrementCoinageApproval struct {
 14496  	Owner   common.Address
 14497  	Spender common.Address
 14498  	Value   *big.Int
 14499  	Raw     types.Log // Blockchain specific contextual infos
 14500  }
 14501  
 14502  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14503  //
 14504  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 14505  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*FixedIncrementCoinageApprovalIterator, error) {
 14506  
 14507  	var ownerRule []interface{}
 14508  	for _, ownerItem := range owner {
 14509  		ownerRule = append(ownerRule, ownerItem)
 14510  	}
 14511  	var spenderRule []interface{}
 14512  	for _, spenderItem := range spender {
 14513  		spenderRule = append(spenderRule, spenderItem)
 14514  	}
 14515  
 14516  	logs, sub, err := _FixedIncrementCoinage.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 14517  	if err != nil {
 14518  		return nil, err
 14519  	}
 14520  	return &FixedIncrementCoinageApprovalIterator{contract: _FixedIncrementCoinage.contract, event: "Approval", logs: logs, sub: sub}, nil
 14521  }
 14522  
 14523  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14524  //
 14525  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 14526  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 14527  
 14528  	var ownerRule []interface{}
 14529  	for _, ownerItem := range owner {
 14530  		ownerRule = append(ownerRule, ownerItem)
 14531  	}
 14532  	var spenderRule []interface{}
 14533  	for _, spenderItem := range spender {
 14534  		spenderRule = append(spenderRule, spenderItem)
 14535  	}
 14536  
 14537  	logs, sub, err := _FixedIncrementCoinage.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 14538  	if err != nil {
 14539  		return nil, err
 14540  	}
 14541  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14542  		defer sub.Unsubscribe()
 14543  		for {
 14544  			select {
 14545  			case log := <-logs:
 14546  				// New log arrived, parse the event and forward to the user
 14547  				event := new(FixedIncrementCoinageApproval)
 14548  				if err := _FixedIncrementCoinage.contract.UnpackLog(event, "Approval", log); err != nil {
 14549  					return err
 14550  				}
 14551  				event.Raw = log
 14552  
 14553  				select {
 14554  				case sink <- event:
 14555  				case err := <-sub.Err():
 14556  					return err
 14557  				case <-quit:
 14558  					return nil
 14559  				}
 14560  			case err := <-sub.Err():
 14561  				return err
 14562  			case <-quit:
 14563  				return nil
 14564  			}
 14565  		}
 14566  	}), nil
 14567  }
 14568  
 14569  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14570  //
 14571  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 14572  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) ParseApproval(log types.Log) (*FixedIncrementCoinageApproval, error) {
 14573  	event := new(FixedIncrementCoinageApproval)
 14574  	if err := _FixedIncrementCoinage.contract.UnpackLog(event, "Approval", log); err != nil {
 14575  		return nil, err
 14576  	}
 14577  	return event, nil
 14578  }
 14579  
 14580  // FixedIncrementCoinageFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the FixedIncrementCoinage contract.
 14581  type FixedIncrementCoinageFactorIncreasedIterator struct {
 14582  	Event *FixedIncrementCoinageFactorIncreased // Event containing the contract specifics and raw log
 14583  
 14584  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14585  	event    string              // Event name to use for unpacking event data
 14586  
 14587  	logs chan types.Log        // Log channel receiving the found contract events
 14588  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14589  	done bool                  // Whether the subscription completed delivering logs
 14590  	fail error                 // Occurred error to stop iteration
 14591  }
 14592  
 14593  // Next advances the iterator to the subsequent event, returning whether there
 14594  // are any more events found. In case of a retrieval or parsing error, false is
 14595  // returned and Error() can be queried for the exact failure.
 14596  func (it *FixedIncrementCoinageFactorIncreasedIterator) Next() bool {
 14597  	// If the iterator failed, stop iterating
 14598  	if it.fail != nil {
 14599  		return false
 14600  	}
 14601  	// If the iterator completed, deliver directly whatever's available
 14602  	if it.done {
 14603  		select {
 14604  		case log := <-it.logs:
 14605  			it.Event = new(FixedIncrementCoinageFactorIncreased)
 14606  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14607  				it.fail = err
 14608  				return false
 14609  			}
 14610  			it.Event.Raw = log
 14611  			return true
 14612  
 14613  		default:
 14614  			return false
 14615  		}
 14616  	}
 14617  	// Iterator still in progress, wait for either a data or an error event
 14618  	select {
 14619  	case log := <-it.logs:
 14620  		it.Event = new(FixedIncrementCoinageFactorIncreased)
 14621  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14622  			it.fail = err
 14623  			return false
 14624  		}
 14625  		it.Event.Raw = log
 14626  		return true
 14627  
 14628  	case err := <-it.sub.Err():
 14629  		it.done = true
 14630  		it.fail = err
 14631  		return it.Next()
 14632  	}
 14633  }
 14634  
 14635  // Error returns any retrieval or parsing error occurred during filtering.
 14636  func (it *FixedIncrementCoinageFactorIncreasedIterator) Error() error {
 14637  	return it.fail
 14638  }
 14639  
 14640  // Close terminates the iteration process, releasing any pending underlying
 14641  // resources.
 14642  func (it *FixedIncrementCoinageFactorIncreasedIterator) Close() error {
 14643  	it.sub.Unsubscribe()
 14644  	return nil
 14645  }
 14646  
 14647  // FixedIncrementCoinageFactorIncreased represents a FactorIncreased event raised by the FixedIncrementCoinage contract.
 14648  type FixedIncrementCoinageFactorIncreased struct {
 14649  	Factor *big.Int
 14650  	Raw    types.Log // Blockchain specific contextual infos
 14651  }
 14652  
 14653  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
 14654  //
 14655  // Solidity: event FactorIncreased(uint256 factor)
 14656  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*FixedIncrementCoinageFactorIncreasedIterator, error) {
 14657  
 14658  	logs, sub, err := _FixedIncrementCoinage.contract.FilterLogs(opts, "FactorIncreased")
 14659  	if err != nil {
 14660  		return nil, err
 14661  	}
 14662  	return &FixedIncrementCoinageFactorIncreasedIterator{contract: _FixedIncrementCoinage.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
 14663  }
 14664  
 14665  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
 14666  //
 14667  // Solidity: event FactorIncreased(uint256 factor)
 14668  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageFactorIncreased) (event.Subscription, error) {
 14669  
 14670  	logs, sub, err := _FixedIncrementCoinage.contract.WatchLogs(opts, "FactorIncreased")
 14671  	if err != nil {
 14672  		return nil, err
 14673  	}
 14674  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14675  		defer sub.Unsubscribe()
 14676  		for {
 14677  			select {
 14678  			case log := <-logs:
 14679  				// New log arrived, parse the event and forward to the user
 14680  				event := new(FixedIncrementCoinageFactorIncreased)
 14681  				if err := _FixedIncrementCoinage.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
 14682  					return err
 14683  				}
 14684  				event.Raw = log
 14685  
 14686  				select {
 14687  				case sink <- event:
 14688  				case err := <-sub.Err():
 14689  					return err
 14690  				case <-quit:
 14691  					return nil
 14692  				}
 14693  			case err := <-sub.Err():
 14694  				return err
 14695  			case <-quit:
 14696  				return nil
 14697  			}
 14698  		}
 14699  	}), nil
 14700  }
 14701  
 14702  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
 14703  //
 14704  // Solidity: event FactorIncreased(uint256 factor)
 14705  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) ParseFactorIncreased(log types.Log) (*FixedIncrementCoinageFactorIncreased, error) {
 14706  	event := new(FixedIncrementCoinageFactorIncreased)
 14707  	if err := _FixedIncrementCoinage.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
 14708  		return nil, err
 14709  	}
 14710  	return event, nil
 14711  }
 14712  
 14713  // FixedIncrementCoinageOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the FixedIncrementCoinage contract.
 14714  type FixedIncrementCoinageOwnershipTransferredIterator struct {
 14715  	Event *FixedIncrementCoinageOwnershipTransferred // Event containing the contract specifics and raw log
 14716  
 14717  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14718  	event    string              // Event name to use for unpacking event data
 14719  
 14720  	logs chan types.Log        // Log channel receiving the found contract events
 14721  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14722  	done bool                  // Whether the subscription completed delivering logs
 14723  	fail error                 // Occurred error to stop iteration
 14724  }
 14725  
 14726  // Next advances the iterator to the subsequent event, returning whether there
 14727  // are any more events found. In case of a retrieval or parsing error, false is
 14728  // returned and Error() can be queried for the exact failure.
 14729  func (it *FixedIncrementCoinageOwnershipTransferredIterator) Next() bool {
 14730  	// If the iterator failed, stop iterating
 14731  	if it.fail != nil {
 14732  		return false
 14733  	}
 14734  	// If the iterator completed, deliver directly whatever's available
 14735  	if it.done {
 14736  		select {
 14737  		case log := <-it.logs:
 14738  			it.Event = new(FixedIncrementCoinageOwnershipTransferred)
 14739  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14740  				it.fail = err
 14741  				return false
 14742  			}
 14743  			it.Event.Raw = log
 14744  			return true
 14745  
 14746  		default:
 14747  			return false
 14748  		}
 14749  	}
 14750  	// Iterator still in progress, wait for either a data or an error event
 14751  	select {
 14752  	case log := <-it.logs:
 14753  		it.Event = new(FixedIncrementCoinageOwnershipTransferred)
 14754  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14755  			it.fail = err
 14756  			return false
 14757  		}
 14758  		it.Event.Raw = log
 14759  		return true
 14760  
 14761  	case err := <-it.sub.Err():
 14762  		it.done = true
 14763  		it.fail = err
 14764  		return it.Next()
 14765  	}
 14766  }
 14767  
 14768  // Error returns any retrieval or parsing error occurred during filtering.
 14769  func (it *FixedIncrementCoinageOwnershipTransferredIterator) Error() error {
 14770  	return it.fail
 14771  }
 14772  
 14773  // Close terminates the iteration process, releasing any pending underlying
 14774  // resources.
 14775  func (it *FixedIncrementCoinageOwnershipTransferredIterator) Close() error {
 14776  	it.sub.Unsubscribe()
 14777  	return nil
 14778  }
 14779  
 14780  // FixedIncrementCoinageOwnershipTransferred represents a OwnershipTransferred event raised by the FixedIncrementCoinage contract.
 14781  type FixedIncrementCoinageOwnershipTransferred struct {
 14782  	PreviousOwner common.Address
 14783  	NewOwner      common.Address
 14784  	Raw           types.Log // Blockchain specific contextual infos
 14785  }
 14786  
 14787  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 14788  //
 14789  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 14790  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*FixedIncrementCoinageOwnershipTransferredIterator, error) {
 14791  
 14792  	var previousOwnerRule []interface{}
 14793  	for _, previousOwnerItem := range previousOwner {
 14794  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 14795  	}
 14796  	var newOwnerRule []interface{}
 14797  	for _, newOwnerItem := range newOwner {
 14798  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 14799  	}
 14800  
 14801  	logs, sub, err := _FixedIncrementCoinage.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 14802  	if err != nil {
 14803  		return nil, err
 14804  	}
 14805  	return &FixedIncrementCoinageOwnershipTransferredIterator{contract: _FixedIncrementCoinage.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 14806  }
 14807  
 14808  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 14809  //
 14810  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 14811  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 14812  
 14813  	var previousOwnerRule []interface{}
 14814  	for _, previousOwnerItem := range previousOwner {
 14815  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 14816  	}
 14817  	var newOwnerRule []interface{}
 14818  	for _, newOwnerItem := range newOwner {
 14819  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 14820  	}
 14821  
 14822  	logs, sub, err := _FixedIncrementCoinage.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 14823  	if err != nil {
 14824  		return nil, err
 14825  	}
 14826  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14827  		defer sub.Unsubscribe()
 14828  		for {
 14829  			select {
 14830  			case log := <-logs:
 14831  				// New log arrived, parse the event and forward to the user
 14832  				event := new(FixedIncrementCoinageOwnershipTransferred)
 14833  				if err := _FixedIncrementCoinage.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 14834  					return err
 14835  				}
 14836  				event.Raw = log
 14837  
 14838  				select {
 14839  				case sink <- event:
 14840  				case err := <-sub.Err():
 14841  					return err
 14842  				case <-quit:
 14843  					return nil
 14844  				}
 14845  			case err := <-sub.Err():
 14846  				return err
 14847  			case <-quit:
 14848  				return nil
 14849  			}
 14850  		}
 14851  	}), nil
 14852  }
 14853  
 14854  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 14855  //
 14856  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 14857  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) ParseOwnershipTransferred(log types.Log) (*FixedIncrementCoinageOwnershipTransferred, error) {
 14858  	event := new(FixedIncrementCoinageOwnershipTransferred)
 14859  	if err := _FixedIncrementCoinage.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 14860  		return nil, err
 14861  	}
 14862  	return event, nil
 14863  }
 14864  
 14865  // FixedIncrementCoinageTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the FixedIncrementCoinage contract.
 14866  type FixedIncrementCoinageTransferIterator struct {
 14867  	Event *FixedIncrementCoinageTransfer // Event containing the contract specifics and raw log
 14868  
 14869  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14870  	event    string              // Event name to use for unpacking event data
 14871  
 14872  	logs chan types.Log        // Log channel receiving the found contract events
 14873  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14874  	done bool                  // Whether the subscription completed delivering logs
 14875  	fail error                 // Occurred error to stop iteration
 14876  }
 14877  
 14878  // Next advances the iterator to the subsequent event, returning whether there
 14879  // are any more events found. In case of a retrieval or parsing error, false is
 14880  // returned and Error() can be queried for the exact failure.
 14881  func (it *FixedIncrementCoinageTransferIterator) Next() bool {
 14882  	// If the iterator failed, stop iterating
 14883  	if it.fail != nil {
 14884  		return false
 14885  	}
 14886  	// If the iterator completed, deliver directly whatever's available
 14887  	if it.done {
 14888  		select {
 14889  		case log := <-it.logs:
 14890  			it.Event = new(FixedIncrementCoinageTransfer)
 14891  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14892  				it.fail = err
 14893  				return false
 14894  			}
 14895  			it.Event.Raw = log
 14896  			return true
 14897  
 14898  		default:
 14899  			return false
 14900  		}
 14901  	}
 14902  	// Iterator still in progress, wait for either a data or an error event
 14903  	select {
 14904  	case log := <-it.logs:
 14905  		it.Event = new(FixedIncrementCoinageTransfer)
 14906  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14907  			it.fail = err
 14908  			return false
 14909  		}
 14910  		it.Event.Raw = log
 14911  		return true
 14912  
 14913  	case err := <-it.sub.Err():
 14914  		it.done = true
 14915  		it.fail = err
 14916  		return it.Next()
 14917  	}
 14918  }
 14919  
 14920  // Error returns any retrieval or parsing error occurred during filtering.
 14921  func (it *FixedIncrementCoinageTransferIterator) Error() error {
 14922  	return it.fail
 14923  }
 14924  
 14925  // Close terminates the iteration process, releasing any pending underlying
 14926  // resources.
 14927  func (it *FixedIncrementCoinageTransferIterator) Close() error {
 14928  	it.sub.Unsubscribe()
 14929  	return nil
 14930  }
 14931  
 14932  // FixedIncrementCoinageTransfer represents a Transfer event raised by the FixedIncrementCoinage contract.
 14933  type FixedIncrementCoinageTransfer struct {
 14934  	From  common.Address
 14935  	To    common.Address
 14936  	Value *big.Int
 14937  	Raw   types.Log // Blockchain specific contextual infos
 14938  }
 14939  
 14940  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 14941  //
 14942  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 14943  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*FixedIncrementCoinageTransferIterator, error) {
 14944  
 14945  	var fromRule []interface{}
 14946  	for _, fromItem := range from {
 14947  		fromRule = append(fromRule, fromItem)
 14948  	}
 14949  	var toRule []interface{}
 14950  	for _, toItem := range to {
 14951  		toRule = append(toRule, toItem)
 14952  	}
 14953  
 14954  	logs, sub, err := _FixedIncrementCoinage.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 14955  	if err != nil {
 14956  		return nil, err
 14957  	}
 14958  	return &FixedIncrementCoinageTransferIterator{contract: _FixedIncrementCoinage.contract, event: "Transfer", logs: logs, sub: sub}, nil
 14959  }
 14960  
 14961  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 14962  //
 14963  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 14964  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 14965  
 14966  	var fromRule []interface{}
 14967  	for _, fromItem := range from {
 14968  		fromRule = append(fromRule, fromItem)
 14969  	}
 14970  	var toRule []interface{}
 14971  	for _, toItem := range to {
 14972  		toRule = append(toRule, toItem)
 14973  	}
 14974  
 14975  	logs, sub, err := _FixedIncrementCoinage.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 14976  	if err != nil {
 14977  		return nil, err
 14978  	}
 14979  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14980  		defer sub.Unsubscribe()
 14981  		for {
 14982  			select {
 14983  			case log := <-logs:
 14984  				// New log arrived, parse the event and forward to the user
 14985  				event := new(FixedIncrementCoinageTransfer)
 14986  				if err := _FixedIncrementCoinage.contract.UnpackLog(event, "Transfer", log); err != nil {
 14987  					return err
 14988  				}
 14989  				event.Raw = log
 14990  
 14991  				select {
 14992  				case sink <- event:
 14993  				case err := <-sub.Err():
 14994  					return err
 14995  				case <-quit:
 14996  					return nil
 14997  				}
 14998  			case err := <-sub.Err():
 14999  				return err
 15000  			case <-quit:
 15001  				return nil
 15002  			}
 15003  		}
 15004  	}), nil
 15005  }
 15006  
 15007  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15008  //
 15009  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 15010  func (_FixedIncrementCoinage *FixedIncrementCoinageFilterer) ParseTransfer(log types.Log) (*FixedIncrementCoinageTransfer, error) {
 15011  	event := new(FixedIncrementCoinageTransfer)
 15012  	if err := _FixedIncrementCoinage.contract.UnpackLog(event, "Transfer", log); err != nil {
 15013  		return nil, err
 15014  	}
 15015  	return event, nil
 15016  }
 15017  
 15018  // FixedIncrementCoinageMockABI is the input ABI used to generate the binding from.
 15019  const FixedIncrementCoinageMockABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"seigPerBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"FactorIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"v\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factorIncrement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigPerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 15020  
 15021  // FixedIncrementCoinageMockFuncSigs maps the 4-byte function signature to its string representation.
 15022  var FixedIncrementCoinageMockFuncSigs = map[string]string{
 15023  	"983b2d56": "addMinter(address)",
 15024  	"dd62ed3e": "allowance(address,address)",
 15025  	"095ea7b3": "approve(address,uint256)",
 15026  	"70a08231": "balanceOf(address)",
 15027  	"42966c68": "burn(uint256)",
 15028  	"79cc6790": "burnFrom(address,uint256)",
 15029  	"313ce567": "decimals()",
 15030  	"a457c2d7": "decreaseAllowance(address,uint256)",
 15031  	"f41e60c5": "enableTransfers(bool)",
 15032  	"54f703f8": "factor()",
 15033  	"d4132ee2": "factorIncrement()",
 15034  	"39509351": "increaseAllowance(address,uint256)",
 15035  	"aa271e1a": "isMinter(address)",
 15036  	"8f32d59b": "isOwner()",
 15037  	"806b984f": "lastBlock()",
 15038  	"40c10f19": "mint(address,uint256)",
 15039  	"06fdde03": "name()",
 15040  	"8da5cb5b": "owner()",
 15041  	"98650275": "renounceMinter()",
 15042  	"715018a6": "renounceOwnership()",
 15043  	"5f40a349": "seigPerBlock()",
 15044  	"95d89b41": "symbol()",
 15045  	"18160ddd": "totalSupply()",
 15046  	"a9059cbb": "transfer(address,uint256)",
 15047  	"23b872dd": "transferFrom(address,address,uint256)",
 15048  	"f2fde38b": "transferOwnership(address)",
 15049  	"bef97c87": "transfersEnabled()",
 15050  }
 15051  
 15052  // FixedIncrementCoinageMockBin is the compiled bytecode used for deploying new contracts.
 15053  var FixedIncrementCoinageMockBin = "0x60806040523480156200001157600080fd5b5060405162001ef938038062001ef9833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208201519082015160609092015190935090915084848484848484846000848484601b620001e8620001d96001600160e01b036200031216565b6001600160e01b036200031716565b620001fb6001600160e01b036200031216565b600480546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a382516200025c90600590602086019062000493565b5081516200027290600690602085019062000493565b506007805460ff90921660ff19928316179055600b959095555050600c9190915543600d55600e805491151591909216179055505081620002ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018062001ea56032913960400191505060405180910390fd5b50600f5550620005359650505050505050565b335b90565b620003328160036200036960201b6200147e1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200037e82826001600160e01b036200041016565b15620003eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001ed76022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004d657805160ff191683800117855562000506565b8280016001018555821562000506579182015b8281111562000506578251825591602001919060010190620004e9565b506200051492915062000518565b5090565b6200031491905b808211156200051457600081556001016200051f565b61196080620005456000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063806b984f116100f9578063a9059cbb11610097578063d4132ee211610071578063d4132ee2146104aa578063dd62ed3e146104b2578063f2fde38b146104e0578063f41e60c514610506576101a9565b8063a9059cbb14610450578063aa271e1a1461047c578063bef97c87146104a2576101a9565b806395d89b41116100d357806395d89b41146103ee578063983b2d56146103f6578063986502751461041c578063a457c2d714610424576101a9565b8063806b984f146103ba5780638da5cb5b146103c25780638f32d59b146103e6576101a9565b806340c10f19116101665780635f40a349116101405780635f40a3491461035857806370a0823114610360578063715018a61461038657806379cc67901461038e576101a9565b806340c10f191461030557806342966c681461033157806354f703f814610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063313ce567146102bb57806339509351146102d9575b600080fd5b6101b6610525565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105bb565b604080519115158252519081900360200190f35b6102736105d9565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b038135811691602081013590911690604001356105eb565b6102c36106dc565b6040805160ff9092168252519081900360200190f35b610257600480360360408110156102ef57600080fd5b506001600160a01b0381351690602001356106e5565b6102576004803603604081101561031b57600080fd5b506001600160a01b038135169060200135610739565b61034e6004803603602081101561034757600080fd5b5035610790565b005b6102736107a4565b6102736107b1565b6102736004803603602081101561037657600080fd5b50356001600160a01b03166107b7565b61034e6107e1565b61034e600480360360408110156103a457600080fd5b506001600160a01b038135169060200135610884565b610273610892565b6103ca610898565b604080516001600160a01b039092168252519081900360200190f35b6102576108a7565b6101b66108cd565b61034e6004803603602081101561040c57600080fd5b50356001600160a01b031661092e565b61034e61097d565b6102576004803603604081101561043a57600080fd5b506001600160a01b03813516906020013561098f565b6102576004803603604081101561046657600080fd5b506001600160a01b0381351690602001356109fd565b6102576004803603602081101561049257600080fd5b50356001600160a01b0316610a75565b610257610a88565b610273610a91565b610273600480360360408110156104c857600080fd5b506001600160a01b0381358116916020013516610a97565b61034e600480360360208110156104f657600080fd5b50356001600160a01b0316610ac2565b61034e6004803603602081101561051c57600080fd5b50351515610b24565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105b15780601f10610586576101008083540402835291602001916105b1565b820191906000526020600020905b81548152906001019060200180831161059457829003601f168201915b5050505050905090565b60006105cf6105c8610b90565b8484610b94565b5060015b92915050565b60006105e6600a54610c88565b905090565b60006105f5610898565b6001600160a01b0316336001600160a01b031614806106165750600e5460ff165b6106515760405162461bcd60e51b815260040180806020018281038252602a815260200180611837602a913960400191505060405180910390fd5b61065c848484610cce565b6106d284610668610b90565b6106cd85604051806060016040528060378152602001611891603791396001600160a01b038a166000908152600960205260408120906106a6610b90565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610e4516565b610b94565b5060019392505050565b60075460ff1690565b60006105cf6106f2610b90565b846106cd8560096000610703610b90565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610edc16565b600061074b610746610b90565b610a75565b6107865760405162461bcd60e51b815260040180806020018281038252603081526020018061172f6030913960400191505060405180910390fd5b6105cf8383610f36565b6107a161079b610b90565b8261102d565b50565b60006105e6600b54610c88565b600f5490565b6001600160a01b0381166000908152600860205260408120546107d990610c88565b90505b919050565b6107e96108a7565b61083a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b61088e828261112f565b5050565b600d5490565b6004546001600160a01b031690565b6004546000906001600160a01b03166108be610b90565b6001600160a01b031614905090565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105b15780601f10610586576101008083540402835291602001916105b1565b610939610746610b90565b6109745760405162461bcd60e51b815260040180806020018281038252603081526020018061172f6030913960400191505060405180910390fd5b6107a181611197565b61098d610988610b90565b6111df565b565b60006105cf61099c610b90565b846106cd8560405180606001604052806034815260200161166360349139600960006109c6610b90565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610e4516565b6000610a07610898565b6001600160a01b0316336001600160a01b03161480610a285750600e5460ff165b610a635760405162461bcd60e51b815260040180806020018281038252602a815260200180611837602a913960400191505060405180910390fd5b6105cf610a6e610b90565b8484610cce565b60006107d960038363ffffffff61122716565b600e5460ff1690565b600c5490565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610aca6108a7565b610b1b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107a18161128e565b610b2c6108a7565b610b7d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600e805460ff1916911515919091179055565b3390565b610b9c61132f565b6001600160a01b038316610be15760405162461bcd60e51b81526004018080602001828103825260338152602001806116cb6033913960400191505060405180910390fd5b6001600160a01b038216610c265760405162461bcd60e51b81526004018080602001828103825260318152602001806116fe6031913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610c97575060006107dc565b600d54430380610cb557610cad83600b54611381565b9150506107dc565b610cc783610cc2836113c2565b611381565b9392505050565b610cd661132f565b6001600160a01b038316610d1b5760405162461bcd60e51b81526004018080602001828103825260348152602001806116976034913960400191505060405180910390fd5b6001600160a01b038216610d605760405162461bcd60e51b81526004018080602001828103825260328152602001806117d06032913960400191505060405180910390fd5b6000610d6b82611420565b9050610db081604051806060016040528060358152602001611802603591396001600160a01b038716600090815260086020526040902054919063ffffffff610e4516565b6001600160a01b038086166000908152600860205260408082209390935590851681522054610de5908263ffffffff610edc16565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e2e8461142e565b60408051918252519081900360200190a350505050565b60008184841115610ed45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e99578181015183820152602001610e81565b50505050905090810190601f168015610ec65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610cc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610f3e61132f565b6001600160a01b038216610f835760405162461bcd60e51b815260040180806020018281038252602e815260200180611780602e913960400191505060405180910390fd5b6000610f8e82611420565b600a54909150610fa4908263ffffffff610edc16565b600a556001600160a01b038316600090815260086020526040902054610fd0908263ffffffff610edc16565b6001600160a01b038416600081815260086020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110178461142e565b60408051918252519081900360200190a3505050565b61103561132f565b6001600160a01b03821661107a5760405162461bcd60e51b81526004018080602001828103825260308152602001806118616030913960400191505060405180910390fd5b600061108582611420565b90506110ca816040518060600160405280603181526020016118c8603191396001600160a01b038616600090815260086020526040902054919063ffffffff610e4516565b6001600160a01b038416600090815260086020526040902055600a546110f6908263ffffffff61143c16565b600a5560006001600160a01b0384167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110178461142e565b61113761132f565b611141828261102d565b6111496108a7565b61088e5761088e82611159610b90565b6106cd846040518060600160405280603381526020016118f9603391396001600160a01b0388166000908152600960205260408120906106a6610b90565b6111a860038263ffffffff61147e16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6111f060038263ffffffff6114ff16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661126e5760405162461bcd60e51b81526004018080602001828103825260228152602001806117ae6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0381166112d35760405162461bcd60e51b815260040180806020018281038252602681526020018061163d6026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600d54430380156107a157611343816113c2565b600b81905543600d5560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce80000006113b361139d8585611566565b60026b033b2e3c9fd0803ce80000005b046115c9565b816113ba57fe5b049392505050565b6000600a54600014156113d85750600b546107dc565b60006113e8600a54600b54611381565b90506000611401826113fc600f5487611566565b6115c9565b9050611418611412600b5483611381565b83611618565b949350505050565b60006107d982600b54611618565b60006107d982600b54611381565b6000610cc783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e45565b6114888282611227565b156114da576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6115098282611227565b6115445760405162461bcd60e51b815260040180806020018281038252602181526020018061175f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008115806115815750508082028282828161157e57fe5b04145b6105d3576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b808201828110156105d3576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b6000816113b3611634856b033b2e3c9fd0803ce8000000611566565b6002856113ad56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654175746f496e6372656d656e74436f696e6167653a206d696e7420746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a206275726e2066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a72315820ae31deb12bef0b1f1de12fbb38946da021d006d66378f2b5d2e993489c15bf3564736f6c634300050c00324669786564496e6372656d656e74436f696e6167653a20736569676e6f72616765206d757374206e6f74206265207a65726f526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373"
 15054  
 15055  // DeployFixedIncrementCoinageMock deploys a new Ethereum contract, binding an instance of FixedIncrementCoinageMock to it.
 15056  func DeployFixedIncrementCoinageMock(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, factor *big.Int, seigPerBlock *big.Int, transfersEnabled bool) (common.Address, *types.Transaction, *FixedIncrementCoinageMock, error) {
 15057  	parsed, err := abi.JSON(strings.NewReader(FixedIncrementCoinageMockABI))
 15058  	if err != nil {
 15059  		return common.Address{}, nil, nil, err
 15060  	}
 15061  
 15062  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(FixedIncrementCoinageMockBin), backend, name, symbol, factor, seigPerBlock, transfersEnabled)
 15063  	if err != nil {
 15064  		return common.Address{}, nil, nil, err
 15065  	}
 15066  	return address, tx, &FixedIncrementCoinageMock{FixedIncrementCoinageMockCaller: FixedIncrementCoinageMockCaller{contract: contract}, FixedIncrementCoinageMockTransactor: FixedIncrementCoinageMockTransactor{contract: contract}, FixedIncrementCoinageMockFilterer: FixedIncrementCoinageMockFilterer{contract: contract}}, nil
 15067  }
 15068  
 15069  // FixedIncrementCoinageMock is an auto generated Go binding around an Ethereum contract.
 15070  type FixedIncrementCoinageMock struct {
 15071  	FixedIncrementCoinageMockCaller     // Read-only binding to the contract
 15072  	FixedIncrementCoinageMockTransactor // Write-only binding to the contract
 15073  	FixedIncrementCoinageMockFilterer   // Log filterer for contract events
 15074  }
 15075  
 15076  // FixedIncrementCoinageMockCaller is an auto generated read-only Go binding around an Ethereum contract.
 15077  type FixedIncrementCoinageMockCaller struct {
 15078  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15079  }
 15080  
 15081  // FixedIncrementCoinageMockTransactor is an auto generated write-only Go binding around an Ethereum contract.
 15082  type FixedIncrementCoinageMockTransactor struct {
 15083  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15084  }
 15085  
 15086  // FixedIncrementCoinageMockFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 15087  type FixedIncrementCoinageMockFilterer struct {
 15088  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15089  }
 15090  
 15091  // FixedIncrementCoinageMockSession is an auto generated Go binding around an Ethereum contract,
 15092  // with pre-set call and transact options.
 15093  type FixedIncrementCoinageMockSession struct {
 15094  	Contract     *FixedIncrementCoinageMock // Generic contract binding to set the session for
 15095  	CallOpts     bind.CallOpts              // Call options to use throughout this session
 15096  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 15097  }
 15098  
 15099  // FixedIncrementCoinageMockCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 15100  // with pre-set call options.
 15101  type FixedIncrementCoinageMockCallerSession struct {
 15102  	Contract *FixedIncrementCoinageMockCaller // Generic contract caller binding to set the session for
 15103  	CallOpts bind.CallOpts                    // Call options to use throughout this session
 15104  }
 15105  
 15106  // FixedIncrementCoinageMockTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 15107  // with pre-set transact options.
 15108  type FixedIncrementCoinageMockTransactorSession struct {
 15109  	Contract     *FixedIncrementCoinageMockTransactor // Generic contract transactor binding to set the session for
 15110  	TransactOpts bind.TransactOpts                    // Transaction auth options to use throughout this session
 15111  }
 15112  
 15113  // FixedIncrementCoinageMockRaw is an auto generated low-level Go binding around an Ethereum contract.
 15114  type FixedIncrementCoinageMockRaw struct {
 15115  	Contract *FixedIncrementCoinageMock // Generic contract binding to access the raw methods on
 15116  }
 15117  
 15118  // FixedIncrementCoinageMockCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 15119  type FixedIncrementCoinageMockCallerRaw struct {
 15120  	Contract *FixedIncrementCoinageMockCaller // Generic read-only contract binding to access the raw methods on
 15121  }
 15122  
 15123  // FixedIncrementCoinageMockTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 15124  type FixedIncrementCoinageMockTransactorRaw struct {
 15125  	Contract *FixedIncrementCoinageMockTransactor // Generic write-only contract binding to access the raw methods on
 15126  }
 15127  
 15128  // NewFixedIncrementCoinageMock creates a new instance of FixedIncrementCoinageMock, bound to a specific deployed contract.
 15129  func NewFixedIncrementCoinageMock(address common.Address, backend bind.ContractBackend) (*FixedIncrementCoinageMock, error) {
 15130  	contract, err := bindFixedIncrementCoinageMock(address, backend, backend, backend)
 15131  	if err != nil {
 15132  		return nil, err
 15133  	}
 15134  	return &FixedIncrementCoinageMock{FixedIncrementCoinageMockCaller: FixedIncrementCoinageMockCaller{contract: contract}, FixedIncrementCoinageMockTransactor: FixedIncrementCoinageMockTransactor{contract: contract}, FixedIncrementCoinageMockFilterer: FixedIncrementCoinageMockFilterer{contract: contract}}, nil
 15135  }
 15136  
 15137  // NewFixedIncrementCoinageMockCaller creates a new read-only instance of FixedIncrementCoinageMock, bound to a specific deployed contract.
 15138  func NewFixedIncrementCoinageMockCaller(address common.Address, caller bind.ContractCaller) (*FixedIncrementCoinageMockCaller, error) {
 15139  	contract, err := bindFixedIncrementCoinageMock(address, caller, nil, nil)
 15140  	if err != nil {
 15141  		return nil, err
 15142  	}
 15143  	return &FixedIncrementCoinageMockCaller{contract: contract}, nil
 15144  }
 15145  
 15146  // NewFixedIncrementCoinageMockTransactor creates a new write-only instance of FixedIncrementCoinageMock, bound to a specific deployed contract.
 15147  func NewFixedIncrementCoinageMockTransactor(address common.Address, transactor bind.ContractTransactor) (*FixedIncrementCoinageMockTransactor, error) {
 15148  	contract, err := bindFixedIncrementCoinageMock(address, nil, transactor, nil)
 15149  	if err != nil {
 15150  		return nil, err
 15151  	}
 15152  	return &FixedIncrementCoinageMockTransactor{contract: contract}, nil
 15153  }
 15154  
 15155  // NewFixedIncrementCoinageMockFilterer creates a new log filterer instance of FixedIncrementCoinageMock, bound to a specific deployed contract.
 15156  func NewFixedIncrementCoinageMockFilterer(address common.Address, filterer bind.ContractFilterer) (*FixedIncrementCoinageMockFilterer, error) {
 15157  	contract, err := bindFixedIncrementCoinageMock(address, nil, nil, filterer)
 15158  	if err != nil {
 15159  		return nil, err
 15160  	}
 15161  	return &FixedIncrementCoinageMockFilterer{contract: contract}, nil
 15162  }
 15163  
 15164  // bindFixedIncrementCoinageMock binds a generic wrapper to an already deployed contract.
 15165  func bindFixedIncrementCoinageMock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 15166  	parsed, err := abi.JSON(strings.NewReader(FixedIncrementCoinageMockABI))
 15167  	if err != nil {
 15168  		return nil, err
 15169  	}
 15170  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 15171  }
 15172  
 15173  // Call invokes the (constant) contract method with params as input values and
 15174  // sets the output to result. The result type might be a single field for simple
 15175  // returns, a slice of interfaces for anonymous returns and a struct for named
 15176  // returns.
 15177  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 15178  	return _FixedIncrementCoinageMock.Contract.FixedIncrementCoinageMockCaller.contract.Call(opts, result, method, params...)
 15179  }
 15180  
 15181  // Transfer initiates a plain transaction to move funds to the contract, calling
 15182  // its default method if one is available.
 15183  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15184  	return _FixedIncrementCoinageMock.Contract.FixedIncrementCoinageMockTransactor.contract.Transfer(opts)
 15185  }
 15186  
 15187  // Transact invokes the (paid) contract method with params as input values.
 15188  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15189  	return _FixedIncrementCoinageMock.Contract.FixedIncrementCoinageMockTransactor.contract.Transact(opts, method, params...)
 15190  }
 15191  
 15192  // Call invokes the (constant) contract method with params as input values and
 15193  // sets the output to result. The result type might be a single field for simple
 15194  // returns, a slice of interfaces for anonymous returns and a struct for named
 15195  // returns.
 15196  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 15197  	return _FixedIncrementCoinageMock.Contract.contract.Call(opts, result, method, params...)
 15198  }
 15199  
 15200  // Transfer initiates a plain transaction to move funds to the contract, calling
 15201  // its default method if one is available.
 15202  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15203  	return _FixedIncrementCoinageMock.Contract.contract.Transfer(opts)
 15204  }
 15205  
 15206  // Transact invokes the (paid) contract method with params as input values.
 15207  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15208  	return _FixedIncrementCoinageMock.Contract.contract.Transact(opts, method, params...)
 15209  }
 15210  
 15211  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 15212  //
 15213  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 15214  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 15215  	var (
 15216  		ret0 = new(*big.Int)
 15217  	)
 15218  	out := ret0
 15219  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "allowance", owner, spender)
 15220  	return *ret0, err
 15221  }
 15222  
 15223  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 15224  //
 15225  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 15226  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 15227  	return _FixedIncrementCoinageMock.Contract.Allowance(&_FixedIncrementCoinageMock.CallOpts, owner, spender)
 15228  }
 15229  
 15230  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 15231  //
 15232  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 15233  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 15234  	return _FixedIncrementCoinageMock.Contract.Allowance(&_FixedIncrementCoinageMock.CallOpts, owner, spender)
 15235  }
 15236  
 15237  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 15238  //
 15239  // Solidity: function balanceOf(address account) constant returns(uint256)
 15240  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 15241  	var (
 15242  		ret0 = new(*big.Int)
 15243  	)
 15244  	out := ret0
 15245  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "balanceOf", account)
 15246  	return *ret0, err
 15247  }
 15248  
 15249  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 15250  //
 15251  // Solidity: function balanceOf(address account) constant returns(uint256)
 15252  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) BalanceOf(account common.Address) (*big.Int, error) {
 15253  	return _FixedIncrementCoinageMock.Contract.BalanceOf(&_FixedIncrementCoinageMock.CallOpts, account)
 15254  }
 15255  
 15256  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 15257  //
 15258  // Solidity: function balanceOf(address account) constant returns(uint256)
 15259  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 15260  	return _FixedIncrementCoinageMock.Contract.BalanceOf(&_FixedIncrementCoinageMock.CallOpts, account)
 15261  }
 15262  
 15263  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 15264  //
 15265  // Solidity: function decimals() constant returns(uint8)
 15266  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
 15267  	var (
 15268  		ret0 = new(uint8)
 15269  	)
 15270  	out := ret0
 15271  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "decimals")
 15272  	return *ret0, err
 15273  }
 15274  
 15275  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 15276  //
 15277  // Solidity: function decimals() constant returns(uint8)
 15278  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Decimals() (uint8, error) {
 15279  	return _FixedIncrementCoinageMock.Contract.Decimals(&_FixedIncrementCoinageMock.CallOpts)
 15280  }
 15281  
 15282  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 15283  //
 15284  // Solidity: function decimals() constant returns(uint8)
 15285  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) Decimals() (uint8, error) {
 15286  	return _FixedIncrementCoinageMock.Contract.Decimals(&_FixedIncrementCoinageMock.CallOpts)
 15287  }
 15288  
 15289  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
 15290  //
 15291  // Solidity: function factor() constant returns(uint256)
 15292  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) Factor(opts *bind.CallOpts) (*big.Int, error) {
 15293  	var (
 15294  		ret0 = new(*big.Int)
 15295  	)
 15296  	out := ret0
 15297  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "factor")
 15298  	return *ret0, err
 15299  }
 15300  
 15301  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
 15302  //
 15303  // Solidity: function factor() constant returns(uint256)
 15304  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Factor() (*big.Int, error) {
 15305  	return _FixedIncrementCoinageMock.Contract.Factor(&_FixedIncrementCoinageMock.CallOpts)
 15306  }
 15307  
 15308  // Factor is a free data retrieval call binding the contract method 0x54f703f8.
 15309  //
 15310  // Solidity: function factor() constant returns(uint256)
 15311  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) Factor() (*big.Int, error) {
 15312  	return _FixedIncrementCoinageMock.Contract.Factor(&_FixedIncrementCoinageMock.CallOpts)
 15313  }
 15314  
 15315  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
 15316  //
 15317  // Solidity: function factorIncrement() constant returns(uint256)
 15318  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) FactorIncrement(opts *bind.CallOpts) (*big.Int, error) {
 15319  	var (
 15320  		ret0 = new(*big.Int)
 15321  	)
 15322  	out := ret0
 15323  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "factorIncrement")
 15324  	return *ret0, err
 15325  }
 15326  
 15327  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
 15328  //
 15329  // Solidity: function factorIncrement() constant returns(uint256)
 15330  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) FactorIncrement() (*big.Int, error) {
 15331  	return _FixedIncrementCoinageMock.Contract.FactorIncrement(&_FixedIncrementCoinageMock.CallOpts)
 15332  }
 15333  
 15334  // FactorIncrement is a free data retrieval call binding the contract method 0xd4132ee2.
 15335  //
 15336  // Solidity: function factorIncrement() constant returns(uint256)
 15337  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) FactorIncrement() (*big.Int, error) {
 15338  	return _FixedIncrementCoinageMock.Contract.FactorIncrement(&_FixedIncrementCoinageMock.CallOpts)
 15339  }
 15340  
 15341  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 15342  //
 15343  // Solidity: function isMinter(address account) constant returns(bool)
 15344  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 15345  	var (
 15346  		ret0 = new(bool)
 15347  	)
 15348  	out := ret0
 15349  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "isMinter", account)
 15350  	return *ret0, err
 15351  }
 15352  
 15353  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 15354  //
 15355  // Solidity: function isMinter(address account) constant returns(bool)
 15356  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) IsMinter(account common.Address) (bool, error) {
 15357  	return _FixedIncrementCoinageMock.Contract.IsMinter(&_FixedIncrementCoinageMock.CallOpts, account)
 15358  }
 15359  
 15360  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 15361  //
 15362  // Solidity: function isMinter(address account) constant returns(bool)
 15363  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) IsMinter(account common.Address) (bool, error) {
 15364  	return _FixedIncrementCoinageMock.Contract.IsMinter(&_FixedIncrementCoinageMock.CallOpts, account)
 15365  }
 15366  
 15367  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 15368  //
 15369  // Solidity: function isOwner() constant returns(bool)
 15370  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 15371  	var (
 15372  		ret0 = new(bool)
 15373  	)
 15374  	out := ret0
 15375  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "isOwner")
 15376  	return *ret0, err
 15377  }
 15378  
 15379  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 15380  //
 15381  // Solidity: function isOwner() constant returns(bool)
 15382  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) IsOwner() (bool, error) {
 15383  	return _FixedIncrementCoinageMock.Contract.IsOwner(&_FixedIncrementCoinageMock.CallOpts)
 15384  }
 15385  
 15386  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 15387  //
 15388  // Solidity: function isOwner() constant returns(bool)
 15389  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) IsOwner() (bool, error) {
 15390  	return _FixedIncrementCoinageMock.Contract.IsOwner(&_FixedIncrementCoinageMock.CallOpts)
 15391  }
 15392  
 15393  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
 15394  //
 15395  // Solidity: function lastBlock() constant returns(uint256)
 15396  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) LastBlock(opts *bind.CallOpts) (*big.Int, error) {
 15397  	var (
 15398  		ret0 = new(*big.Int)
 15399  	)
 15400  	out := ret0
 15401  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "lastBlock")
 15402  	return *ret0, err
 15403  }
 15404  
 15405  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
 15406  //
 15407  // Solidity: function lastBlock() constant returns(uint256)
 15408  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) LastBlock() (*big.Int, error) {
 15409  	return _FixedIncrementCoinageMock.Contract.LastBlock(&_FixedIncrementCoinageMock.CallOpts)
 15410  }
 15411  
 15412  // LastBlock is a free data retrieval call binding the contract method 0x806b984f.
 15413  //
 15414  // Solidity: function lastBlock() constant returns(uint256)
 15415  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) LastBlock() (*big.Int, error) {
 15416  	return _FixedIncrementCoinageMock.Contract.LastBlock(&_FixedIncrementCoinageMock.CallOpts)
 15417  }
 15418  
 15419  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 15420  //
 15421  // Solidity: function name() constant returns(string)
 15422  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) Name(opts *bind.CallOpts) (string, error) {
 15423  	var (
 15424  		ret0 = new(string)
 15425  	)
 15426  	out := ret0
 15427  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "name")
 15428  	return *ret0, err
 15429  }
 15430  
 15431  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 15432  //
 15433  // Solidity: function name() constant returns(string)
 15434  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Name() (string, error) {
 15435  	return _FixedIncrementCoinageMock.Contract.Name(&_FixedIncrementCoinageMock.CallOpts)
 15436  }
 15437  
 15438  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 15439  //
 15440  // Solidity: function name() constant returns(string)
 15441  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) Name() (string, error) {
 15442  	return _FixedIncrementCoinageMock.Contract.Name(&_FixedIncrementCoinageMock.CallOpts)
 15443  }
 15444  
 15445  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15446  //
 15447  // Solidity: function owner() constant returns(address)
 15448  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 15449  	var (
 15450  		ret0 = new(common.Address)
 15451  	)
 15452  	out := ret0
 15453  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "owner")
 15454  	return *ret0, err
 15455  }
 15456  
 15457  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15458  //
 15459  // Solidity: function owner() constant returns(address)
 15460  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Owner() (common.Address, error) {
 15461  	return _FixedIncrementCoinageMock.Contract.Owner(&_FixedIncrementCoinageMock.CallOpts)
 15462  }
 15463  
 15464  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15465  //
 15466  // Solidity: function owner() constant returns(address)
 15467  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) Owner() (common.Address, error) {
 15468  	return _FixedIncrementCoinageMock.Contract.Owner(&_FixedIncrementCoinageMock.CallOpts)
 15469  }
 15470  
 15471  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 15472  //
 15473  // Solidity: function seigPerBlock() constant returns(uint256)
 15474  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) SeigPerBlock(opts *bind.CallOpts) (*big.Int, error) {
 15475  	var (
 15476  		ret0 = new(*big.Int)
 15477  	)
 15478  	out := ret0
 15479  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "seigPerBlock")
 15480  	return *ret0, err
 15481  }
 15482  
 15483  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 15484  //
 15485  // Solidity: function seigPerBlock() constant returns(uint256)
 15486  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) SeigPerBlock() (*big.Int, error) {
 15487  	return _FixedIncrementCoinageMock.Contract.SeigPerBlock(&_FixedIncrementCoinageMock.CallOpts)
 15488  }
 15489  
 15490  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 15491  //
 15492  // Solidity: function seigPerBlock() constant returns(uint256)
 15493  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) SeigPerBlock() (*big.Int, error) {
 15494  	return _FixedIncrementCoinageMock.Contract.SeigPerBlock(&_FixedIncrementCoinageMock.CallOpts)
 15495  }
 15496  
 15497  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 15498  //
 15499  // Solidity: function symbol() constant returns(string)
 15500  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) Symbol(opts *bind.CallOpts) (string, error) {
 15501  	var (
 15502  		ret0 = new(string)
 15503  	)
 15504  	out := ret0
 15505  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "symbol")
 15506  	return *ret0, err
 15507  }
 15508  
 15509  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 15510  //
 15511  // Solidity: function symbol() constant returns(string)
 15512  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Symbol() (string, error) {
 15513  	return _FixedIncrementCoinageMock.Contract.Symbol(&_FixedIncrementCoinageMock.CallOpts)
 15514  }
 15515  
 15516  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 15517  //
 15518  // Solidity: function symbol() constant returns(string)
 15519  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) Symbol() (string, error) {
 15520  	return _FixedIncrementCoinageMock.Contract.Symbol(&_FixedIncrementCoinageMock.CallOpts)
 15521  }
 15522  
 15523  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 15524  //
 15525  // Solidity: function totalSupply() constant returns(uint256)
 15526  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 15527  	var (
 15528  		ret0 = new(*big.Int)
 15529  	)
 15530  	out := ret0
 15531  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "totalSupply")
 15532  	return *ret0, err
 15533  }
 15534  
 15535  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 15536  //
 15537  // Solidity: function totalSupply() constant returns(uint256)
 15538  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) TotalSupply() (*big.Int, error) {
 15539  	return _FixedIncrementCoinageMock.Contract.TotalSupply(&_FixedIncrementCoinageMock.CallOpts)
 15540  }
 15541  
 15542  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 15543  //
 15544  // Solidity: function totalSupply() constant returns(uint256)
 15545  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) TotalSupply() (*big.Int, error) {
 15546  	return _FixedIncrementCoinageMock.Contract.TotalSupply(&_FixedIncrementCoinageMock.CallOpts)
 15547  }
 15548  
 15549  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 15550  //
 15551  // Solidity: function transfersEnabled() constant returns(bool)
 15552  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
 15553  	var (
 15554  		ret0 = new(bool)
 15555  	)
 15556  	out := ret0
 15557  	err := _FixedIncrementCoinageMock.contract.Call(opts, out, "transfersEnabled")
 15558  	return *ret0, err
 15559  }
 15560  
 15561  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 15562  //
 15563  // Solidity: function transfersEnabled() constant returns(bool)
 15564  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) TransfersEnabled() (bool, error) {
 15565  	return _FixedIncrementCoinageMock.Contract.TransfersEnabled(&_FixedIncrementCoinageMock.CallOpts)
 15566  }
 15567  
 15568  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 15569  //
 15570  // Solidity: function transfersEnabled() constant returns(bool)
 15571  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockCallerSession) TransfersEnabled() (bool, error) {
 15572  	return _FixedIncrementCoinageMock.Contract.TransfersEnabled(&_FixedIncrementCoinageMock.CallOpts)
 15573  }
 15574  
 15575  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 15576  //
 15577  // Solidity: function addMinter(address account) returns()
 15578  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 15579  	return _FixedIncrementCoinageMock.contract.Transact(opts, "addMinter", account)
 15580  }
 15581  
 15582  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 15583  //
 15584  // Solidity: function addMinter(address account) returns()
 15585  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) AddMinter(account common.Address) (*types.Transaction, error) {
 15586  	return _FixedIncrementCoinageMock.Contract.AddMinter(&_FixedIncrementCoinageMock.TransactOpts, account)
 15587  }
 15588  
 15589  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 15590  //
 15591  // Solidity: function addMinter(address account) returns()
 15592  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 15593  	return _FixedIncrementCoinageMock.Contract.AddMinter(&_FixedIncrementCoinageMock.TransactOpts, account)
 15594  }
 15595  
 15596  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 15597  //
 15598  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 15599  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 15600  	return _FixedIncrementCoinageMock.contract.Transact(opts, "approve", spender, amount)
 15601  }
 15602  
 15603  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 15604  //
 15605  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 15606  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 15607  	return _FixedIncrementCoinageMock.Contract.Approve(&_FixedIncrementCoinageMock.TransactOpts, spender, amount)
 15608  }
 15609  
 15610  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 15611  //
 15612  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 15613  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 15614  	return _FixedIncrementCoinageMock.Contract.Approve(&_FixedIncrementCoinageMock.TransactOpts, spender, amount)
 15615  }
 15616  
 15617  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 15618  //
 15619  // Solidity: function burn(uint256 amount) returns()
 15620  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
 15621  	return _FixedIncrementCoinageMock.contract.Transact(opts, "burn", amount)
 15622  }
 15623  
 15624  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 15625  //
 15626  // Solidity: function burn(uint256 amount) returns()
 15627  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Burn(amount *big.Int) (*types.Transaction, error) {
 15628  	return _FixedIncrementCoinageMock.Contract.Burn(&_FixedIncrementCoinageMock.TransactOpts, amount)
 15629  }
 15630  
 15631  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 15632  //
 15633  // Solidity: function burn(uint256 amount) returns()
 15634  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) {
 15635  	return _FixedIncrementCoinageMock.Contract.Burn(&_FixedIncrementCoinageMock.TransactOpts, amount)
 15636  }
 15637  
 15638  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 15639  //
 15640  // Solidity: function burnFrom(address account, uint256 amount) returns()
 15641  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 15642  	return _FixedIncrementCoinageMock.contract.Transact(opts, "burnFrom", account, amount)
 15643  }
 15644  
 15645  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 15646  //
 15647  // Solidity: function burnFrom(address account, uint256 amount) returns()
 15648  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 15649  	return _FixedIncrementCoinageMock.Contract.BurnFrom(&_FixedIncrementCoinageMock.TransactOpts, account, amount)
 15650  }
 15651  
 15652  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 15653  //
 15654  // Solidity: function burnFrom(address account, uint256 amount) returns()
 15655  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 15656  	return _FixedIncrementCoinageMock.Contract.BurnFrom(&_FixedIncrementCoinageMock.TransactOpts, account, amount)
 15657  }
 15658  
 15659  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 15660  //
 15661  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 15662  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 15663  	return _FixedIncrementCoinageMock.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 15664  }
 15665  
 15666  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 15667  //
 15668  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 15669  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 15670  	return _FixedIncrementCoinageMock.Contract.DecreaseAllowance(&_FixedIncrementCoinageMock.TransactOpts, spender, subtractedValue)
 15671  }
 15672  
 15673  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 15674  //
 15675  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 15676  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 15677  	return _FixedIncrementCoinageMock.Contract.DecreaseAllowance(&_FixedIncrementCoinageMock.TransactOpts, spender, subtractedValue)
 15678  }
 15679  
 15680  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 15681  //
 15682  // Solidity: function enableTransfers(bool v) returns()
 15683  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) EnableTransfers(opts *bind.TransactOpts, v bool) (*types.Transaction, error) {
 15684  	return _FixedIncrementCoinageMock.contract.Transact(opts, "enableTransfers", v)
 15685  }
 15686  
 15687  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 15688  //
 15689  // Solidity: function enableTransfers(bool v) returns()
 15690  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) EnableTransfers(v bool) (*types.Transaction, error) {
 15691  	return _FixedIncrementCoinageMock.Contract.EnableTransfers(&_FixedIncrementCoinageMock.TransactOpts, v)
 15692  }
 15693  
 15694  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 15695  //
 15696  // Solidity: function enableTransfers(bool v) returns()
 15697  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) EnableTransfers(v bool) (*types.Transaction, error) {
 15698  	return _FixedIncrementCoinageMock.Contract.EnableTransfers(&_FixedIncrementCoinageMock.TransactOpts, v)
 15699  }
 15700  
 15701  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 15702  //
 15703  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 15704  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 15705  	return _FixedIncrementCoinageMock.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 15706  }
 15707  
 15708  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 15709  //
 15710  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 15711  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 15712  	return _FixedIncrementCoinageMock.Contract.IncreaseAllowance(&_FixedIncrementCoinageMock.TransactOpts, spender, addedValue)
 15713  }
 15714  
 15715  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 15716  //
 15717  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 15718  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 15719  	return _FixedIncrementCoinageMock.Contract.IncreaseAllowance(&_FixedIncrementCoinageMock.TransactOpts, spender, addedValue)
 15720  }
 15721  
 15722  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 15723  //
 15724  // Solidity: function mint(address account, uint256 amount) returns(bool)
 15725  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 15726  	return _FixedIncrementCoinageMock.contract.Transact(opts, "mint", account, amount)
 15727  }
 15728  
 15729  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 15730  //
 15731  // Solidity: function mint(address account, uint256 amount) returns(bool)
 15732  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 15733  	return _FixedIncrementCoinageMock.Contract.Mint(&_FixedIncrementCoinageMock.TransactOpts, account, amount)
 15734  }
 15735  
 15736  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 15737  //
 15738  // Solidity: function mint(address account, uint256 amount) returns(bool)
 15739  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 15740  	return _FixedIncrementCoinageMock.Contract.Mint(&_FixedIncrementCoinageMock.TransactOpts, account, amount)
 15741  }
 15742  
 15743  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 15744  //
 15745  // Solidity: function renounceMinter() returns()
 15746  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 15747  	return _FixedIncrementCoinageMock.contract.Transact(opts, "renounceMinter")
 15748  }
 15749  
 15750  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 15751  //
 15752  // Solidity: function renounceMinter() returns()
 15753  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) RenounceMinter() (*types.Transaction, error) {
 15754  	return _FixedIncrementCoinageMock.Contract.RenounceMinter(&_FixedIncrementCoinageMock.TransactOpts)
 15755  }
 15756  
 15757  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 15758  //
 15759  // Solidity: function renounceMinter() returns()
 15760  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) RenounceMinter() (*types.Transaction, error) {
 15761  	return _FixedIncrementCoinageMock.Contract.RenounceMinter(&_FixedIncrementCoinageMock.TransactOpts)
 15762  }
 15763  
 15764  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 15765  //
 15766  // Solidity: function renounceOwnership() returns()
 15767  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 15768  	return _FixedIncrementCoinageMock.contract.Transact(opts, "renounceOwnership")
 15769  }
 15770  
 15771  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 15772  //
 15773  // Solidity: function renounceOwnership() returns()
 15774  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) RenounceOwnership() (*types.Transaction, error) {
 15775  	return _FixedIncrementCoinageMock.Contract.RenounceOwnership(&_FixedIncrementCoinageMock.TransactOpts)
 15776  }
 15777  
 15778  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 15779  //
 15780  // Solidity: function renounceOwnership() returns()
 15781  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 15782  	return _FixedIncrementCoinageMock.Contract.RenounceOwnership(&_FixedIncrementCoinageMock.TransactOpts)
 15783  }
 15784  
 15785  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 15786  //
 15787  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 15788  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 15789  	return _FixedIncrementCoinageMock.contract.Transact(opts, "transfer", recipient, amount)
 15790  }
 15791  
 15792  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 15793  //
 15794  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 15795  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 15796  	return _FixedIncrementCoinageMock.Contract.Transfer(&_FixedIncrementCoinageMock.TransactOpts, recipient, amount)
 15797  }
 15798  
 15799  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 15800  //
 15801  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 15802  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 15803  	return _FixedIncrementCoinageMock.Contract.Transfer(&_FixedIncrementCoinageMock.TransactOpts, recipient, amount)
 15804  }
 15805  
 15806  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 15807  //
 15808  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 15809  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 15810  	return _FixedIncrementCoinageMock.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 15811  }
 15812  
 15813  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 15814  //
 15815  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 15816  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 15817  	return _FixedIncrementCoinageMock.Contract.TransferFrom(&_FixedIncrementCoinageMock.TransactOpts, sender, recipient, amount)
 15818  }
 15819  
 15820  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 15821  //
 15822  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 15823  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 15824  	return _FixedIncrementCoinageMock.Contract.TransferFrom(&_FixedIncrementCoinageMock.TransactOpts, sender, recipient, amount)
 15825  }
 15826  
 15827  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15828  //
 15829  // Solidity: function transferOwnership(address newOwner) returns()
 15830  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 15831  	return _FixedIncrementCoinageMock.contract.Transact(opts, "transferOwnership", newOwner)
 15832  }
 15833  
 15834  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15835  //
 15836  // Solidity: function transferOwnership(address newOwner) returns()
 15837  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 15838  	return _FixedIncrementCoinageMock.Contract.TransferOwnership(&_FixedIncrementCoinageMock.TransactOpts, newOwner)
 15839  }
 15840  
 15841  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15842  //
 15843  // Solidity: function transferOwnership(address newOwner) returns()
 15844  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 15845  	return _FixedIncrementCoinageMock.Contract.TransferOwnership(&_FixedIncrementCoinageMock.TransactOpts, newOwner)
 15846  }
 15847  
 15848  // FixedIncrementCoinageMockApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the FixedIncrementCoinageMock contract.
 15849  type FixedIncrementCoinageMockApprovalIterator struct {
 15850  	Event *FixedIncrementCoinageMockApproval // Event containing the contract specifics and raw log
 15851  
 15852  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15853  	event    string              // Event name to use for unpacking event data
 15854  
 15855  	logs chan types.Log        // Log channel receiving the found contract events
 15856  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 15857  	done bool                  // Whether the subscription completed delivering logs
 15858  	fail error                 // Occurred error to stop iteration
 15859  }
 15860  
 15861  // Next advances the iterator to the subsequent event, returning whether there
 15862  // are any more events found. In case of a retrieval or parsing error, false is
 15863  // returned and Error() can be queried for the exact failure.
 15864  func (it *FixedIncrementCoinageMockApprovalIterator) Next() bool {
 15865  	// If the iterator failed, stop iterating
 15866  	if it.fail != nil {
 15867  		return false
 15868  	}
 15869  	// If the iterator completed, deliver directly whatever's available
 15870  	if it.done {
 15871  		select {
 15872  		case log := <-it.logs:
 15873  			it.Event = new(FixedIncrementCoinageMockApproval)
 15874  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15875  				it.fail = err
 15876  				return false
 15877  			}
 15878  			it.Event.Raw = log
 15879  			return true
 15880  
 15881  		default:
 15882  			return false
 15883  		}
 15884  	}
 15885  	// Iterator still in progress, wait for either a data or an error event
 15886  	select {
 15887  	case log := <-it.logs:
 15888  		it.Event = new(FixedIncrementCoinageMockApproval)
 15889  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15890  			it.fail = err
 15891  			return false
 15892  		}
 15893  		it.Event.Raw = log
 15894  		return true
 15895  
 15896  	case err := <-it.sub.Err():
 15897  		it.done = true
 15898  		it.fail = err
 15899  		return it.Next()
 15900  	}
 15901  }
 15902  
 15903  // Error returns any retrieval or parsing error occurred during filtering.
 15904  func (it *FixedIncrementCoinageMockApprovalIterator) Error() error {
 15905  	return it.fail
 15906  }
 15907  
 15908  // Close terminates the iteration process, releasing any pending underlying
 15909  // resources.
 15910  func (it *FixedIncrementCoinageMockApprovalIterator) Close() error {
 15911  	it.sub.Unsubscribe()
 15912  	return nil
 15913  }
 15914  
 15915  // FixedIncrementCoinageMockApproval represents a Approval event raised by the FixedIncrementCoinageMock contract.
 15916  type FixedIncrementCoinageMockApproval struct {
 15917  	Owner   common.Address
 15918  	Spender common.Address
 15919  	Value   *big.Int
 15920  	Raw     types.Log // Blockchain specific contextual infos
 15921  }
 15922  
 15923  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 15924  //
 15925  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 15926  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*FixedIncrementCoinageMockApprovalIterator, error) {
 15927  
 15928  	var ownerRule []interface{}
 15929  	for _, ownerItem := range owner {
 15930  		ownerRule = append(ownerRule, ownerItem)
 15931  	}
 15932  	var spenderRule []interface{}
 15933  	for _, spenderItem := range spender {
 15934  		spenderRule = append(spenderRule, spenderItem)
 15935  	}
 15936  
 15937  	logs, sub, err := _FixedIncrementCoinageMock.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 15938  	if err != nil {
 15939  		return nil, err
 15940  	}
 15941  	return &FixedIncrementCoinageMockApprovalIterator{contract: _FixedIncrementCoinageMock.contract, event: "Approval", logs: logs, sub: sub}, nil
 15942  }
 15943  
 15944  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 15945  //
 15946  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 15947  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageMockApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 15948  
 15949  	var ownerRule []interface{}
 15950  	for _, ownerItem := range owner {
 15951  		ownerRule = append(ownerRule, ownerItem)
 15952  	}
 15953  	var spenderRule []interface{}
 15954  	for _, spenderItem := range spender {
 15955  		spenderRule = append(spenderRule, spenderItem)
 15956  	}
 15957  
 15958  	logs, sub, err := _FixedIncrementCoinageMock.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 15959  	if err != nil {
 15960  		return nil, err
 15961  	}
 15962  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15963  		defer sub.Unsubscribe()
 15964  		for {
 15965  			select {
 15966  			case log := <-logs:
 15967  				// New log arrived, parse the event and forward to the user
 15968  				event := new(FixedIncrementCoinageMockApproval)
 15969  				if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "Approval", log); err != nil {
 15970  					return err
 15971  				}
 15972  				event.Raw = log
 15973  
 15974  				select {
 15975  				case sink <- event:
 15976  				case err := <-sub.Err():
 15977  					return err
 15978  				case <-quit:
 15979  					return nil
 15980  				}
 15981  			case err := <-sub.Err():
 15982  				return err
 15983  			case <-quit:
 15984  				return nil
 15985  			}
 15986  		}
 15987  	}), nil
 15988  }
 15989  
 15990  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 15991  //
 15992  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 15993  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) ParseApproval(log types.Log) (*FixedIncrementCoinageMockApproval, error) {
 15994  	event := new(FixedIncrementCoinageMockApproval)
 15995  	if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "Approval", log); err != nil {
 15996  		return nil, err
 15997  	}
 15998  	return event, nil
 15999  }
 16000  
 16001  // FixedIncrementCoinageMockFactorIncreasedIterator is returned from FilterFactorIncreased and is used to iterate over the raw logs and unpacked data for FactorIncreased events raised by the FixedIncrementCoinageMock contract.
 16002  type FixedIncrementCoinageMockFactorIncreasedIterator struct {
 16003  	Event *FixedIncrementCoinageMockFactorIncreased // Event containing the contract specifics and raw log
 16004  
 16005  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16006  	event    string              // Event name to use for unpacking event data
 16007  
 16008  	logs chan types.Log        // Log channel receiving the found contract events
 16009  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16010  	done bool                  // Whether the subscription completed delivering logs
 16011  	fail error                 // Occurred error to stop iteration
 16012  }
 16013  
 16014  // Next advances the iterator to the subsequent event, returning whether there
 16015  // are any more events found. In case of a retrieval or parsing error, false is
 16016  // returned and Error() can be queried for the exact failure.
 16017  func (it *FixedIncrementCoinageMockFactorIncreasedIterator) Next() bool {
 16018  	// If the iterator failed, stop iterating
 16019  	if it.fail != nil {
 16020  		return false
 16021  	}
 16022  	// If the iterator completed, deliver directly whatever's available
 16023  	if it.done {
 16024  		select {
 16025  		case log := <-it.logs:
 16026  			it.Event = new(FixedIncrementCoinageMockFactorIncreased)
 16027  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16028  				it.fail = err
 16029  				return false
 16030  			}
 16031  			it.Event.Raw = log
 16032  			return true
 16033  
 16034  		default:
 16035  			return false
 16036  		}
 16037  	}
 16038  	// Iterator still in progress, wait for either a data or an error event
 16039  	select {
 16040  	case log := <-it.logs:
 16041  		it.Event = new(FixedIncrementCoinageMockFactorIncreased)
 16042  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16043  			it.fail = err
 16044  			return false
 16045  		}
 16046  		it.Event.Raw = log
 16047  		return true
 16048  
 16049  	case err := <-it.sub.Err():
 16050  		it.done = true
 16051  		it.fail = err
 16052  		return it.Next()
 16053  	}
 16054  }
 16055  
 16056  // Error returns any retrieval or parsing error occurred during filtering.
 16057  func (it *FixedIncrementCoinageMockFactorIncreasedIterator) Error() error {
 16058  	return it.fail
 16059  }
 16060  
 16061  // Close terminates the iteration process, releasing any pending underlying
 16062  // resources.
 16063  func (it *FixedIncrementCoinageMockFactorIncreasedIterator) Close() error {
 16064  	it.sub.Unsubscribe()
 16065  	return nil
 16066  }
 16067  
 16068  // FixedIncrementCoinageMockFactorIncreased represents a FactorIncreased event raised by the FixedIncrementCoinageMock contract.
 16069  type FixedIncrementCoinageMockFactorIncreased struct {
 16070  	Factor *big.Int
 16071  	Raw    types.Log // Blockchain specific contextual infos
 16072  }
 16073  
 16074  // FilterFactorIncreased is a free log retrieval operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
 16075  //
 16076  // Solidity: event FactorIncreased(uint256 factor)
 16077  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) FilterFactorIncreased(opts *bind.FilterOpts) (*FixedIncrementCoinageMockFactorIncreasedIterator, error) {
 16078  
 16079  	logs, sub, err := _FixedIncrementCoinageMock.contract.FilterLogs(opts, "FactorIncreased")
 16080  	if err != nil {
 16081  		return nil, err
 16082  	}
 16083  	return &FixedIncrementCoinageMockFactorIncreasedIterator{contract: _FixedIncrementCoinageMock.contract, event: "FactorIncreased", logs: logs, sub: sub}, nil
 16084  }
 16085  
 16086  // WatchFactorIncreased is a free log subscription operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
 16087  //
 16088  // Solidity: event FactorIncreased(uint256 factor)
 16089  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) WatchFactorIncreased(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageMockFactorIncreased) (event.Subscription, error) {
 16090  
 16091  	logs, sub, err := _FixedIncrementCoinageMock.contract.WatchLogs(opts, "FactorIncreased")
 16092  	if err != nil {
 16093  		return nil, err
 16094  	}
 16095  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16096  		defer sub.Unsubscribe()
 16097  		for {
 16098  			select {
 16099  			case log := <-logs:
 16100  				// New log arrived, parse the event and forward to the user
 16101  				event := new(FixedIncrementCoinageMockFactorIncreased)
 16102  				if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
 16103  					return err
 16104  				}
 16105  				event.Raw = log
 16106  
 16107  				select {
 16108  				case sink <- event:
 16109  				case err := <-sub.Err():
 16110  					return err
 16111  				case <-quit:
 16112  					return nil
 16113  				}
 16114  			case err := <-sub.Err():
 16115  				return err
 16116  			case <-quit:
 16117  				return nil
 16118  			}
 16119  		}
 16120  	}), nil
 16121  }
 16122  
 16123  // ParseFactorIncreased is a log parse operation binding the contract event 0xe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb6.
 16124  //
 16125  // Solidity: event FactorIncreased(uint256 factor)
 16126  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) ParseFactorIncreased(log types.Log) (*FixedIncrementCoinageMockFactorIncreased, error) {
 16127  	event := new(FixedIncrementCoinageMockFactorIncreased)
 16128  	if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "FactorIncreased", log); err != nil {
 16129  		return nil, err
 16130  	}
 16131  	return event, nil
 16132  }
 16133  
 16134  // FixedIncrementCoinageMockMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the FixedIncrementCoinageMock contract.
 16135  type FixedIncrementCoinageMockMinterAddedIterator struct {
 16136  	Event *FixedIncrementCoinageMockMinterAdded // Event containing the contract specifics and raw log
 16137  
 16138  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16139  	event    string              // Event name to use for unpacking event data
 16140  
 16141  	logs chan types.Log        // Log channel receiving the found contract events
 16142  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16143  	done bool                  // Whether the subscription completed delivering logs
 16144  	fail error                 // Occurred error to stop iteration
 16145  }
 16146  
 16147  // Next advances the iterator to the subsequent event, returning whether there
 16148  // are any more events found. In case of a retrieval or parsing error, false is
 16149  // returned and Error() can be queried for the exact failure.
 16150  func (it *FixedIncrementCoinageMockMinterAddedIterator) Next() bool {
 16151  	// If the iterator failed, stop iterating
 16152  	if it.fail != nil {
 16153  		return false
 16154  	}
 16155  	// If the iterator completed, deliver directly whatever's available
 16156  	if it.done {
 16157  		select {
 16158  		case log := <-it.logs:
 16159  			it.Event = new(FixedIncrementCoinageMockMinterAdded)
 16160  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16161  				it.fail = err
 16162  				return false
 16163  			}
 16164  			it.Event.Raw = log
 16165  			return true
 16166  
 16167  		default:
 16168  			return false
 16169  		}
 16170  	}
 16171  	// Iterator still in progress, wait for either a data or an error event
 16172  	select {
 16173  	case log := <-it.logs:
 16174  		it.Event = new(FixedIncrementCoinageMockMinterAdded)
 16175  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16176  			it.fail = err
 16177  			return false
 16178  		}
 16179  		it.Event.Raw = log
 16180  		return true
 16181  
 16182  	case err := <-it.sub.Err():
 16183  		it.done = true
 16184  		it.fail = err
 16185  		return it.Next()
 16186  	}
 16187  }
 16188  
 16189  // Error returns any retrieval or parsing error occurred during filtering.
 16190  func (it *FixedIncrementCoinageMockMinterAddedIterator) Error() error {
 16191  	return it.fail
 16192  }
 16193  
 16194  // Close terminates the iteration process, releasing any pending underlying
 16195  // resources.
 16196  func (it *FixedIncrementCoinageMockMinterAddedIterator) Close() error {
 16197  	it.sub.Unsubscribe()
 16198  	return nil
 16199  }
 16200  
 16201  // FixedIncrementCoinageMockMinterAdded represents a MinterAdded event raised by the FixedIncrementCoinageMock contract.
 16202  type FixedIncrementCoinageMockMinterAdded struct {
 16203  	Account common.Address
 16204  	Raw     types.Log // Blockchain specific contextual infos
 16205  }
 16206  
 16207  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 16208  //
 16209  // Solidity: event MinterAdded(address indexed account)
 16210  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*FixedIncrementCoinageMockMinterAddedIterator, error) {
 16211  
 16212  	var accountRule []interface{}
 16213  	for _, accountItem := range account {
 16214  		accountRule = append(accountRule, accountItem)
 16215  	}
 16216  
 16217  	logs, sub, err := _FixedIncrementCoinageMock.contract.FilterLogs(opts, "MinterAdded", accountRule)
 16218  	if err != nil {
 16219  		return nil, err
 16220  	}
 16221  	return &FixedIncrementCoinageMockMinterAddedIterator{contract: _FixedIncrementCoinageMock.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 16222  }
 16223  
 16224  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 16225  //
 16226  // Solidity: event MinterAdded(address indexed account)
 16227  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageMockMinterAdded, account []common.Address) (event.Subscription, error) {
 16228  
 16229  	var accountRule []interface{}
 16230  	for _, accountItem := range account {
 16231  		accountRule = append(accountRule, accountItem)
 16232  	}
 16233  
 16234  	logs, sub, err := _FixedIncrementCoinageMock.contract.WatchLogs(opts, "MinterAdded", accountRule)
 16235  	if err != nil {
 16236  		return nil, err
 16237  	}
 16238  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16239  		defer sub.Unsubscribe()
 16240  		for {
 16241  			select {
 16242  			case log := <-logs:
 16243  				// New log arrived, parse the event and forward to the user
 16244  				event := new(FixedIncrementCoinageMockMinterAdded)
 16245  				if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 16246  					return err
 16247  				}
 16248  				event.Raw = log
 16249  
 16250  				select {
 16251  				case sink <- event:
 16252  				case err := <-sub.Err():
 16253  					return err
 16254  				case <-quit:
 16255  					return nil
 16256  				}
 16257  			case err := <-sub.Err():
 16258  				return err
 16259  			case <-quit:
 16260  				return nil
 16261  			}
 16262  		}
 16263  	}), nil
 16264  }
 16265  
 16266  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 16267  //
 16268  // Solidity: event MinterAdded(address indexed account)
 16269  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) ParseMinterAdded(log types.Log) (*FixedIncrementCoinageMockMinterAdded, error) {
 16270  	event := new(FixedIncrementCoinageMockMinterAdded)
 16271  	if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 16272  		return nil, err
 16273  	}
 16274  	return event, nil
 16275  }
 16276  
 16277  // FixedIncrementCoinageMockMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the FixedIncrementCoinageMock contract.
 16278  type FixedIncrementCoinageMockMinterRemovedIterator struct {
 16279  	Event *FixedIncrementCoinageMockMinterRemoved // Event containing the contract specifics and raw log
 16280  
 16281  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16282  	event    string              // Event name to use for unpacking event data
 16283  
 16284  	logs chan types.Log        // Log channel receiving the found contract events
 16285  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16286  	done bool                  // Whether the subscription completed delivering logs
 16287  	fail error                 // Occurred error to stop iteration
 16288  }
 16289  
 16290  // Next advances the iterator to the subsequent event, returning whether there
 16291  // are any more events found. In case of a retrieval or parsing error, false is
 16292  // returned and Error() can be queried for the exact failure.
 16293  func (it *FixedIncrementCoinageMockMinterRemovedIterator) Next() bool {
 16294  	// If the iterator failed, stop iterating
 16295  	if it.fail != nil {
 16296  		return false
 16297  	}
 16298  	// If the iterator completed, deliver directly whatever's available
 16299  	if it.done {
 16300  		select {
 16301  		case log := <-it.logs:
 16302  			it.Event = new(FixedIncrementCoinageMockMinterRemoved)
 16303  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16304  				it.fail = err
 16305  				return false
 16306  			}
 16307  			it.Event.Raw = log
 16308  			return true
 16309  
 16310  		default:
 16311  			return false
 16312  		}
 16313  	}
 16314  	// Iterator still in progress, wait for either a data or an error event
 16315  	select {
 16316  	case log := <-it.logs:
 16317  		it.Event = new(FixedIncrementCoinageMockMinterRemoved)
 16318  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16319  			it.fail = err
 16320  			return false
 16321  		}
 16322  		it.Event.Raw = log
 16323  		return true
 16324  
 16325  	case err := <-it.sub.Err():
 16326  		it.done = true
 16327  		it.fail = err
 16328  		return it.Next()
 16329  	}
 16330  }
 16331  
 16332  // Error returns any retrieval or parsing error occurred during filtering.
 16333  func (it *FixedIncrementCoinageMockMinterRemovedIterator) Error() error {
 16334  	return it.fail
 16335  }
 16336  
 16337  // Close terminates the iteration process, releasing any pending underlying
 16338  // resources.
 16339  func (it *FixedIncrementCoinageMockMinterRemovedIterator) Close() error {
 16340  	it.sub.Unsubscribe()
 16341  	return nil
 16342  }
 16343  
 16344  // FixedIncrementCoinageMockMinterRemoved represents a MinterRemoved event raised by the FixedIncrementCoinageMock contract.
 16345  type FixedIncrementCoinageMockMinterRemoved struct {
 16346  	Account common.Address
 16347  	Raw     types.Log // Blockchain specific contextual infos
 16348  }
 16349  
 16350  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 16351  //
 16352  // Solidity: event MinterRemoved(address indexed account)
 16353  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*FixedIncrementCoinageMockMinterRemovedIterator, error) {
 16354  
 16355  	var accountRule []interface{}
 16356  	for _, accountItem := range account {
 16357  		accountRule = append(accountRule, accountItem)
 16358  	}
 16359  
 16360  	logs, sub, err := _FixedIncrementCoinageMock.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 16361  	if err != nil {
 16362  		return nil, err
 16363  	}
 16364  	return &FixedIncrementCoinageMockMinterRemovedIterator{contract: _FixedIncrementCoinageMock.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 16365  }
 16366  
 16367  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 16368  //
 16369  // Solidity: event MinterRemoved(address indexed account)
 16370  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageMockMinterRemoved, account []common.Address) (event.Subscription, error) {
 16371  
 16372  	var accountRule []interface{}
 16373  	for _, accountItem := range account {
 16374  		accountRule = append(accountRule, accountItem)
 16375  	}
 16376  
 16377  	logs, sub, err := _FixedIncrementCoinageMock.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 16378  	if err != nil {
 16379  		return nil, err
 16380  	}
 16381  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16382  		defer sub.Unsubscribe()
 16383  		for {
 16384  			select {
 16385  			case log := <-logs:
 16386  				// New log arrived, parse the event and forward to the user
 16387  				event := new(FixedIncrementCoinageMockMinterRemoved)
 16388  				if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 16389  					return err
 16390  				}
 16391  				event.Raw = log
 16392  
 16393  				select {
 16394  				case sink <- event:
 16395  				case err := <-sub.Err():
 16396  					return err
 16397  				case <-quit:
 16398  					return nil
 16399  				}
 16400  			case err := <-sub.Err():
 16401  				return err
 16402  			case <-quit:
 16403  				return nil
 16404  			}
 16405  		}
 16406  	}), nil
 16407  }
 16408  
 16409  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 16410  //
 16411  // Solidity: event MinterRemoved(address indexed account)
 16412  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) ParseMinterRemoved(log types.Log) (*FixedIncrementCoinageMockMinterRemoved, error) {
 16413  	event := new(FixedIncrementCoinageMockMinterRemoved)
 16414  	if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 16415  		return nil, err
 16416  	}
 16417  	return event, nil
 16418  }
 16419  
 16420  // FixedIncrementCoinageMockOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the FixedIncrementCoinageMock contract.
 16421  type FixedIncrementCoinageMockOwnershipTransferredIterator struct {
 16422  	Event *FixedIncrementCoinageMockOwnershipTransferred // Event containing the contract specifics and raw log
 16423  
 16424  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16425  	event    string              // Event name to use for unpacking event data
 16426  
 16427  	logs chan types.Log        // Log channel receiving the found contract events
 16428  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16429  	done bool                  // Whether the subscription completed delivering logs
 16430  	fail error                 // Occurred error to stop iteration
 16431  }
 16432  
 16433  // Next advances the iterator to the subsequent event, returning whether there
 16434  // are any more events found. In case of a retrieval or parsing error, false is
 16435  // returned and Error() can be queried for the exact failure.
 16436  func (it *FixedIncrementCoinageMockOwnershipTransferredIterator) Next() bool {
 16437  	// If the iterator failed, stop iterating
 16438  	if it.fail != nil {
 16439  		return false
 16440  	}
 16441  	// If the iterator completed, deliver directly whatever's available
 16442  	if it.done {
 16443  		select {
 16444  		case log := <-it.logs:
 16445  			it.Event = new(FixedIncrementCoinageMockOwnershipTransferred)
 16446  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16447  				it.fail = err
 16448  				return false
 16449  			}
 16450  			it.Event.Raw = log
 16451  			return true
 16452  
 16453  		default:
 16454  			return false
 16455  		}
 16456  	}
 16457  	// Iterator still in progress, wait for either a data or an error event
 16458  	select {
 16459  	case log := <-it.logs:
 16460  		it.Event = new(FixedIncrementCoinageMockOwnershipTransferred)
 16461  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16462  			it.fail = err
 16463  			return false
 16464  		}
 16465  		it.Event.Raw = log
 16466  		return true
 16467  
 16468  	case err := <-it.sub.Err():
 16469  		it.done = true
 16470  		it.fail = err
 16471  		return it.Next()
 16472  	}
 16473  }
 16474  
 16475  // Error returns any retrieval or parsing error occurred during filtering.
 16476  func (it *FixedIncrementCoinageMockOwnershipTransferredIterator) Error() error {
 16477  	return it.fail
 16478  }
 16479  
 16480  // Close terminates the iteration process, releasing any pending underlying
 16481  // resources.
 16482  func (it *FixedIncrementCoinageMockOwnershipTransferredIterator) Close() error {
 16483  	it.sub.Unsubscribe()
 16484  	return nil
 16485  }
 16486  
 16487  // FixedIncrementCoinageMockOwnershipTransferred represents a OwnershipTransferred event raised by the FixedIncrementCoinageMock contract.
 16488  type FixedIncrementCoinageMockOwnershipTransferred struct {
 16489  	PreviousOwner common.Address
 16490  	NewOwner      common.Address
 16491  	Raw           types.Log // Blockchain specific contextual infos
 16492  }
 16493  
 16494  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 16495  //
 16496  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 16497  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*FixedIncrementCoinageMockOwnershipTransferredIterator, error) {
 16498  
 16499  	var previousOwnerRule []interface{}
 16500  	for _, previousOwnerItem := range previousOwner {
 16501  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 16502  	}
 16503  	var newOwnerRule []interface{}
 16504  	for _, newOwnerItem := range newOwner {
 16505  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 16506  	}
 16507  
 16508  	logs, sub, err := _FixedIncrementCoinageMock.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 16509  	if err != nil {
 16510  		return nil, err
 16511  	}
 16512  	return &FixedIncrementCoinageMockOwnershipTransferredIterator{contract: _FixedIncrementCoinageMock.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 16513  }
 16514  
 16515  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 16516  //
 16517  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 16518  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageMockOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 16519  
 16520  	var previousOwnerRule []interface{}
 16521  	for _, previousOwnerItem := range previousOwner {
 16522  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 16523  	}
 16524  	var newOwnerRule []interface{}
 16525  	for _, newOwnerItem := range newOwner {
 16526  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 16527  	}
 16528  
 16529  	logs, sub, err := _FixedIncrementCoinageMock.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 16530  	if err != nil {
 16531  		return nil, err
 16532  	}
 16533  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16534  		defer sub.Unsubscribe()
 16535  		for {
 16536  			select {
 16537  			case log := <-logs:
 16538  				// New log arrived, parse the event and forward to the user
 16539  				event := new(FixedIncrementCoinageMockOwnershipTransferred)
 16540  				if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 16541  					return err
 16542  				}
 16543  				event.Raw = log
 16544  
 16545  				select {
 16546  				case sink <- event:
 16547  				case err := <-sub.Err():
 16548  					return err
 16549  				case <-quit:
 16550  					return nil
 16551  				}
 16552  			case err := <-sub.Err():
 16553  				return err
 16554  			case <-quit:
 16555  				return nil
 16556  			}
 16557  		}
 16558  	}), nil
 16559  }
 16560  
 16561  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 16562  //
 16563  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 16564  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) ParseOwnershipTransferred(log types.Log) (*FixedIncrementCoinageMockOwnershipTransferred, error) {
 16565  	event := new(FixedIncrementCoinageMockOwnershipTransferred)
 16566  	if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 16567  		return nil, err
 16568  	}
 16569  	return event, nil
 16570  }
 16571  
 16572  // FixedIncrementCoinageMockTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the FixedIncrementCoinageMock contract.
 16573  type FixedIncrementCoinageMockTransferIterator struct {
 16574  	Event *FixedIncrementCoinageMockTransfer // Event containing the contract specifics and raw log
 16575  
 16576  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16577  	event    string              // Event name to use for unpacking event data
 16578  
 16579  	logs chan types.Log        // Log channel receiving the found contract events
 16580  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16581  	done bool                  // Whether the subscription completed delivering logs
 16582  	fail error                 // Occurred error to stop iteration
 16583  }
 16584  
 16585  // Next advances the iterator to the subsequent event, returning whether there
 16586  // are any more events found. In case of a retrieval or parsing error, false is
 16587  // returned and Error() can be queried for the exact failure.
 16588  func (it *FixedIncrementCoinageMockTransferIterator) Next() bool {
 16589  	// If the iterator failed, stop iterating
 16590  	if it.fail != nil {
 16591  		return false
 16592  	}
 16593  	// If the iterator completed, deliver directly whatever's available
 16594  	if it.done {
 16595  		select {
 16596  		case log := <-it.logs:
 16597  			it.Event = new(FixedIncrementCoinageMockTransfer)
 16598  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16599  				it.fail = err
 16600  				return false
 16601  			}
 16602  			it.Event.Raw = log
 16603  			return true
 16604  
 16605  		default:
 16606  			return false
 16607  		}
 16608  	}
 16609  	// Iterator still in progress, wait for either a data or an error event
 16610  	select {
 16611  	case log := <-it.logs:
 16612  		it.Event = new(FixedIncrementCoinageMockTransfer)
 16613  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16614  			it.fail = err
 16615  			return false
 16616  		}
 16617  		it.Event.Raw = log
 16618  		return true
 16619  
 16620  	case err := <-it.sub.Err():
 16621  		it.done = true
 16622  		it.fail = err
 16623  		return it.Next()
 16624  	}
 16625  }
 16626  
 16627  // Error returns any retrieval or parsing error occurred during filtering.
 16628  func (it *FixedIncrementCoinageMockTransferIterator) Error() error {
 16629  	return it.fail
 16630  }
 16631  
 16632  // Close terminates the iteration process, releasing any pending underlying
 16633  // resources.
 16634  func (it *FixedIncrementCoinageMockTransferIterator) Close() error {
 16635  	it.sub.Unsubscribe()
 16636  	return nil
 16637  }
 16638  
 16639  // FixedIncrementCoinageMockTransfer represents a Transfer event raised by the FixedIncrementCoinageMock contract.
 16640  type FixedIncrementCoinageMockTransfer struct {
 16641  	From  common.Address
 16642  	To    common.Address
 16643  	Value *big.Int
 16644  	Raw   types.Log // Blockchain specific contextual infos
 16645  }
 16646  
 16647  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 16648  //
 16649  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 16650  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*FixedIncrementCoinageMockTransferIterator, error) {
 16651  
 16652  	var fromRule []interface{}
 16653  	for _, fromItem := range from {
 16654  		fromRule = append(fromRule, fromItem)
 16655  	}
 16656  	var toRule []interface{}
 16657  	for _, toItem := range to {
 16658  		toRule = append(toRule, toItem)
 16659  	}
 16660  
 16661  	logs, sub, err := _FixedIncrementCoinageMock.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 16662  	if err != nil {
 16663  		return nil, err
 16664  	}
 16665  	return &FixedIncrementCoinageMockTransferIterator{contract: _FixedIncrementCoinageMock.contract, event: "Transfer", logs: logs, sub: sub}, nil
 16666  }
 16667  
 16668  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 16669  //
 16670  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 16671  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *FixedIncrementCoinageMockTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 16672  
 16673  	var fromRule []interface{}
 16674  	for _, fromItem := range from {
 16675  		fromRule = append(fromRule, fromItem)
 16676  	}
 16677  	var toRule []interface{}
 16678  	for _, toItem := range to {
 16679  		toRule = append(toRule, toItem)
 16680  	}
 16681  
 16682  	logs, sub, err := _FixedIncrementCoinageMock.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 16683  	if err != nil {
 16684  		return nil, err
 16685  	}
 16686  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16687  		defer sub.Unsubscribe()
 16688  		for {
 16689  			select {
 16690  			case log := <-logs:
 16691  				// New log arrived, parse the event and forward to the user
 16692  				event := new(FixedIncrementCoinageMockTransfer)
 16693  				if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "Transfer", log); err != nil {
 16694  					return err
 16695  				}
 16696  				event.Raw = log
 16697  
 16698  				select {
 16699  				case sink <- event:
 16700  				case err := <-sub.Err():
 16701  					return err
 16702  				case <-quit:
 16703  					return nil
 16704  				}
 16705  			case err := <-sub.Err():
 16706  				return err
 16707  			case <-quit:
 16708  				return nil
 16709  			}
 16710  		}
 16711  	}), nil
 16712  }
 16713  
 16714  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 16715  //
 16716  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 16717  func (_FixedIncrementCoinageMock *FixedIncrementCoinageMockFilterer) ParseTransfer(log types.Log) (*FixedIncrementCoinageMockTransfer, error) {
 16718  	event := new(FixedIncrementCoinageMockTransfer)
 16719  	if err := _FixedIncrementCoinageMock.contract.UnpackLog(event, "Transfer", log); err != nil {
 16720  		return nil, err
 16721  	}
 16722  	return event, nil
 16723  }
 16724  
 16725  // IERC20ABI is the input ABI used to generate the binding from.
 16726  const IERC20ABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 16727  
 16728  // IERC20FuncSigs maps the 4-byte function signature to its string representation.
 16729  var IERC20FuncSigs = map[string]string{
 16730  	"dd62ed3e": "allowance(address,address)",
 16731  	"095ea7b3": "approve(address,uint256)",
 16732  	"70a08231": "balanceOf(address)",
 16733  	"18160ddd": "totalSupply()",
 16734  	"a9059cbb": "transfer(address,uint256)",
 16735  	"23b872dd": "transferFrom(address,address,uint256)",
 16736  }
 16737  
 16738  // IERC20 is an auto generated Go binding around an Ethereum contract.
 16739  type IERC20 struct {
 16740  	IERC20Caller     // Read-only binding to the contract
 16741  	IERC20Transactor // Write-only binding to the contract
 16742  	IERC20Filterer   // Log filterer for contract events
 16743  }
 16744  
 16745  // IERC20Caller is an auto generated read-only Go binding around an Ethereum contract.
 16746  type IERC20Caller struct {
 16747  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16748  }
 16749  
 16750  // IERC20Transactor is an auto generated write-only Go binding around an Ethereum contract.
 16751  type IERC20Transactor struct {
 16752  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16753  }
 16754  
 16755  // IERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
 16756  type IERC20Filterer struct {
 16757  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16758  }
 16759  
 16760  // IERC20Session is an auto generated Go binding around an Ethereum contract,
 16761  // with pre-set call and transact options.
 16762  type IERC20Session struct {
 16763  	Contract     *IERC20           // Generic contract binding to set the session for
 16764  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 16765  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 16766  }
 16767  
 16768  // IERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract,
 16769  // with pre-set call options.
 16770  type IERC20CallerSession struct {
 16771  	Contract *IERC20Caller // Generic contract caller binding to set the session for
 16772  	CallOpts bind.CallOpts // Call options to use throughout this session
 16773  }
 16774  
 16775  // IERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 16776  // with pre-set transact options.
 16777  type IERC20TransactorSession struct {
 16778  	Contract     *IERC20Transactor // Generic contract transactor binding to set the session for
 16779  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 16780  }
 16781  
 16782  // IERC20Raw is an auto generated low-level Go binding around an Ethereum contract.
 16783  type IERC20Raw struct {
 16784  	Contract *IERC20 // Generic contract binding to access the raw methods on
 16785  }
 16786  
 16787  // IERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 16788  type IERC20CallerRaw struct {
 16789  	Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on
 16790  }
 16791  
 16792  // IERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 16793  type IERC20TransactorRaw struct {
 16794  	Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on
 16795  }
 16796  
 16797  // NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract.
 16798  func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error) {
 16799  	contract, err := bindIERC20(address, backend, backend, backend)
 16800  	if err != nil {
 16801  		return nil, err
 16802  	}
 16803  	return &IERC20{IERC20Caller: IERC20Caller{contract: contract}, IERC20Transactor: IERC20Transactor{contract: contract}, IERC20Filterer: IERC20Filterer{contract: contract}}, nil
 16804  }
 16805  
 16806  // NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract.
 16807  func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error) {
 16808  	contract, err := bindIERC20(address, caller, nil, nil)
 16809  	if err != nil {
 16810  		return nil, err
 16811  	}
 16812  	return &IERC20Caller{contract: contract}, nil
 16813  }
 16814  
 16815  // NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract.
 16816  func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error) {
 16817  	contract, err := bindIERC20(address, nil, transactor, nil)
 16818  	if err != nil {
 16819  		return nil, err
 16820  	}
 16821  	return &IERC20Transactor{contract: contract}, nil
 16822  }
 16823  
 16824  // NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract.
 16825  func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error) {
 16826  	contract, err := bindIERC20(address, nil, nil, filterer)
 16827  	if err != nil {
 16828  		return nil, err
 16829  	}
 16830  	return &IERC20Filterer{contract: contract}, nil
 16831  }
 16832  
 16833  // bindIERC20 binds a generic wrapper to an already deployed contract.
 16834  func bindIERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 16835  	parsed, err := abi.JSON(strings.NewReader(IERC20ABI))
 16836  	if err != nil {
 16837  		return nil, err
 16838  	}
 16839  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 16840  }
 16841  
 16842  // Call invokes the (constant) contract method with params as input values and
 16843  // sets the output to result. The result type might be a single field for simple
 16844  // returns, a slice of interfaces for anonymous returns and a struct for named
 16845  // returns.
 16846  func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 16847  	return _IERC20.Contract.IERC20Caller.contract.Call(opts, result, method, params...)
 16848  }
 16849  
 16850  // Transfer initiates a plain transaction to move funds to the contract, calling
 16851  // its default method if one is available.
 16852  func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 16853  	return _IERC20.Contract.IERC20Transactor.contract.Transfer(opts)
 16854  }
 16855  
 16856  // Transact invokes the (paid) contract method with params as input values.
 16857  func (_IERC20 *IERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 16858  	return _IERC20.Contract.IERC20Transactor.contract.Transact(opts, method, params...)
 16859  }
 16860  
 16861  // Call invokes the (constant) contract method with params as input values and
 16862  // sets the output to result. The result type might be a single field for simple
 16863  // returns, a slice of interfaces for anonymous returns and a struct for named
 16864  // returns.
 16865  func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 16866  	return _IERC20.Contract.contract.Call(opts, result, method, params...)
 16867  }
 16868  
 16869  // Transfer initiates a plain transaction to move funds to the contract, calling
 16870  // its default method if one is available.
 16871  func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 16872  	return _IERC20.Contract.contract.Transfer(opts)
 16873  }
 16874  
 16875  // Transact invokes the (paid) contract method with params as input values.
 16876  func (_IERC20 *IERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 16877  	return _IERC20.Contract.contract.Transact(opts, method, params...)
 16878  }
 16879  
 16880  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 16881  //
 16882  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 16883  func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 16884  	var (
 16885  		ret0 = new(*big.Int)
 16886  	)
 16887  	out := ret0
 16888  	err := _IERC20.contract.Call(opts, out, "allowance", owner, spender)
 16889  	return *ret0, err
 16890  }
 16891  
 16892  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 16893  //
 16894  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 16895  func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 16896  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
 16897  }
 16898  
 16899  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 16900  //
 16901  // Solidity: function allowance(address owner, address spender) constant returns(uint256)
 16902  func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 16903  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
 16904  }
 16905  
 16906  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 16907  //
 16908  // Solidity: function balanceOf(address account) constant returns(uint256)
 16909  func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 16910  	var (
 16911  		ret0 = new(*big.Int)
 16912  	)
 16913  	out := ret0
 16914  	err := _IERC20.contract.Call(opts, out, "balanceOf", account)
 16915  	return *ret0, err
 16916  }
 16917  
 16918  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 16919  //
 16920  // Solidity: function balanceOf(address account) constant returns(uint256)
 16921  func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
 16922  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
 16923  }
 16924  
 16925  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 16926  //
 16927  // Solidity: function balanceOf(address account) constant returns(uint256)
 16928  func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 16929  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
 16930  }
 16931  
 16932  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 16933  //
 16934  // Solidity: function totalSupply() constant returns(uint256)
 16935  func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 16936  	var (
 16937  		ret0 = new(*big.Int)
 16938  	)
 16939  	out := ret0
 16940  	err := _IERC20.contract.Call(opts, out, "totalSupply")
 16941  	return *ret0, err
 16942  }
 16943  
 16944  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 16945  //
 16946  // Solidity: function totalSupply() constant returns(uint256)
 16947  func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error) {
 16948  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
 16949  }
 16950  
 16951  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 16952  //
 16953  // Solidity: function totalSupply() constant returns(uint256)
 16954  func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error) {
 16955  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
 16956  }
 16957  
 16958  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 16959  //
 16960  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 16961  func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 16962  	return _IERC20.contract.Transact(opts, "approve", spender, amount)
 16963  }
 16964  
 16965  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 16966  //
 16967  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 16968  func (_IERC20 *IERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 16969  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
 16970  }
 16971  
 16972  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 16973  //
 16974  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 16975  func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 16976  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
 16977  }
 16978  
 16979  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 16980  //
 16981  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 16982  func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 16983  	return _IERC20.contract.Transact(opts, "transfer", recipient, amount)
 16984  }
 16985  
 16986  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 16987  //
 16988  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 16989  func (_IERC20 *IERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 16990  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
 16991  }
 16992  
 16993  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 16994  //
 16995  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 16996  func (_IERC20 *IERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 16997  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
 16998  }
 16999  
 17000  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 17001  //
 17002  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 17003  func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 17004  	return _IERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 17005  }
 17006  
 17007  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 17008  //
 17009  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 17010  func (_IERC20 *IERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 17011  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
 17012  }
 17013  
 17014  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 17015  //
 17016  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 17017  func (_IERC20 *IERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 17018  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
 17019  }
 17020  
 17021  // IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract.
 17022  type IERC20ApprovalIterator struct {
 17023  	Event *IERC20Approval // Event containing the contract specifics and raw log
 17024  
 17025  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17026  	event    string              // Event name to use for unpacking event data
 17027  
 17028  	logs chan types.Log        // Log channel receiving the found contract events
 17029  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 17030  	done bool                  // Whether the subscription completed delivering logs
 17031  	fail error                 // Occurred error to stop iteration
 17032  }
 17033  
 17034  // Next advances the iterator to the subsequent event, returning whether there
 17035  // are any more events found. In case of a retrieval or parsing error, false is
 17036  // returned and Error() can be queried for the exact failure.
 17037  func (it *IERC20ApprovalIterator) Next() bool {
 17038  	// If the iterator failed, stop iterating
 17039  	if it.fail != nil {
 17040  		return false
 17041  	}
 17042  	// If the iterator completed, deliver directly whatever's available
 17043  	if it.done {
 17044  		select {
 17045  		case log := <-it.logs:
 17046  			it.Event = new(IERC20Approval)
 17047  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17048  				it.fail = err
 17049  				return false
 17050  			}
 17051  			it.Event.Raw = log
 17052  			return true
 17053  
 17054  		default:
 17055  			return false
 17056  		}
 17057  	}
 17058  	// Iterator still in progress, wait for either a data or an error event
 17059  	select {
 17060  	case log := <-it.logs:
 17061  		it.Event = new(IERC20Approval)
 17062  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17063  			it.fail = err
 17064  			return false
 17065  		}
 17066  		it.Event.Raw = log
 17067  		return true
 17068  
 17069  	case err := <-it.sub.Err():
 17070  		it.done = true
 17071  		it.fail = err
 17072  		return it.Next()
 17073  	}
 17074  }
 17075  
 17076  // Error returns any retrieval or parsing error occurred during filtering.
 17077  func (it *IERC20ApprovalIterator) Error() error {
 17078  	return it.fail
 17079  }
 17080  
 17081  // Close terminates the iteration process, releasing any pending underlying
 17082  // resources.
 17083  func (it *IERC20ApprovalIterator) Close() error {
 17084  	it.sub.Unsubscribe()
 17085  	return nil
 17086  }
 17087  
 17088  // IERC20Approval represents a Approval event raised by the IERC20 contract.
 17089  type IERC20Approval struct {
 17090  	Owner   common.Address
 17091  	Spender common.Address
 17092  	Value   *big.Int
 17093  	Raw     types.Log // Blockchain specific contextual infos
 17094  }
 17095  
 17096  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 17097  //
 17098  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 17099  func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error) {
 17100  
 17101  	var ownerRule []interface{}
 17102  	for _, ownerItem := range owner {
 17103  		ownerRule = append(ownerRule, ownerItem)
 17104  	}
 17105  	var spenderRule []interface{}
 17106  	for _, spenderItem := range spender {
 17107  		spenderRule = append(spenderRule, spenderItem)
 17108  	}
 17109  
 17110  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 17111  	if err != nil {
 17112  		return nil, err
 17113  	}
 17114  	return &IERC20ApprovalIterator{contract: _IERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
 17115  }
 17116  
 17117  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 17118  //
 17119  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 17120  func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 17121  
 17122  	var ownerRule []interface{}
 17123  	for _, ownerItem := range owner {
 17124  		ownerRule = append(ownerRule, ownerItem)
 17125  	}
 17126  	var spenderRule []interface{}
 17127  	for _, spenderItem := range spender {
 17128  		spenderRule = append(spenderRule, spenderItem)
 17129  	}
 17130  
 17131  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 17132  	if err != nil {
 17133  		return nil, err
 17134  	}
 17135  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17136  		defer sub.Unsubscribe()
 17137  		for {
 17138  			select {
 17139  			case log := <-logs:
 17140  				// New log arrived, parse the event and forward to the user
 17141  				event := new(IERC20Approval)
 17142  				if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 17143  					return err
 17144  				}
 17145  				event.Raw = log
 17146  
 17147  				select {
 17148  				case sink <- event:
 17149  				case err := <-sub.Err():
 17150  					return err
 17151  				case <-quit:
 17152  					return nil
 17153  				}
 17154  			case err := <-sub.Err():
 17155  				return err
 17156  			case <-quit:
 17157  				return nil
 17158  			}
 17159  		}
 17160  	}), nil
 17161  }
 17162  
 17163  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 17164  //
 17165  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 17166  func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error) {
 17167  	event := new(IERC20Approval)
 17168  	if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 17169  		return nil, err
 17170  	}
 17171  	return event, nil
 17172  }
 17173  
 17174  // IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20 contract.
 17175  type IERC20TransferIterator struct {
 17176  	Event *IERC20Transfer // Event containing the contract specifics and raw log
 17177  
 17178  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17179  	event    string              // Event name to use for unpacking event data
 17180  
 17181  	logs chan types.Log        // Log channel receiving the found contract events
 17182  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 17183  	done bool                  // Whether the subscription completed delivering logs
 17184  	fail error                 // Occurred error to stop iteration
 17185  }
 17186  
 17187  // Next advances the iterator to the subsequent event, returning whether there
 17188  // are any more events found. In case of a retrieval or parsing error, false is
 17189  // returned and Error() can be queried for the exact failure.
 17190  func (it *IERC20TransferIterator) Next() bool {
 17191  	// If the iterator failed, stop iterating
 17192  	if it.fail != nil {
 17193  		return false
 17194  	}
 17195  	// If the iterator completed, deliver directly whatever's available
 17196  	if it.done {
 17197  		select {
 17198  		case log := <-it.logs:
 17199  			it.Event = new(IERC20Transfer)
 17200  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17201  				it.fail = err
 17202  				return false
 17203  			}
 17204  			it.Event.Raw = log
 17205  			return true
 17206  
 17207  		default:
 17208  			return false
 17209  		}
 17210  	}
 17211  	// Iterator still in progress, wait for either a data or an error event
 17212  	select {
 17213  	case log := <-it.logs:
 17214  		it.Event = new(IERC20Transfer)
 17215  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17216  			it.fail = err
 17217  			return false
 17218  		}
 17219  		it.Event.Raw = log
 17220  		return true
 17221  
 17222  	case err := <-it.sub.Err():
 17223  		it.done = true
 17224  		it.fail = err
 17225  		return it.Next()
 17226  	}
 17227  }
 17228  
 17229  // Error returns any retrieval or parsing error occurred during filtering.
 17230  func (it *IERC20TransferIterator) Error() error {
 17231  	return it.fail
 17232  }
 17233  
 17234  // Close terminates the iteration process, releasing any pending underlying
 17235  // resources.
 17236  func (it *IERC20TransferIterator) Close() error {
 17237  	it.sub.Unsubscribe()
 17238  	return nil
 17239  }
 17240  
 17241  // IERC20Transfer represents a Transfer event raised by the IERC20 contract.
 17242  type IERC20Transfer struct {
 17243  	From  common.Address
 17244  	To    common.Address
 17245  	Value *big.Int
 17246  	Raw   types.Log // Blockchain specific contextual infos
 17247  }
 17248  
 17249  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 17250  //
 17251  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 17252  func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error) {
 17253  
 17254  	var fromRule []interface{}
 17255  	for _, fromItem := range from {
 17256  		fromRule = append(fromRule, fromItem)
 17257  	}
 17258  	var toRule []interface{}
 17259  	for _, toItem := range to {
 17260  		toRule = append(toRule, toItem)
 17261  	}
 17262  
 17263  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 17264  	if err != nil {
 17265  		return nil, err
 17266  	}
 17267  	return &IERC20TransferIterator{contract: _IERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
 17268  }
 17269  
 17270  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 17271  //
 17272  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 17273  func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 17274  
 17275  	var fromRule []interface{}
 17276  	for _, fromItem := range from {
 17277  		fromRule = append(fromRule, fromItem)
 17278  	}
 17279  	var toRule []interface{}
 17280  	for _, toItem := range to {
 17281  		toRule = append(toRule, toItem)
 17282  	}
 17283  
 17284  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 17285  	if err != nil {
 17286  		return nil, err
 17287  	}
 17288  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17289  		defer sub.Unsubscribe()
 17290  		for {
 17291  			select {
 17292  			case log := <-logs:
 17293  				// New log arrived, parse the event and forward to the user
 17294  				event := new(IERC20Transfer)
 17295  				if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 17296  					return err
 17297  				}
 17298  				event.Raw = log
 17299  
 17300  				select {
 17301  				case sink <- event:
 17302  				case err := <-sub.Err():
 17303  					return err
 17304  				case <-quit:
 17305  					return nil
 17306  				}
 17307  			case err := <-sub.Err():
 17308  				return err
 17309  			case <-quit:
 17310  				return nil
 17311  			}
 17312  		}
 17313  	}), nil
 17314  }
 17315  
 17316  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 17317  //
 17318  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 17319  func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error) {
 17320  	event := new(IERC20Transfer)
 17321  	if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 17322  		return nil, err
 17323  	}
 17324  	return event, nil
 17325  }
 17326  
 17327  // IsContractABI is the input ABI used to generate the binding from.
 17328  const IsContractABI = "[]"
 17329  
 17330  // IsContractBin is the compiled bytecode used for deploying new contracts.
 17331  var IsContractBin = "0x6080604052348015600f57600080fd5b50603e80601d6000396000f3fe6080604052600080fdfea265627a7a7231582067cb16b73c67642688900f54175de899738878e910b642bca8dd45813302830f64736f6c634300050c0032"
 17332  
 17333  // DeployIsContract deploys a new Ethereum contract, binding an instance of IsContract to it.
 17334  func DeployIsContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *IsContract, error) {
 17335  	parsed, err := abi.JSON(strings.NewReader(IsContractABI))
 17336  	if err != nil {
 17337  		return common.Address{}, nil, nil, err
 17338  	}
 17339  
 17340  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(IsContractBin), backend)
 17341  	if err != nil {
 17342  		return common.Address{}, nil, nil, err
 17343  	}
 17344  	return address, tx, &IsContract{IsContractCaller: IsContractCaller{contract: contract}, IsContractTransactor: IsContractTransactor{contract: contract}, IsContractFilterer: IsContractFilterer{contract: contract}}, nil
 17345  }
 17346  
 17347  // IsContract is an auto generated Go binding around an Ethereum contract.
 17348  type IsContract struct {
 17349  	IsContractCaller     // Read-only binding to the contract
 17350  	IsContractTransactor // Write-only binding to the contract
 17351  	IsContractFilterer   // Log filterer for contract events
 17352  }
 17353  
 17354  // IsContractCaller is an auto generated read-only Go binding around an Ethereum contract.
 17355  type IsContractCaller struct {
 17356  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17357  }
 17358  
 17359  // IsContractTransactor is an auto generated write-only Go binding around an Ethereum contract.
 17360  type IsContractTransactor struct {
 17361  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17362  }
 17363  
 17364  // IsContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 17365  type IsContractFilterer struct {
 17366  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17367  }
 17368  
 17369  // IsContractSession is an auto generated Go binding around an Ethereum contract,
 17370  // with pre-set call and transact options.
 17371  type IsContractSession struct {
 17372  	Contract     *IsContract       // Generic contract binding to set the session for
 17373  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 17374  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 17375  }
 17376  
 17377  // IsContractCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 17378  // with pre-set call options.
 17379  type IsContractCallerSession struct {
 17380  	Contract *IsContractCaller // Generic contract caller binding to set the session for
 17381  	CallOpts bind.CallOpts     // Call options to use throughout this session
 17382  }
 17383  
 17384  // IsContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 17385  // with pre-set transact options.
 17386  type IsContractTransactorSession struct {
 17387  	Contract     *IsContractTransactor // Generic contract transactor binding to set the session for
 17388  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 17389  }
 17390  
 17391  // IsContractRaw is an auto generated low-level Go binding around an Ethereum contract.
 17392  type IsContractRaw struct {
 17393  	Contract *IsContract // Generic contract binding to access the raw methods on
 17394  }
 17395  
 17396  // IsContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 17397  type IsContractCallerRaw struct {
 17398  	Contract *IsContractCaller // Generic read-only contract binding to access the raw methods on
 17399  }
 17400  
 17401  // IsContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 17402  type IsContractTransactorRaw struct {
 17403  	Contract *IsContractTransactor // Generic write-only contract binding to access the raw methods on
 17404  }
 17405  
 17406  // NewIsContract creates a new instance of IsContract, bound to a specific deployed contract.
 17407  func NewIsContract(address common.Address, backend bind.ContractBackend) (*IsContract, error) {
 17408  	contract, err := bindIsContract(address, backend, backend, backend)
 17409  	if err != nil {
 17410  		return nil, err
 17411  	}
 17412  	return &IsContract{IsContractCaller: IsContractCaller{contract: contract}, IsContractTransactor: IsContractTransactor{contract: contract}, IsContractFilterer: IsContractFilterer{contract: contract}}, nil
 17413  }
 17414  
 17415  // NewIsContractCaller creates a new read-only instance of IsContract, bound to a specific deployed contract.
 17416  func NewIsContractCaller(address common.Address, caller bind.ContractCaller) (*IsContractCaller, error) {
 17417  	contract, err := bindIsContract(address, caller, nil, nil)
 17418  	if err != nil {
 17419  		return nil, err
 17420  	}
 17421  	return &IsContractCaller{contract: contract}, nil
 17422  }
 17423  
 17424  // NewIsContractTransactor creates a new write-only instance of IsContract, bound to a specific deployed contract.
 17425  func NewIsContractTransactor(address common.Address, transactor bind.ContractTransactor) (*IsContractTransactor, error) {
 17426  	contract, err := bindIsContract(address, nil, transactor, nil)
 17427  	if err != nil {
 17428  		return nil, err
 17429  	}
 17430  	return &IsContractTransactor{contract: contract}, nil
 17431  }
 17432  
 17433  // NewIsContractFilterer creates a new log filterer instance of IsContract, bound to a specific deployed contract.
 17434  func NewIsContractFilterer(address common.Address, filterer bind.ContractFilterer) (*IsContractFilterer, error) {
 17435  	contract, err := bindIsContract(address, nil, nil, filterer)
 17436  	if err != nil {
 17437  		return nil, err
 17438  	}
 17439  	return &IsContractFilterer{contract: contract}, nil
 17440  }
 17441  
 17442  // bindIsContract binds a generic wrapper to an already deployed contract.
 17443  func bindIsContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17444  	parsed, err := abi.JSON(strings.NewReader(IsContractABI))
 17445  	if err != nil {
 17446  		return nil, err
 17447  	}
 17448  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 17449  }
 17450  
 17451  // Call invokes the (constant) contract method with params as input values and
 17452  // sets the output to result. The result type might be a single field for simple
 17453  // returns, a slice of interfaces for anonymous returns and a struct for named
 17454  // returns.
 17455  func (_IsContract *IsContractRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 17456  	return _IsContract.Contract.IsContractCaller.contract.Call(opts, result, method, params...)
 17457  }
 17458  
 17459  // Transfer initiates a plain transaction to move funds to the contract, calling
 17460  // its default method if one is available.
 17461  func (_IsContract *IsContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17462  	return _IsContract.Contract.IsContractTransactor.contract.Transfer(opts)
 17463  }
 17464  
 17465  // Transact invokes the (paid) contract method with params as input values.
 17466  func (_IsContract *IsContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17467  	return _IsContract.Contract.IsContractTransactor.contract.Transact(opts, method, params...)
 17468  }
 17469  
 17470  // Call invokes the (constant) contract method with params as input values and
 17471  // sets the output to result. The result type might be a single field for simple
 17472  // returns, a slice of interfaces for anonymous returns and a struct for named
 17473  // returns.
 17474  func (_IsContract *IsContractCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 17475  	return _IsContract.Contract.contract.Call(opts, result, method, params...)
 17476  }
 17477  
 17478  // Transfer initiates a plain transaction to move funds to the contract, calling
 17479  // its default method if one is available.
 17480  func (_IsContract *IsContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17481  	return _IsContract.Contract.contract.Transfer(opts)
 17482  }
 17483  
 17484  // Transact invokes the (paid) contract method with params as input values.
 17485  func (_IsContract *IsContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17486  	return _IsContract.Contract.contract.Transact(opts, method, params...)
 17487  }
 17488  
 17489  // MigrationsABI is the input ABI used to generate the binding from.
 17490  const MigrationsABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 17491  
 17492  // MigrationsFuncSigs maps the 4-byte function signature to its string representation.
 17493  var MigrationsFuncSigs = map[string]string{
 17494  	"445df0ac": "last_completed_migration()",
 17495  	"8da5cb5b": "owner()",
 17496  	"fdacd576": "setCompleted(uint256)",
 17497  	"0900f010": "upgrade(address)",
 17498  }
 17499  
 17500  // MigrationsBin is the compiled bytecode used for deploying new contracts.
 17501  var MigrationsBin = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a723158205289ded263102a97835af8cb578c71b8a327c813af682129fe78357a8197a5c064736f6c634300050c0032"
 17502  
 17503  // DeployMigrations deploys a new Ethereum contract, binding an instance of Migrations to it.
 17504  func DeployMigrations(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Migrations, error) {
 17505  	parsed, err := abi.JSON(strings.NewReader(MigrationsABI))
 17506  	if err != nil {
 17507  		return common.Address{}, nil, nil, err
 17508  	}
 17509  
 17510  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(MigrationsBin), backend)
 17511  	if err != nil {
 17512  		return common.Address{}, nil, nil, err
 17513  	}
 17514  	return address, tx, &Migrations{MigrationsCaller: MigrationsCaller{contract: contract}, MigrationsTransactor: MigrationsTransactor{contract: contract}, MigrationsFilterer: MigrationsFilterer{contract: contract}}, nil
 17515  }
 17516  
 17517  // Migrations is an auto generated Go binding around an Ethereum contract.
 17518  type Migrations struct {
 17519  	MigrationsCaller     // Read-only binding to the contract
 17520  	MigrationsTransactor // Write-only binding to the contract
 17521  	MigrationsFilterer   // Log filterer for contract events
 17522  }
 17523  
 17524  // MigrationsCaller is an auto generated read-only Go binding around an Ethereum contract.
 17525  type MigrationsCaller struct {
 17526  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17527  }
 17528  
 17529  // MigrationsTransactor is an auto generated write-only Go binding around an Ethereum contract.
 17530  type MigrationsTransactor struct {
 17531  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17532  }
 17533  
 17534  // MigrationsFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 17535  type MigrationsFilterer struct {
 17536  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17537  }
 17538  
 17539  // MigrationsSession is an auto generated Go binding around an Ethereum contract,
 17540  // with pre-set call and transact options.
 17541  type MigrationsSession struct {
 17542  	Contract     *Migrations       // Generic contract binding to set the session for
 17543  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 17544  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 17545  }
 17546  
 17547  // MigrationsCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 17548  // with pre-set call options.
 17549  type MigrationsCallerSession struct {
 17550  	Contract *MigrationsCaller // Generic contract caller binding to set the session for
 17551  	CallOpts bind.CallOpts     // Call options to use throughout this session
 17552  }
 17553  
 17554  // MigrationsTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 17555  // with pre-set transact options.
 17556  type MigrationsTransactorSession struct {
 17557  	Contract     *MigrationsTransactor // Generic contract transactor binding to set the session for
 17558  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 17559  }
 17560  
 17561  // MigrationsRaw is an auto generated low-level Go binding around an Ethereum contract.
 17562  type MigrationsRaw struct {
 17563  	Contract *Migrations // Generic contract binding to access the raw methods on
 17564  }
 17565  
 17566  // MigrationsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 17567  type MigrationsCallerRaw struct {
 17568  	Contract *MigrationsCaller // Generic read-only contract binding to access the raw methods on
 17569  }
 17570  
 17571  // MigrationsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 17572  type MigrationsTransactorRaw struct {
 17573  	Contract *MigrationsTransactor // Generic write-only contract binding to access the raw methods on
 17574  }
 17575  
 17576  // NewMigrations creates a new instance of Migrations, bound to a specific deployed contract.
 17577  func NewMigrations(address common.Address, backend bind.ContractBackend) (*Migrations, error) {
 17578  	contract, err := bindMigrations(address, backend, backend, backend)
 17579  	if err != nil {
 17580  		return nil, err
 17581  	}
 17582  	return &Migrations{MigrationsCaller: MigrationsCaller{contract: contract}, MigrationsTransactor: MigrationsTransactor{contract: contract}, MigrationsFilterer: MigrationsFilterer{contract: contract}}, nil
 17583  }
 17584  
 17585  // NewMigrationsCaller creates a new read-only instance of Migrations, bound to a specific deployed contract.
 17586  func NewMigrationsCaller(address common.Address, caller bind.ContractCaller) (*MigrationsCaller, error) {
 17587  	contract, err := bindMigrations(address, caller, nil, nil)
 17588  	if err != nil {
 17589  		return nil, err
 17590  	}
 17591  	return &MigrationsCaller{contract: contract}, nil
 17592  }
 17593  
 17594  // NewMigrationsTransactor creates a new write-only instance of Migrations, bound to a specific deployed contract.
 17595  func NewMigrationsTransactor(address common.Address, transactor bind.ContractTransactor) (*MigrationsTransactor, error) {
 17596  	contract, err := bindMigrations(address, nil, transactor, nil)
 17597  	if err != nil {
 17598  		return nil, err
 17599  	}
 17600  	return &MigrationsTransactor{contract: contract}, nil
 17601  }
 17602  
 17603  // NewMigrationsFilterer creates a new log filterer instance of Migrations, bound to a specific deployed contract.
 17604  func NewMigrationsFilterer(address common.Address, filterer bind.ContractFilterer) (*MigrationsFilterer, error) {
 17605  	contract, err := bindMigrations(address, nil, nil, filterer)
 17606  	if err != nil {
 17607  		return nil, err
 17608  	}
 17609  	return &MigrationsFilterer{contract: contract}, nil
 17610  }
 17611  
 17612  // bindMigrations binds a generic wrapper to an already deployed contract.
 17613  func bindMigrations(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17614  	parsed, err := abi.JSON(strings.NewReader(MigrationsABI))
 17615  	if err != nil {
 17616  		return nil, err
 17617  	}
 17618  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 17619  }
 17620  
 17621  // Call invokes the (constant) contract method with params as input values and
 17622  // sets the output to result. The result type might be a single field for simple
 17623  // returns, a slice of interfaces for anonymous returns and a struct for named
 17624  // returns.
 17625  func (_Migrations *MigrationsRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 17626  	return _Migrations.Contract.MigrationsCaller.contract.Call(opts, result, method, params...)
 17627  }
 17628  
 17629  // Transfer initiates a plain transaction to move funds to the contract, calling
 17630  // its default method if one is available.
 17631  func (_Migrations *MigrationsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17632  	return _Migrations.Contract.MigrationsTransactor.contract.Transfer(opts)
 17633  }
 17634  
 17635  // Transact invokes the (paid) contract method with params as input values.
 17636  func (_Migrations *MigrationsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17637  	return _Migrations.Contract.MigrationsTransactor.contract.Transact(opts, method, params...)
 17638  }
 17639  
 17640  // Call invokes the (constant) contract method with params as input values and
 17641  // sets the output to result. The result type might be a single field for simple
 17642  // returns, a slice of interfaces for anonymous returns and a struct for named
 17643  // returns.
 17644  func (_Migrations *MigrationsCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 17645  	return _Migrations.Contract.contract.Call(opts, result, method, params...)
 17646  }
 17647  
 17648  // Transfer initiates a plain transaction to move funds to the contract, calling
 17649  // its default method if one is available.
 17650  func (_Migrations *MigrationsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17651  	return _Migrations.Contract.contract.Transfer(opts)
 17652  }
 17653  
 17654  // Transact invokes the (paid) contract method with params as input values.
 17655  func (_Migrations *MigrationsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17656  	return _Migrations.Contract.contract.Transact(opts, method, params...)
 17657  }
 17658  
 17659  // LastCompletedMigration is a free data retrieval call binding the contract method 0x445df0ac.
 17660  //
 17661  // Solidity: function last_completed_migration() constant returns(uint256)
 17662  func (_Migrations *MigrationsCaller) LastCompletedMigration(opts *bind.CallOpts) (*big.Int, error) {
 17663  	var (
 17664  		ret0 = new(*big.Int)
 17665  	)
 17666  	out := ret0
 17667  	err := _Migrations.contract.Call(opts, out, "last_completed_migration")
 17668  	return *ret0, err
 17669  }
 17670  
 17671  // LastCompletedMigration is a free data retrieval call binding the contract method 0x445df0ac.
 17672  //
 17673  // Solidity: function last_completed_migration() constant returns(uint256)
 17674  func (_Migrations *MigrationsSession) LastCompletedMigration() (*big.Int, error) {
 17675  	return _Migrations.Contract.LastCompletedMigration(&_Migrations.CallOpts)
 17676  }
 17677  
 17678  // LastCompletedMigration is a free data retrieval call binding the contract method 0x445df0ac.
 17679  //
 17680  // Solidity: function last_completed_migration() constant returns(uint256)
 17681  func (_Migrations *MigrationsCallerSession) LastCompletedMigration() (*big.Int, error) {
 17682  	return _Migrations.Contract.LastCompletedMigration(&_Migrations.CallOpts)
 17683  }
 17684  
 17685  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 17686  //
 17687  // Solidity: function owner() constant returns(address)
 17688  func (_Migrations *MigrationsCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 17689  	var (
 17690  		ret0 = new(common.Address)
 17691  	)
 17692  	out := ret0
 17693  	err := _Migrations.contract.Call(opts, out, "owner")
 17694  	return *ret0, err
 17695  }
 17696  
 17697  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 17698  //
 17699  // Solidity: function owner() constant returns(address)
 17700  func (_Migrations *MigrationsSession) Owner() (common.Address, error) {
 17701  	return _Migrations.Contract.Owner(&_Migrations.CallOpts)
 17702  }
 17703  
 17704  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 17705  //
 17706  // Solidity: function owner() constant returns(address)
 17707  func (_Migrations *MigrationsCallerSession) Owner() (common.Address, error) {
 17708  	return _Migrations.Contract.Owner(&_Migrations.CallOpts)
 17709  }
 17710  
 17711  // SetCompleted is a paid mutator transaction binding the contract method 0xfdacd576.
 17712  //
 17713  // Solidity: function setCompleted(uint256 completed) returns()
 17714  func (_Migrations *MigrationsTransactor) SetCompleted(opts *bind.TransactOpts, completed *big.Int) (*types.Transaction, error) {
 17715  	return _Migrations.contract.Transact(opts, "setCompleted", completed)
 17716  }
 17717  
 17718  // SetCompleted is a paid mutator transaction binding the contract method 0xfdacd576.
 17719  //
 17720  // Solidity: function setCompleted(uint256 completed) returns()
 17721  func (_Migrations *MigrationsSession) SetCompleted(completed *big.Int) (*types.Transaction, error) {
 17722  	return _Migrations.Contract.SetCompleted(&_Migrations.TransactOpts, completed)
 17723  }
 17724  
 17725  // SetCompleted is a paid mutator transaction binding the contract method 0xfdacd576.
 17726  //
 17727  // Solidity: function setCompleted(uint256 completed) returns()
 17728  func (_Migrations *MigrationsTransactorSession) SetCompleted(completed *big.Int) (*types.Transaction, error) {
 17729  	return _Migrations.Contract.SetCompleted(&_Migrations.TransactOpts, completed)
 17730  }
 17731  
 17732  // Upgrade is a paid mutator transaction binding the contract method 0x0900f010.
 17733  //
 17734  // Solidity: function upgrade(address new_address) returns()
 17735  func (_Migrations *MigrationsTransactor) Upgrade(opts *bind.TransactOpts, new_address common.Address) (*types.Transaction, error) {
 17736  	return _Migrations.contract.Transact(opts, "upgrade", new_address)
 17737  }
 17738  
 17739  // Upgrade is a paid mutator transaction binding the contract method 0x0900f010.
 17740  //
 17741  // Solidity: function upgrade(address new_address) returns()
 17742  func (_Migrations *MigrationsSession) Upgrade(new_address common.Address) (*types.Transaction, error) {
 17743  	return _Migrations.Contract.Upgrade(&_Migrations.TransactOpts, new_address)
 17744  }
 17745  
 17746  // Upgrade is a paid mutator transaction binding the contract method 0x0900f010.
 17747  //
 17748  // Solidity: function upgrade(address new_address) returns()
 17749  func (_Migrations *MigrationsTransactorSession) Upgrade(new_address common.Address) (*types.Transaction, error) {
 17750  	return _Migrations.Contract.Upgrade(&_Migrations.TransactOpts, new_address)
 17751  }
 17752  
 17753  // MiniMeTokenABI is the input ABI used to generate the binding from.
 17754  const MiniMeTokenABI = "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_tokenFactory\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_parentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_parentSnapShotBlock\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"_tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ClaimedTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_cloneToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_snapshotBlock\",\"type\":\"uint256\"}],\"name\":\"NewCloneToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"balanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_newController\",\"type\":\"address\"}],\"name\":\"changeController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"claimTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_cloneTokenName\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_cloneDecimalUnits\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"_cloneTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"name\":\"createCloneToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"creationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyTokens\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"name\":\"enableTransfers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"generateTokens\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"parentSnapShotBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"parentToken\",\"outputs\":[{\"internalType\":\"contractMiniMeToken\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenFactory\",\"outputs\":[{\"internalType\":\"contractMiniMeTokenFactory\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 17755  
 17756  // MiniMeTokenFuncSigs maps the 4-byte function signature to its string representation.
 17757  var MiniMeTokenFuncSigs = map[string]string{
 17758  	"dd62ed3e": "allowance(address,address)",
 17759  	"095ea7b3": "approve(address,uint256)",
 17760  	"cae9ca51": "approveAndCall(address,uint256,bytes)",
 17761  	"70a08231": "balanceOf(address)",
 17762  	"4ee2cd7e": "balanceOfAt(address,uint256)",
 17763  	"3cebb823": "changeController(address)",
 17764  	"df8de3e7": "claimTokens(address)",
 17765  	"f77c4791": "controller()",
 17766  	"6638c087": "createCloneToken(string,uint8,string,uint256,bool)",
 17767  	"17634514": "creationBlock()",
 17768  	"313ce567": "decimals()",
 17769  	"d3ce77fe": "destroyTokens(address,uint256)",
 17770  	"f41e60c5": "enableTransfers(bool)",
 17771  	"827f32c0": "generateTokens(address,uint256)",
 17772  	"06fdde03": "name()",
 17773  	"c5bcc4f1": "parentSnapShotBlock()",
 17774  	"80a54001": "parentToken()",
 17775  	"95d89b41": "symbol()",
 17776  	"e77772fe": "tokenFactory()",
 17777  	"18160ddd": "totalSupply()",
 17778  	"981b24d0": "totalSupplyAt(uint256)",
 17779  	"a9059cbb": "transfer(address,uint256)",
 17780  	"23b872dd": "transferFrom(address,address,uint256)",
 17781  	"bef97c87": "transfersEnabled()",
 17782  	"54fd4d50": "version()",
 17783  }
 17784  
 17785  // MiniMeTokenBin is the compiled bytecode used for deploying new contracts.
 17786  var MiniMeTokenBin = "0x60c0604052600960808190527f435f4d4d545f302e31000000000000000000000000000000000000000000000060a0908152620000409160049190620002ab565b503480156200004e57600080fd5b5060405162001d9e38038062001d9e833981810160405260e08110156200007457600080fd5b815160208301516040808501516060860180519251949693959194939182019284640100000000821115620000a857600080fd5b908301906020820185811115620000be57600080fd5b8251640100000000811182820188101715620000d957600080fd5b82525081516020918201929091019080838360005b8381101562000108578181015183820152602001620000ee565b50505050905090810190601f168015620001365780820380516001836020036101000a031916815260200191505b506040818152602083015192018051929491939192846401000000008211156200015f57600080fd5b9083019060208201858111156200017557600080fd5b82516401000000008111828201881017156200019057600080fd5b82525081516020918201929091019080838360005b83811015620001bf578181015183820152602001620001a5565b50505050905090810190601f168015620001ed5780820380516001836020036101000a031916815260200191505b50604052602090810151600080546001600160a01b03191633179055600b80546001600160a01b038c1661010002610100600160a81b03199091161790558651909350620002429250600191870190620002ab565b506002805460ff191660ff8516179055815162000267906003906020850190620002ab565b50600580546001600160a01b0319166001600160a01b039790971696909617909555505050600655600b805460ff1916911515919091179055504360075562000350565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ee57805160ff19168380011785556200031e565b828001600101855582156200031e579182015b828111156200031e57825182559160200191906001019062000301565b506200032c92915062000330565b5090565b6200034d91905b808211156200032c576000815560010162000337565b90565b611a3e80620003606000396000f3fe6080604052600436106101665760003560e01c8063827f32c0116100d1578063cae9ca511161008a578063df8de3e711610064578063df8de3e7146107d2578063e77772fe14610805578063f41e60c51461081a578063f77c47911461084657610166565b8063cae9ca5114610696578063d3ce77fe1461075e578063dd62ed3e1461079757610166565b8063827f32c0146105bb57806395d89b41146105f4578063981b24d014610609578063a9059cbb14610633578063bef97c871461066c578063c5bcc4f11461068157610166565b80633cebb823116101235780633cebb8231461038a5780634ee2cd7e146103bd57806354fd4d50146103f65780636638c0871461040b57806370a082311461057357806380a54001146105a657610166565b806306fdde0314610209578063095ea7b31461029357806317634514146102e057806318160ddd1461030757806323b872dd1461031c578063313ce5671461035f575b60005461017b906001600160a01b031661085b565b61018457600080fd5b60005460408051633d230c1560e21b815233600482015290516001600160a01b039092169163f48c3054913491602480830192602092919082900301818588803b1580156101d157600080fd5b505af11580156101e5573d6000803e3d6000fd5b50505050506040513d60208110156101fc57600080fd5b505161020757600080fd5b005b34801561021557600080fd5b5061021e610882565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029f57600080fd5b506102cc600480360360408110156102b657600080fd5b506001600160a01b03813516906020013561090f565b604080519115158252519081900360200190f35b3480156102ec57600080fd5b506102f5610a6e565b60408051918252519081900360200190f35b34801561031357600080fd5b506102f5610a74565b34801561032857600080fd5b506102cc6004803603606081101561033f57600080fd5b506001600160a01b03813581169160208101359091169060400135610a85565b34801561036b57600080fd5b50610374610b17565b6040805160ff9092168252519081900360200190f35b34801561039657600080fd5b50610207600480360360208110156103ad57600080fd5b50356001600160a01b0316610b20565b3480156103c957600080fd5b506102f5600480360360408110156103e057600080fd5b506001600160a01b038135169060200135610b59565b34801561040257600080fd5b5061021e610c9f565b34801561041757600080fd5b50610557600480360360a081101561042e57600080fd5b81019060208101813564010000000081111561044957600080fd5b82018360208201111561045b57600080fd5b8035906020019184600183028401116401000000008311171561047d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929560ff8535169590949093506040810192506020013590506401000000008111156104db57600080fd5b8201836020820111156104ed57600080fd5b8035906020019184600183028401116401000000008311171561050f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001351515610cfa565b604080516001600160a01b039092168252519081900360200190f35b34801561057f57600080fd5b506102f56004803603602081101561059657600080fd5b50356001600160a01b0316610f3f565b3480156105b257600080fd5b50610557610f4b565b3480156105c757600080fd5b506102cc600480360360408110156105de57600080fd5b506001600160a01b038135169060200135610f5a565b34801561060057600080fd5b5061021e611026565b34801561061557600080fd5b506102f56004803603602081101561062c57600080fd5b5035611081565b34801561063f57600080fd5b506102cc6004803603604081101561065657600080fd5b506001600160a01b03813516906020013561116e565b34801561067857600080fd5b506102cc611194565b34801561068d57600080fd5b506102f561119d565b3480156106a257600080fd5b506102cc600480360360608110156106b957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156106e957600080fd5b8201836020820111156106fb57600080fd5b8035906020019184600183028401116401000000008311171561071d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111a3945050505050565b34801561076a57600080fd5b506102cc6004803603604081101561078157600080fd5b506001600160a01b0381351690602001356112a3565b3480156107a357600080fd5b506102f5600480360360408110156107ba57600080fd5b506001600160a01b0381358116916020013516611359565b3480156107de57600080fd5b50610207600480360360208110156107f557600080fd5b50356001600160a01b0316611384565b34801561081157600080fd5b50610557611534565b34801561082657600080fd5b506102076004803603602081101561083d57600080fd5b50351515611548565b34801561085257600080fd5b50610557611572565b6000806001600160a01b03831661087657600091505061087d565b5050803b15155b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109075780601f106108dc57610100808354040283529160200191610907565b820191906000526020600020905b8154815290600101906020018083116108ea57829003601f168201915b505050505081565b600b5460009060ff1661092157600080fd5b81158061094f57503360009081526009602090815260408083206001600160a01b0387168452909152902054155b61095857600080fd5b60005461096d906001600160a01b031661085b565b15610a0657600080546040805163da682aeb60e01b81523360048201526001600160a01b038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b1580156109d157600080fd5b505af11580156109e5573d6000803e3d6000fd5b505050506040513d60208110156109fb57600080fd5b5051610a0657600080fd5b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60075481565b6000610a7f43611081565b90505b90565b600080546001600160a01b03163314610b0257600b5460ff16610aa757600080fd5b6001600160a01b0384166000908152600960209081526040808320338452909152902054821115610ad757600080fd5b6001600160a01b03841660009081526009602090815260408083203384529091529020805483900390555b610b0d848484611581565b5060019392505050565b60025460ff1681565b6000546001600160a01b03163314610b3757600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166000908152600860205260408120541580610bb357506001600160a01b03831660009081526008602052604081208054849290610b9c57fe5b6000918252602090912001546001600160801b0316115b15610c76576005546001600160a01b031615610c6e576005546006546001600160a01b0390911690634ee2cd7e908590610bee908690611776565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015610c3b57600080fd5b505afa158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b50519050610a68565b506000610a68565b6001600160a01b0383166000908152600860205260409020610c98908361178e565b9050610a68565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109075780601f106108dc57610100808354040283529160200191610907565b600082610d05574392505b6000600b60019054906101000a90046001600160a01b03166001600160a01b0316635b7b72c130868a8a8a896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001868152602001806020018560ff1660ff1681526020018060200184151515158152602001838103835287818151815260200191508051906020019080838360005b83811015610db5578181015183820152602001610d9d565b50505050905090810190601f168015610de25780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610e15578181015183820152602001610dfd565b50505050905090810190601f168015610e425780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610e6757600080fd5b505af1158015610e7b573d6000803e3d6000fd5b505050506040513d6020811015610e9157600080fd5b505160408051633cebb82360e01b815233600482015290519192506001600160a01b03831691633cebb8239160248082019260009290919082900301818387803b158015610ede57600080fd5b505af1158015610ef2573d6000803e3d6000fd5b50506040805187815290516001600160a01b03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29695505050505050565b6000610a688243610b59565b6005546001600160a01b031681565b600080546001600160a01b03163314610f7257600080fd5b6000610f7c610a74565b9050808382016001600160801b03161015610f9657600080fd5b6000610fa185610f3f565b9050808482016001600160801b03161015610fbb57600080fd5b610fc8600a8584016118be565b6001600160a01b0385166000908152600860205260409020610fec908286016118be565b6040805185815290516001600160a01b038716916000916000805160206119ea8339815191529181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109075780601f106108dc57610100808354040283529160200191610907565b600a5460009015806110b4575081600a60008154811061109d57fe5b6000918252602090912001546001600160801b0316115b1561115c576005546001600160a01b031615611154576005546006546001600160a01b039091169063981b24d0906110ed908590611776565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561112157600080fd5b505afa158015611135573d6000803e3d6000fd5b505050506040513d602081101561114b57600080fd5b5051905061087d565b50600061087d565b611167600a8361178e565b905061087d565b600b5460009060ff1661118057600080fd5b61118b338484611581565b50600192915050565b600b5460ff1681565b60065481565b60006111af848461090f565b6111b857600080fd5b604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561123257818101518382015260200161121a565b50505050905090810190601f16801561125f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b506001979650505050505050565b600080546001600160a01b031633146112bb57600080fd5b60006112c5610a74565b9050828110156112d457600080fd5b60006112df85610f3f565b9050838110156112ee57600080fd5b6112fb600a8584036118be565b6001600160a01b038516600090815260086020526040902061131f908583036118be565b6040805185815290516000916001600160a01b038816916000805160206119ea8339815191529181900360200190a3506001949350505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461139b57600080fd5b6001600160a01b0381166113ea57600080546040516001600160a01b0390911691303180156108fc02929091818181858888f193505050501580156113e4573d6000803e3d6000fd5b50611531565b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561143557600080fd5b505afa158015611449573d6000803e3d6000fd5b505050506040513d602081101561145f57600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156114bc57600080fd5b505af11580156114d0573d6000803e3d6000fd5b505050506040513d60208110156114e657600080fd5b50506000546040805183815290516001600160a01b03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600b5461010090046001600160a01b031681565b6000546001600160a01b0316331461155f57600080fd5b600b805460ff1916911515919091179055565b6000546001600160a01b031681565b806115c457816001600160a01b0316836001600160a01b03166000805160206119ea833981519152836040518082815260200191505060405180910390a3611771565b43600654106115d257600080fd5b6001600160a01b038216158015906115f357506001600160a01b0382163014155b6115fc57600080fd5b60006116088443610b59565b90508181101561161757600080fd5b60005461162c906001600160a01b031661085b565b156116c7576000805460408051634a39314960e01b81526001600160a01b03888116600483015287811660248301526044820187905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561169257600080fd5b505af11580156116a6573d6000803e3d6000fd5b505050506040513d60208110156116bc57600080fd5b50516116c757600080fd5b6001600160a01b03841660009081526008602052604090206116eb908383036118be565b60006116f78443610b59565b9050808382016001600160801b0316101561171157600080fd5b6001600160a01b0384166000908152600860205260409020611735908285016118be565b836001600160a01b0316856001600160a01b03166000805160206119ea833981519152856040518082815260200191505060405180910390a350505b505050565b60008183106117855781611787565b825b9392505050565b815460009061179f57506000610a68565b8254839060001981019081106117b157fe5b6000918252602090912001546001600160801b03168210611801578254839060001981019081106117de57fe5b600091825260209091200154600160801b90046001600160801b03169050610a68565b8260008154811061180e57fe5b6000918252602090912001546001600160801b031682101561183257506000610a68565b8254600090600019015b8181111561188d57600060026001838501010490508486828154811061185e57fe5b6000918252602090912001546001600160801b03161161188057809250611887565b6001810391505b5061183c565b84828154811061189957fe5b600091825260209091200154600160801b90046001600160801b031695945050505050565b806001600160801b031681146118d357600080fd5b81541580611907575081544390839060001981019081106118f057fe5b6000918252602090912001546001600160801b0316105b1561196e578154600090839061192082600183016119ac565b8154811061192a57fe5b600091825260209091200180546001600160801b03848116600160801b024382166fffffffffffffffffffffffffffffffff199093169290921716179055506119a8565b81546000908390600019810190811061198357fe5b600091825260209091200180546001600160801b03808516600160801b029116179055505b5050565b81548183558181111561177157600083815260209020611771918101908301610a8291905b808211156119e557600081556001016119d1565b509056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582086623770c9385e81e6ea4612cce033dd831d962bf0ddce9a4f40b15960c478c564736f6c634300050c0032"
 17787  
 17788  // DeployMiniMeToken deploys a new Ethereum contract, binding an instance of MiniMeToken to it.
 17789  func DeployMiniMeToken(auth *bind.TransactOpts, backend bind.ContractBackend, _tokenFactory common.Address, _parentToken common.Address, _parentSnapShotBlock *big.Int, _tokenName string, _decimalUnits uint8, _tokenSymbol string, _transfersEnabled bool) (common.Address, *types.Transaction, *MiniMeToken, error) {
 17790  	parsed, err := abi.JSON(strings.NewReader(MiniMeTokenABI))
 17791  	if err != nil {
 17792  		return common.Address{}, nil, nil, err
 17793  	}
 17794  
 17795  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(MiniMeTokenBin), backend, _tokenFactory, _parentToken, _parentSnapShotBlock, _tokenName, _decimalUnits, _tokenSymbol, _transfersEnabled)
 17796  	if err != nil {
 17797  		return common.Address{}, nil, nil, err
 17798  	}
 17799  	return address, tx, &MiniMeToken{MiniMeTokenCaller: MiniMeTokenCaller{contract: contract}, MiniMeTokenTransactor: MiniMeTokenTransactor{contract: contract}, MiniMeTokenFilterer: MiniMeTokenFilterer{contract: contract}}, nil
 17800  }
 17801  
 17802  // MiniMeToken is an auto generated Go binding around an Ethereum contract.
 17803  type MiniMeToken struct {
 17804  	MiniMeTokenCaller     // Read-only binding to the contract
 17805  	MiniMeTokenTransactor // Write-only binding to the contract
 17806  	MiniMeTokenFilterer   // Log filterer for contract events
 17807  }
 17808  
 17809  // MiniMeTokenCaller is an auto generated read-only Go binding around an Ethereum contract.
 17810  type MiniMeTokenCaller struct {
 17811  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17812  }
 17813  
 17814  // MiniMeTokenTransactor is an auto generated write-only Go binding around an Ethereum contract.
 17815  type MiniMeTokenTransactor struct {
 17816  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17817  }
 17818  
 17819  // MiniMeTokenFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 17820  type MiniMeTokenFilterer struct {
 17821  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17822  }
 17823  
 17824  // MiniMeTokenSession is an auto generated Go binding around an Ethereum contract,
 17825  // with pre-set call and transact options.
 17826  type MiniMeTokenSession struct {
 17827  	Contract     *MiniMeToken      // Generic contract binding to set the session for
 17828  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 17829  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 17830  }
 17831  
 17832  // MiniMeTokenCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 17833  // with pre-set call options.
 17834  type MiniMeTokenCallerSession struct {
 17835  	Contract *MiniMeTokenCaller // Generic contract caller binding to set the session for
 17836  	CallOpts bind.CallOpts      // Call options to use throughout this session
 17837  }
 17838  
 17839  // MiniMeTokenTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 17840  // with pre-set transact options.
 17841  type MiniMeTokenTransactorSession struct {
 17842  	Contract     *MiniMeTokenTransactor // Generic contract transactor binding to set the session for
 17843  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
 17844  }
 17845  
 17846  // MiniMeTokenRaw is an auto generated low-level Go binding around an Ethereum contract.
 17847  type MiniMeTokenRaw struct {
 17848  	Contract *MiniMeToken // Generic contract binding to access the raw methods on
 17849  }
 17850  
 17851  // MiniMeTokenCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 17852  type MiniMeTokenCallerRaw struct {
 17853  	Contract *MiniMeTokenCaller // Generic read-only contract binding to access the raw methods on
 17854  }
 17855  
 17856  // MiniMeTokenTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 17857  type MiniMeTokenTransactorRaw struct {
 17858  	Contract *MiniMeTokenTransactor // Generic write-only contract binding to access the raw methods on
 17859  }
 17860  
 17861  // NewMiniMeToken creates a new instance of MiniMeToken, bound to a specific deployed contract.
 17862  func NewMiniMeToken(address common.Address, backend bind.ContractBackend) (*MiniMeToken, error) {
 17863  	contract, err := bindMiniMeToken(address, backend, backend, backend)
 17864  	if err != nil {
 17865  		return nil, err
 17866  	}
 17867  	return &MiniMeToken{MiniMeTokenCaller: MiniMeTokenCaller{contract: contract}, MiniMeTokenTransactor: MiniMeTokenTransactor{contract: contract}, MiniMeTokenFilterer: MiniMeTokenFilterer{contract: contract}}, nil
 17868  }
 17869  
 17870  // NewMiniMeTokenCaller creates a new read-only instance of MiniMeToken, bound to a specific deployed contract.
 17871  func NewMiniMeTokenCaller(address common.Address, caller bind.ContractCaller) (*MiniMeTokenCaller, error) {
 17872  	contract, err := bindMiniMeToken(address, caller, nil, nil)
 17873  	if err != nil {
 17874  		return nil, err
 17875  	}
 17876  	return &MiniMeTokenCaller{contract: contract}, nil
 17877  }
 17878  
 17879  // NewMiniMeTokenTransactor creates a new write-only instance of MiniMeToken, bound to a specific deployed contract.
 17880  func NewMiniMeTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*MiniMeTokenTransactor, error) {
 17881  	contract, err := bindMiniMeToken(address, nil, transactor, nil)
 17882  	if err != nil {
 17883  		return nil, err
 17884  	}
 17885  	return &MiniMeTokenTransactor{contract: contract}, nil
 17886  }
 17887  
 17888  // NewMiniMeTokenFilterer creates a new log filterer instance of MiniMeToken, bound to a specific deployed contract.
 17889  func NewMiniMeTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*MiniMeTokenFilterer, error) {
 17890  	contract, err := bindMiniMeToken(address, nil, nil, filterer)
 17891  	if err != nil {
 17892  		return nil, err
 17893  	}
 17894  	return &MiniMeTokenFilterer{contract: contract}, nil
 17895  }
 17896  
 17897  // bindMiniMeToken binds a generic wrapper to an already deployed contract.
 17898  func bindMiniMeToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17899  	parsed, err := abi.JSON(strings.NewReader(MiniMeTokenABI))
 17900  	if err != nil {
 17901  		return nil, err
 17902  	}
 17903  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 17904  }
 17905  
 17906  // Call invokes the (constant) contract method with params as input values and
 17907  // sets the output to result. The result type might be a single field for simple
 17908  // returns, a slice of interfaces for anonymous returns and a struct for named
 17909  // returns.
 17910  func (_MiniMeToken *MiniMeTokenRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 17911  	return _MiniMeToken.Contract.MiniMeTokenCaller.contract.Call(opts, result, method, params...)
 17912  }
 17913  
 17914  // Transfer initiates a plain transaction to move funds to the contract, calling
 17915  // its default method if one is available.
 17916  func (_MiniMeToken *MiniMeTokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17917  	return _MiniMeToken.Contract.MiniMeTokenTransactor.contract.Transfer(opts)
 17918  }
 17919  
 17920  // Transact invokes the (paid) contract method with params as input values.
 17921  func (_MiniMeToken *MiniMeTokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17922  	return _MiniMeToken.Contract.MiniMeTokenTransactor.contract.Transact(opts, method, params...)
 17923  }
 17924  
 17925  // Call invokes the (constant) contract method with params as input values and
 17926  // sets the output to result. The result type might be a single field for simple
 17927  // returns, a slice of interfaces for anonymous returns and a struct for named
 17928  // returns.
 17929  func (_MiniMeToken *MiniMeTokenCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 17930  	return _MiniMeToken.Contract.contract.Call(opts, result, method, params...)
 17931  }
 17932  
 17933  // Transfer initiates a plain transaction to move funds to the contract, calling
 17934  // its default method if one is available.
 17935  func (_MiniMeToken *MiniMeTokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17936  	return _MiniMeToken.Contract.contract.Transfer(opts)
 17937  }
 17938  
 17939  // Transact invokes the (paid) contract method with params as input values.
 17940  func (_MiniMeToken *MiniMeTokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17941  	return _MiniMeToken.Contract.contract.Transact(opts, method, params...)
 17942  }
 17943  
 17944  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 17945  //
 17946  // Solidity: function allowance(address _owner, address _spender) constant returns(uint256 remaining)
 17947  func (_MiniMeToken *MiniMeTokenCaller) Allowance(opts *bind.CallOpts, _owner common.Address, _spender common.Address) (*big.Int, error) {
 17948  	var (
 17949  		ret0 = new(*big.Int)
 17950  	)
 17951  	out := ret0
 17952  	err := _MiniMeToken.contract.Call(opts, out, "allowance", _owner, _spender)
 17953  	return *ret0, err
 17954  }
 17955  
 17956  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 17957  //
 17958  // Solidity: function allowance(address _owner, address _spender) constant returns(uint256 remaining)
 17959  func (_MiniMeToken *MiniMeTokenSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) {
 17960  	return _MiniMeToken.Contract.Allowance(&_MiniMeToken.CallOpts, _owner, _spender)
 17961  }
 17962  
 17963  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 17964  //
 17965  // Solidity: function allowance(address _owner, address _spender) constant returns(uint256 remaining)
 17966  func (_MiniMeToken *MiniMeTokenCallerSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) {
 17967  	return _MiniMeToken.Contract.Allowance(&_MiniMeToken.CallOpts, _owner, _spender)
 17968  }
 17969  
 17970  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 17971  //
 17972  // Solidity: function balanceOf(address _owner) constant returns(uint256 balance)
 17973  func (_MiniMeToken *MiniMeTokenCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
 17974  	var (
 17975  		ret0 = new(*big.Int)
 17976  	)
 17977  	out := ret0
 17978  	err := _MiniMeToken.contract.Call(opts, out, "balanceOf", _owner)
 17979  	return *ret0, err
 17980  }
 17981  
 17982  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 17983  //
 17984  // Solidity: function balanceOf(address _owner) constant returns(uint256 balance)
 17985  func (_MiniMeToken *MiniMeTokenSession) BalanceOf(_owner common.Address) (*big.Int, error) {
 17986  	return _MiniMeToken.Contract.BalanceOf(&_MiniMeToken.CallOpts, _owner)
 17987  }
 17988  
 17989  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 17990  //
 17991  // Solidity: function balanceOf(address _owner) constant returns(uint256 balance)
 17992  func (_MiniMeToken *MiniMeTokenCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
 17993  	return _MiniMeToken.Contract.BalanceOf(&_MiniMeToken.CallOpts, _owner)
 17994  }
 17995  
 17996  // BalanceOfAt is a free data retrieval call binding the contract method 0x4ee2cd7e.
 17997  //
 17998  // Solidity: function balanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
 17999  func (_MiniMeToken *MiniMeTokenCaller) BalanceOfAt(opts *bind.CallOpts, _owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
 18000  	var (
 18001  		ret0 = new(*big.Int)
 18002  	)
 18003  	out := ret0
 18004  	err := _MiniMeToken.contract.Call(opts, out, "balanceOfAt", _owner, _blockNumber)
 18005  	return *ret0, err
 18006  }
 18007  
 18008  // BalanceOfAt is a free data retrieval call binding the contract method 0x4ee2cd7e.
 18009  //
 18010  // Solidity: function balanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
 18011  func (_MiniMeToken *MiniMeTokenSession) BalanceOfAt(_owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
 18012  	return _MiniMeToken.Contract.BalanceOfAt(&_MiniMeToken.CallOpts, _owner, _blockNumber)
 18013  }
 18014  
 18015  // BalanceOfAt is a free data retrieval call binding the contract method 0x4ee2cd7e.
 18016  //
 18017  // Solidity: function balanceOfAt(address _owner, uint256 _blockNumber) constant returns(uint256)
 18018  func (_MiniMeToken *MiniMeTokenCallerSession) BalanceOfAt(_owner common.Address, _blockNumber *big.Int) (*big.Int, error) {
 18019  	return _MiniMeToken.Contract.BalanceOfAt(&_MiniMeToken.CallOpts, _owner, _blockNumber)
 18020  }
 18021  
 18022  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
 18023  //
 18024  // Solidity: function controller() constant returns(address)
 18025  func (_MiniMeToken *MiniMeTokenCaller) Controller(opts *bind.CallOpts) (common.Address, error) {
 18026  	var (
 18027  		ret0 = new(common.Address)
 18028  	)
 18029  	out := ret0
 18030  	err := _MiniMeToken.contract.Call(opts, out, "controller")
 18031  	return *ret0, err
 18032  }
 18033  
 18034  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
 18035  //
 18036  // Solidity: function controller() constant returns(address)
 18037  func (_MiniMeToken *MiniMeTokenSession) Controller() (common.Address, error) {
 18038  	return _MiniMeToken.Contract.Controller(&_MiniMeToken.CallOpts)
 18039  }
 18040  
 18041  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
 18042  //
 18043  // Solidity: function controller() constant returns(address)
 18044  func (_MiniMeToken *MiniMeTokenCallerSession) Controller() (common.Address, error) {
 18045  	return _MiniMeToken.Contract.Controller(&_MiniMeToken.CallOpts)
 18046  }
 18047  
 18048  // CreationBlock is a free data retrieval call binding the contract method 0x17634514.
 18049  //
 18050  // Solidity: function creationBlock() constant returns(uint256)
 18051  func (_MiniMeToken *MiniMeTokenCaller) CreationBlock(opts *bind.CallOpts) (*big.Int, error) {
 18052  	var (
 18053  		ret0 = new(*big.Int)
 18054  	)
 18055  	out := ret0
 18056  	err := _MiniMeToken.contract.Call(opts, out, "creationBlock")
 18057  	return *ret0, err
 18058  }
 18059  
 18060  // CreationBlock is a free data retrieval call binding the contract method 0x17634514.
 18061  //
 18062  // Solidity: function creationBlock() constant returns(uint256)
 18063  func (_MiniMeToken *MiniMeTokenSession) CreationBlock() (*big.Int, error) {
 18064  	return _MiniMeToken.Contract.CreationBlock(&_MiniMeToken.CallOpts)
 18065  }
 18066  
 18067  // CreationBlock is a free data retrieval call binding the contract method 0x17634514.
 18068  //
 18069  // Solidity: function creationBlock() constant returns(uint256)
 18070  func (_MiniMeToken *MiniMeTokenCallerSession) CreationBlock() (*big.Int, error) {
 18071  	return _MiniMeToken.Contract.CreationBlock(&_MiniMeToken.CallOpts)
 18072  }
 18073  
 18074  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 18075  //
 18076  // Solidity: function decimals() constant returns(uint8)
 18077  func (_MiniMeToken *MiniMeTokenCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
 18078  	var (
 18079  		ret0 = new(uint8)
 18080  	)
 18081  	out := ret0
 18082  	err := _MiniMeToken.contract.Call(opts, out, "decimals")
 18083  	return *ret0, err
 18084  }
 18085  
 18086  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 18087  //
 18088  // Solidity: function decimals() constant returns(uint8)
 18089  func (_MiniMeToken *MiniMeTokenSession) Decimals() (uint8, error) {
 18090  	return _MiniMeToken.Contract.Decimals(&_MiniMeToken.CallOpts)
 18091  }
 18092  
 18093  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
 18094  //
 18095  // Solidity: function decimals() constant returns(uint8)
 18096  func (_MiniMeToken *MiniMeTokenCallerSession) Decimals() (uint8, error) {
 18097  	return _MiniMeToken.Contract.Decimals(&_MiniMeToken.CallOpts)
 18098  }
 18099  
 18100  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 18101  //
 18102  // Solidity: function name() constant returns(string)
 18103  func (_MiniMeToken *MiniMeTokenCaller) Name(opts *bind.CallOpts) (string, error) {
 18104  	var (
 18105  		ret0 = new(string)
 18106  	)
 18107  	out := ret0
 18108  	err := _MiniMeToken.contract.Call(opts, out, "name")
 18109  	return *ret0, err
 18110  }
 18111  
 18112  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 18113  //
 18114  // Solidity: function name() constant returns(string)
 18115  func (_MiniMeToken *MiniMeTokenSession) Name() (string, error) {
 18116  	return _MiniMeToken.Contract.Name(&_MiniMeToken.CallOpts)
 18117  }
 18118  
 18119  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 18120  //
 18121  // Solidity: function name() constant returns(string)
 18122  func (_MiniMeToken *MiniMeTokenCallerSession) Name() (string, error) {
 18123  	return _MiniMeToken.Contract.Name(&_MiniMeToken.CallOpts)
 18124  }
 18125  
 18126  // ParentSnapShotBlock is a free data retrieval call binding the contract method 0xc5bcc4f1.
 18127  //
 18128  // Solidity: function parentSnapShotBlock() constant returns(uint256)
 18129  func (_MiniMeToken *MiniMeTokenCaller) ParentSnapShotBlock(opts *bind.CallOpts) (*big.Int, error) {
 18130  	var (
 18131  		ret0 = new(*big.Int)
 18132  	)
 18133  	out := ret0
 18134  	err := _MiniMeToken.contract.Call(opts, out, "parentSnapShotBlock")
 18135  	return *ret0, err
 18136  }
 18137  
 18138  // ParentSnapShotBlock is a free data retrieval call binding the contract method 0xc5bcc4f1.
 18139  //
 18140  // Solidity: function parentSnapShotBlock() constant returns(uint256)
 18141  func (_MiniMeToken *MiniMeTokenSession) ParentSnapShotBlock() (*big.Int, error) {
 18142  	return _MiniMeToken.Contract.ParentSnapShotBlock(&_MiniMeToken.CallOpts)
 18143  }
 18144  
 18145  // ParentSnapShotBlock is a free data retrieval call binding the contract method 0xc5bcc4f1.
 18146  //
 18147  // Solidity: function parentSnapShotBlock() constant returns(uint256)
 18148  func (_MiniMeToken *MiniMeTokenCallerSession) ParentSnapShotBlock() (*big.Int, error) {
 18149  	return _MiniMeToken.Contract.ParentSnapShotBlock(&_MiniMeToken.CallOpts)
 18150  }
 18151  
 18152  // ParentToken is a free data retrieval call binding the contract method 0x80a54001.
 18153  //
 18154  // Solidity: function parentToken() constant returns(address)
 18155  func (_MiniMeToken *MiniMeTokenCaller) ParentToken(opts *bind.CallOpts) (common.Address, error) {
 18156  	var (
 18157  		ret0 = new(common.Address)
 18158  	)
 18159  	out := ret0
 18160  	err := _MiniMeToken.contract.Call(opts, out, "parentToken")
 18161  	return *ret0, err
 18162  }
 18163  
 18164  // ParentToken is a free data retrieval call binding the contract method 0x80a54001.
 18165  //
 18166  // Solidity: function parentToken() constant returns(address)
 18167  func (_MiniMeToken *MiniMeTokenSession) ParentToken() (common.Address, error) {
 18168  	return _MiniMeToken.Contract.ParentToken(&_MiniMeToken.CallOpts)
 18169  }
 18170  
 18171  // ParentToken is a free data retrieval call binding the contract method 0x80a54001.
 18172  //
 18173  // Solidity: function parentToken() constant returns(address)
 18174  func (_MiniMeToken *MiniMeTokenCallerSession) ParentToken() (common.Address, error) {
 18175  	return _MiniMeToken.Contract.ParentToken(&_MiniMeToken.CallOpts)
 18176  }
 18177  
 18178  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 18179  //
 18180  // Solidity: function symbol() constant returns(string)
 18181  func (_MiniMeToken *MiniMeTokenCaller) Symbol(opts *bind.CallOpts) (string, error) {
 18182  	var (
 18183  		ret0 = new(string)
 18184  	)
 18185  	out := ret0
 18186  	err := _MiniMeToken.contract.Call(opts, out, "symbol")
 18187  	return *ret0, err
 18188  }
 18189  
 18190  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 18191  //
 18192  // Solidity: function symbol() constant returns(string)
 18193  func (_MiniMeToken *MiniMeTokenSession) Symbol() (string, error) {
 18194  	return _MiniMeToken.Contract.Symbol(&_MiniMeToken.CallOpts)
 18195  }
 18196  
 18197  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 18198  //
 18199  // Solidity: function symbol() constant returns(string)
 18200  func (_MiniMeToken *MiniMeTokenCallerSession) Symbol() (string, error) {
 18201  	return _MiniMeToken.Contract.Symbol(&_MiniMeToken.CallOpts)
 18202  }
 18203  
 18204  // TokenFactory is a free data retrieval call binding the contract method 0xe77772fe.
 18205  //
 18206  // Solidity: function tokenFactory() constant returns(address)
 18207  func (_MiniMeToken *MiniMeTokenCaller) TokenFactory(opts *bind.CallOpts) (common.Address, error) {
 18208  	var (
 18209  		ret0 = new(common.Address)
 18210  	)
 18211  	out := ret0
 18212  	err := _MiniMeToken.contract.Call(opts, out, "tokenFactory")
 18213  	return *ret0, err
 18214  }
 18215  
 18216  // TokenFactory is a free data retrieval call binding the contract method 0xe77772fe.
 18217  //
 18218  // Solidity: function tokenFactory() constant returns(address)
 18219  func (_MiniMeToken *MiniMeTokenSession) TokenFactory() (common.Address, error) {
 18220  	return _MiniMeToken.Contract.TokenFactory(&_MiniMeToken.CallOpts)
 18221  }
 18222  
 18223  // TokenFactory is a free data retrieval call binding the contract method 0xe77772fe.
 18224  //
 18225  // Solidity: function tokenFactory() constant returns(address)
 18226  func (_MiniMeToken *MiniMeTokenCallerSession) TokenFactory() (common.Address, error) {
 18227  	return _MiniMeToken.Contract.TokenFactory(&_MiniMeToken.CallOpts)
 18228  }
 18229  
 18230  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18231  //
 18232  // Solidity: function totalSupply() constant returns(uint256)
 18233  func (_MiniMeToken *MiniMeTokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 18234  	var (
 18235  		ret0 = new(*big.Int)
 18236  	)
 18237  	out := ret0
 18238  	err := _MiniMeToken.contract.Call(opts, out, "totalSupply")
 18239  	return *ret0, err
 18240  }
 18241  
 18242  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18243  //
 18244  // Solidity: function totalSupply() constant returns(uint256)
 18245  func (_MiniMeToken *MiniMeTokenSession) TotalSupply() (*big.Int, error) {
 18246  	return _MiniMeToken.Contract.TotalSupply(&_MiniMeToken.CallOpts)
 18247  }
 18248  
 18249  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18250  //
 18251  // Solidity: function totalSupply() constant returns(uint256)
 18252  func (_MiniMeToken *MiniMeTokenCallerSession) TotalSupply() (*big.Int, error) {
 18253  	return _MiniMeToken.Contract.TotalSupply(&_MiniMeToken.CallOpts)
 18254  }
 18255  
 18256  // TotalSupplyAt is a free data retrieval call binding the contract method 0x981b24d0.
 18257  //
 18258  // Solidity: function totalSupplyAt(uint256 _blockNumber) constant returns(uint256)
 18259  func (_MiniMeToken *MiniMeTokenCaller) TotalSupplyAt(opts *bind.CallOpts, _blockNumber *big.Int) (*big.Int, error) {
 18260  	var (
 18261  		ret0 = new(*big.Int)
 18262  	)
 18263  	out := ret0
 18264  	err := _MiniMeToken.contract.Call(opts, out, "totalSupplyAt", _blockNumber)
 18265  	return *ret0, err
 18266  }
 18267  
 18268  // TotalSupplyAt is a free data retrieval call binding the contract method 0x981b24d0.
 18269  //
 18270  // Solidity: function totalSupplyAt(uint256 _blockNumber) constant returns(uint256)
 18271  func (_MiniMeToken *MiniMeTokenSession) TotalSupplyAt(_blockNumber *big.Int) (*big.Int, error) {
 18272  	return _MiniMeToken.Contract.TotalSupplyAt(&_MiniMeToken.CallOpts, _blockNumber)
 18273  }
 18274  
 18275  // TotalSupplyAt is a free data retrieval call binding the contract method 0x981b24d0.
 18276  //
 18277  // Solidity: function totalSupplyAt(uint256 _blockNumber) constant returns(uint256)
 18278  func (_MiniMeToken *MiniMeTokenCallerSession) TotalSupplyAt(_blockNumber *big.Int) (*big.Int, error) {
 18279  	return _MiniMeToken.Contract.TotalSupplyAt(&_MiniMeToken.CallOpts, _blockNumber)
 18280  }
 18281  
 18282  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 18283  //
 18284  // Solidity: function transfersEnabled() constant returns(bool)
 18285  func (_MiniMeToken *MiniMeTokenCaller) TransfersEnabled(opts *bind.CallOpts) (bool, error) {
 18286  	var (
 18287  		ret0 = new(bool)
 18288  	)
 18289  	out := ret0
 18290  	err := _MiniMeToken.contract.Call(opts, out, "transfersEnabled")
 18291  	return *ret0, err
 18292  }
 18293  
 18294  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 18295  //
 18296  // Solidity: function transfersEnabled() constant returns(bool)
 18297  func (_MiniMeToken *MiniMeTokenSession) TransfersEnabled() (bool, error) {
 18298  	return _MiniMeToken.Contract.TransfersEnabled(&_MiniMeToken.CallOpts)
 18299  }
 18300  
 18301  // TransfersEnabled is a free data retrieval call binding the contract method 0xbef97c87.
 18302  //
 18303  // Solidity: function transfersEnabled() constant returns(bool)
 18304  func (_MiniMeToken *MiniMeTokenCallerSession) TransfersEnabled() (bool, error) {
 18305  	return _MiniMeToken.Contract.TransfersEnabled(&_MiniMeToken.CallOpts)
 18306  }
 18307  
 18308  // Version is a free data retrieval call binding the contract method 0x54fd4d50.
 18309  //
 18310  // Solidity: function version() constant returns(string)
 18311  func (_MiniMeToken *MiniMeTokenCaller) Version(opts *bind.CallOpts) (string, error) {
 18312  	var (
 18313  		ret0 = new(string)
 18314  	)
 18315  	out := ret0
 18316  	err := _MiniMeToken.contract.Call(opts, out, "version")
 18317  	return *ret0, err
 18318  }
 18319  
 18320  // Version is a free data retrieval call binding the contract method 0x54fd4d50.
 18321  //
 18322  // Solidity: function version() constant returns(string)
 18323  func (_MiniMeToken *MiniMeTokenSession) Version() (string, error) {
 18324  	return _MiniMeToken.Contract.Version(&_MiniMeToken.CallOpts)
 18325  }
 18326  
 18327  // Version is a free data retrieval call binding the contract method 0x54fd4d50.
 18328  //
 18329  // Solidity: function version() constant returns(string)
 18330  func (_MiniMeToken *MiniMeTokenCallerSession) Version() (string, error) {
 18331  	return _MiniMeToken.Contract.Version(&_MiniMeToken.CallOpts)
 18332  }
 18333  
 18334  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18335  //
 18336  // Solidity: function approve(address _spender, uint256 _amount) returns(bool success)
 18337  func (_MiniMeToken *MiniMeTokenTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _amount *big.Int) (*types.Transaction, error) {
 18338  	return _MiniMeToken.contract.Transact(opts, "approve", _spender, _amount)
 18339  }
 18340  
 18341  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18342  //
 18343  // Solidity: function approve(address _spender, uint256 _amount) returns(bool success)
 18344  func (_MiniMeToken *MiniMeTokenSession) Approve(_spender common.Address, _amount *big.Int) (*types.Transaction, error) {
 18345  	return _MiniMeToken.Contract.Approve(&_MiniMeToken.TransactOpts, _spender, _amount)
 18346  }
 18347  
 18348  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18349  //
 18350  // Solidity: function approve(address _spender, uint256 _amount) returns(bool success)
 18351  func (_MiniMeToken *MiniMeTokenTransactorSession) Approve(_spender common.Address, _amount *big.Int) (*types.Transaction, error) {
 18352  	return _MiniMeToken.Contract.Approve(&_MiniMeToken.TransactOpts, _spender, _amount)
 18353  }
 18354  
 18355  // ApproveAndCall is a paid mutator transaction binding the contract method 0xcae9ca51.
 18356  //
 18357  // Solidity: function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns(bool success)
 18358  func (_MiniMeToken *MiniMeTokenTransactor) ApproveAndCall(opts *bind.TransactOpts, _spender common.Address, _amount *big.Int, _extraData []byte) (*types.Transaction, error) {
 18359  	return _MiniMeToken.contract.Transact(opts, "approveAndCall", _spender, _amount, _extraData)
 18360  }
 18361  
 18362  // ApproveAndCall is a paid mutator transaction binding the contract method 0xcae9ca51.
 18363  //
 18364  // Solidity: function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns(bool success)
 18365  func (_MiniMeToken *MiniMeTokenSession) ApproveAndCall(_spender common.Address, _amount *big.Int, _extraData []byte) (*types.Transaction, error) {
 18366  	return _MiniMeToken.Contract.ApproveAndCall(&_MiniMeToken.TransactOpts, _spender, _amount, _extraData)
 18367  }
 18368  
 18369  // ApproveAndCall is a paid mutator transaction binding the contract method 0xcae9ca51.
 18370  //
 18371  // Solidity: function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns(bool success)
 18372  func (_MiniMeToken *MiniMeTokenTransactorSession) ApproveAndCall(_spender common.Address, _amount *big.Int, _extraData []byte) (*types.Transaction, error) {
 18373  	return _MiniMeToken.Contract.ApproveAndCall(&_MiniMeToken.TransactOpts, _spender, _amount, _extraData)
 18374  }
 18375  
 18376  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
 18377  //
 18378  // Solidity: function changeController(address _newController) returns()
 18379  func (_MiniMeToken *MiniMeTokenTransactor) ChangeController(opts *bind.TransactOpts, _newController common.Address) (*types.Transaction, error) {
 18380  	return _MiniMeToken.contract.Transact(opts, "changeController", _newController)
 18381  }
 18382  
 18383  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
 18384  //
 18385  // Solidity: function changeController(address _newController) returns()
 18386  func (_MiniMeToken *MiniMeTokenSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
 18387  	return _MiniMeToken.Contract.ChangeController(&_MiniMeToken.TransactOpts, _newController)
 18388  }
 18389  
 18390  // ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
 18391  //
 18392  // Solidity: function changeController(address _newController) returns()
 18393  func (_MiniMeToken *MiniMeTokenTransactorSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
 18394  	return _MiniMeToken.Contract.ChangeController(&_MiniMeToken.TransactOpts, _newController)
 18395  }
 18396  
 18397  // ClaimTokens is a paid mutator transaction binding the contract method 0xdf8de3e7.
 18398  //
 18399  // Solidity: function claimTokens(address _token) returns()
 18400  func (_MiniMeToken *MiniMeTokenTransactor) ClaimTokens(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 18401  	return _MiniMeToken.contract.Transact(opts, "claimTokens", _token)
 18402  }
 18403  
 18404  // ClaimTokens is a paid mutator transaction binding the contract method 0xdf8de3e7.
 18405  //
 18406  // Solidity: function claimTokens(address _token) returns()
 18407  func (_MiniMeToken *MiniMeTokenSession) ClaimTokens(_token common.Address) (*types.Transaction, error) {
 18408  	return _MiniMeToken.Contract.ClaimTokens(&_MiniMeToken.TransactOpts, _token)
 18409  }
 18410  
 18411  // ClaimTokens is a paid mutator transaction binding the contract method 0xdf8de3e7.
 18412  //
 18413  // Solidity: function claimTokens(address _token) returns()
 18414  func (_MiniMeToken *MiniMeTokenTransactorSession) ClaimTokens(_token common.Address) (*types.Transaction, error) {
 18415  	return _MiniMeToken.Contract.ClaimTokens(&_MiniMeToken.TransactOpts, _token)
 18416  }
 18417  
 18418  // CreateCloneToken is a paid mutator transaction binding the contract method 0x6638c087.
 18419  //
 18420  // Solidity: function createCloneToken(string _cloneTokenName, uint8 _cloneDecimalUnits, string _cloneTokenSymbol, uint256 _snapshotBlock, bool _transfersEnabled) returns(address)
 18421  func (_MiniMeToken *MiniMeTokenTransactor) CreateCloneToken(opts *bind.TransactOpts, _cloneTokenName string, _cloneDecimalUnits uint8, _cloneTokenSymbol string, _snapshotBlock *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
 18422  	return _MiniMeToken.contract.Transact(opts, "createCloneToken", _cloneTokenName, _cloneDecimalUnits, _cloneTokenSymbol, _snapshotBlock, _transfersEnabled)
 18423  }
 18424  
 18425  // CreateCloneToken is a paid mutator transaction binding the contract method 0x6638c087.
 18426  //
 18427  // Solidity: function createCloneToken(string _cloneTokenName, uint8 _cloneDecimalUnits, string _cloneTokenSymbol, uint256 _snapshotBlock, bool _transfersEnabled) returns(address)
 18428  func (_MiniMeToken *MiniMeTokenSession) CreateCloneToken(_cloneTokenName string, _cloneDecimalUnits uint8, _cloneTokenSymbol string, _snapshotBlock *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
 18429  	return _MiniMeToken.Contract.CreateCloneToken(&_MiniMeToken.TransactOpts, _cloneTokenName, _cloneDecimalUnits, _cloneTokenSymbol, _snapshotBlock, _transfersEnabled)
 18430  }
 18431  
 18432  // CreateCloneToken is a paid mutator transaction binding the contract method 0x6638c087.
 18433  //
 18434  // Solidity: function createCloneToken(string _cloneTokenName, uint8 _cloneDecimalUnits, string _cloneTokenSymbol, uint256 _snapshotBlock, bool _transfersEnabled) returns(address)
 18435  func (_MiniMeToken *MiniMeTokenTransactorSession) CreateCloneToken(_cloneTokenName string, _cloneDecimalUnits uint8, _cloneTokenSymbol string, _snapshotBlock *big.Int, _transfersEnabled bool) (*types.Transaction, error) {
 18436  	return _MiniMeToken.Contract.CreateCloneToken(&_MiniMeToken.TransactOpts, _cloneTokenName, _cloneDecimalUnits, _cloneTokenSymbol, _snapshotBlock, _transfersEnabled)
 18437  }
 18438  
 18439  // DestroyTokens is a paid mutator transaction binding the contract method 0xd3ce77fe.
 18440  //
 18441  // Solidity: function destroyTokens(address _owner, uint256 _amount) returns(bool)
 18442  func (_MiniMeToken *MiniMeTokenTransactor) DestroyTokens(opts *bind.TransactOpts, _owner common.Address, _amount *big.Int) (*types.Transaction, error) {
 18443  	return _MiniMeToken.contract.Transact(opts, "destroyTokens", _owner, _amount)
 18444  }
 18445  
 18446  // DestroyTokens is a paid mutator transaction binding the contract method 0xd3ce77fe.
 18447  //
 18448  // Solidity: function destroyTokens(address _owner, uint256 _amount) returns(bool)
 18449  func (_MiniMeToken *MiniMeTokenSession) DestroyTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
 18450  	return _MiniMeToken.Contract.DestroyTokens(&_MiniMeToken.TransactOpts, _owner, _amount)
 18451  }
 18452  
 18453  // DestroyTokens is a paid mutator transaction binding the contract method 0xd3ce77fe.
 18454  //
 18455  // Solidity: function destroyTokens(address _owner, uint256 _amount) returns(bool)
 18456  func (_MiniMeToken *MiniMeTokenTransactorSession) DestroyTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
 18457  	return _MiniMeToken.Contract.DestroyTokens(&_MiniMeToken.TransactOpts, _owner, _amount)
 18458  }
 18459  
 18460  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 18461  //
 18462  // Solidity: function enableTransfers(bool _transfersEnabled) returns()
 18463  func (_MiniMeToken *MiniMeTokenTransactor) EnableTransfers(opts *bind.TransactOpts, _transfersEnabled bool) (*types.Transaction, error) {
 18464  	return _MiniMeToken.contract.Transact(opts, "enableTransfers", _transfersEnabled)
 18465  }
 18466  
 18467  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 18468  //
 18469  // Solidity: function enableTransfers(bool _transfersEnabled) returns()
 18470  func (_MiniMeToken *MiniMeTokenSession) EnableTransfers(_transfersEnabled bool) (*types.Transaction, error) {
 18471  	return _MiniMeToken.Contract.EnableTransfers(&_MiniMeToken.TransactOpts, _transfersEnabled)
 18472  }
 18473  
 18474  // EnableTransfers is a paid mutator transaction binding the contract method 0xf41e60c5.
 18475  //
 18476  // Solidity: function enableTransfers(bool _transfersEnabled) returns()
 18477  func (_MiniMeToken *MiniMeTokenTransactorSession) EnableTransfers(_transfersEnabled bool) (*types.Transaction, error) {
 18478  	return _MiniMeToken.Contract.EnableTransfers(&_MiniMeToken.TransactOpts, _transfersEnabled)
 18479  }
 18480  
 18481  // GenerateTokens is a paid mutator transaction binding the contract method 0x827f32c0.
 18482  //
 18483  // Solidity: function generateTokens(address _owner, uint256 _amount) returns(bool)
 18484  func (_MiniMeToken *MiniMeTokenTransactor) GenerateTokens(opts *bind.TransactOpts, _owner common.Address, _amount *big.Int) (*types.Transaction, error) {
 18485  	return _MiniMeToken.contract.Transact(opts, "generateTokens", _owner, _amount)
 18486  }
 18487  
 18488  // GenerateTokens is a paid mutator transaction binding the contract method 0x827f32c0.
 18489  //
 18490  // Solidity: function generateTokens(address _owner, uint256 _amount) returns(bool)
 18491  func (_MiniMeToken *MiniMeTokenSession) GenerateTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
 18492  	return _MiniMeToken.Contract.GenerateTokens(&_MiniMeToken.TransactOpts, _owner, _amount)
 18493  }
 18494  
 18495  // GenerateTokens is a paid mutator transaction binding the contract method 0x827f32c0.
 18496  //
 18497  // Solidity: function generateTokens(address _owner, uint256 _amount) returns(bool)
 18498  func (_MiniMeToken *MiniMeTokenTransactorSession) GenerateTokens(_owner common.Address, _amount *big.Int) (*types.Transaction, error) {
 18499  	return _MiniMeToken.Contract.GenerateTokens(&_MiniMeToken.TransactOpts, _owner, _amount)
 18500  }
 18501  
 18502  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 18503  //
 18504  // Solidity: function transfer(address _to, uint256 _amount) returns(bool success)
 18505  func (_MiniMeToken *MiniMeTokenTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 18506  	return _MiniMeToken.contract.Transact(opts, "transfer", _to, _amount)
 18507  }
 18508  
 18509  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 18510  //
 18511  // Solidity: function transfer(address _to, uint256 _amount) returns(bool success)
 18512  func (_MiniMeToken *MiniMeTokenSession) Transfer(_to common.Address, _amount *big.Int) (*types.Transaction, error) {
 18513  	return _MiniMeToken.Contract.Transfer(&_MiniMeToken.TransactOpts, _to, _amount)
 18514  }
 18515  
 18516  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 18517  //
 18518  // Solidity: function transfer(address _to, uint256 _amount) returns(bool success)
 18519  func (_MiniMeToken *MiniMeTokenTransactorSession) Transfer(_to common.Address, _amount *big.Int) (*types.Transaction, error) {
 18520  	return _MiniMeToken.Contract.Transfer(&_MiniMeToken.TransactOpts, _to, _amount)
 18521  }
 18522  
 18523  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 18524  //
 18525  // Solidity: function transferFrom(address _from, address _to, uint256 _amount) returns(bool success)
 18526  func (_MiniMeToken *MiniMeTokenTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 18527  	return _MiniMeToken.contract.Transact(opts, "transferFrom", _from, _to, _amount)
 18528  }
 18529  
 18530  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 18531  //
 18532  // Solidity: function transferFrom(address _from, address _to, uint256 _amount) returns(bool success)
 18533  func (_MiniMeToken *MiniMeTokenSession) TransferFrom(_from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 18534  	return _MiniMeToken.Contract.TransferFrom(&_MiniMeToken.TransactOpts, _from, _to, _amount)
 18535  }
 18536  
 18537  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 18538  //
 18539  // Solidity: function transferFrom(address _from, address _to, uint256 _amount) returns(bool success)
 18540  func (_MiniMeToken *MiniMeTokenTransactorSession) TransferFrom(_from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 18541  	return _MiniMeToken.Contract.TransferFrom(&_MiniMeToken.TransactOpts, _from, _to, _amount)
 18542  }
 18543  
 18544  // MiniMeTokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the MiniMeToken contract.
 18545  type MiniMeTokenApprovalIterator struct {
 18546  	Event *MiniMeTokenApproval // Event containing the contract specifics and raw log
 18547  
 18548  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18549  	event    string              // Event name to use for unpacking event data
 18550  
 18551  	logs chan types.Log        // Log channel receiving the found contract events
 18552  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18553  	done bool                  // Whether the subscription completed delivering logs
 18554  	fail error                 // Occurred error to stop iteration
 18555  }
 18556  
 18557  // Next advances the iterator to the subsequent event, returning whether there
 18558  // are any more events found. In case of a retrieval or parsing error, false is
 18559  // returned and Error() can be queried for the exact failure.
 18560  func (it *MiniMeTokenApprovalIterator) Next() bool {
 18561  	// If the iterator failed, stop iterating
 18562  	if it.fail != nil {
 18563  		return false
 18564  	}
 18565  	// If the iterator completed, deliver directly whatever's available
 18566  	if it.done {
 18567  		select {
 18568  		case log := <-it.logs:
 18569  			it.Event = new(MiniMeTokenApproval)
 18570  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18571  				it.fail = err
 18572  				return false
 18573  			}
 18574  			it.Event.Raw = log
 18575  			return true
 18576  
 18577  		default:
 18578  			return false
 18579  		}
 18580  	}
 18581  	// Iterator still in progress, wait for either a data or an error event
 18582  	select {
 18583  	case log := <-it.logs:
 18584  		it.Event = new(MiniMeTokenApproval)
 18585  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18586  			it.fail = err
 18587  			return false
 18588  		}
 18589  		it.Event.Raw = log
 18590  		return true
 18591  
 18592  	case err := <-it.sub.Err():
 18593  		it.done = true
 18594  		it.fail = err
 18595  		return it.Next()
 18596  	}
 18597  }
 18598  
 18599  // Error returns any retrieval or parsing error occurred during filtering.
 18600  func (it *MiniMeTokenApprovalIterator) Error() error {
 18601  	return it.fail
 18602  }
 18603  
 18604  // Close terminates the iteration process, releasing any pending underlying
 18605  // resources.
 18606  func (it *MiniMeTokenApprovalIterator) Close() error {
 18607  	it.sub.Unsubscribe()
 18608  	return nil
 18609  }
 18610  
 18611  // MiniMeTokenApproval represents a Approval event raised by the MiniMeToken contract.
 18612  type MiniMeTokenApproval struct {
 18613  	Owner   common.Address
 18614  	Spender common.Address
 18615  	Amount  *big.Int
 18616  	Raw     types.Log // Blockchain specific contextual infos
 18617  }
 18618  
 18619  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 18620  //
 18621  // Solidity: event Approval(address indexed _owner, address indexed _spender, uint256 _amount)
 18622  func (_MiniMeToken *MiniMeTokenFilterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _spender []common.Address) (*MiniMeTokenApprovalIterator, error) {
 18623  
 18624  	var _ownerRule []interface{}
 18625  	for _, _ownerItem := range _owner {
 18626  		_ownerRule = append(_ownerRule, _ownerItem)
 18627  	}
 18628  	var _spenderRule []interface{}
 18629  	for _, _spenderItem := range _spender {
 18630  		_spenderRule = append(_spenderRule, _spenderItem)
 18631  	}
 18632  
 18633  	logs, sub, err := _MiniMeToken.contract.FilterLogs(opts, "Approval", _ownerRule, _spenderRule)
 18634  	if err != nil {
 18635  		return nil, err
 18636  	}
 18637  	return &MiniMeTokenApprovalIterator{contract: _MiniMeToken.contract, event: "Approval", logs: logs, sub: sub}, nil
 18638  }
 18639  
 18640  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 18641  //
 18642  // Solidity: event Approval(address indexed _owner, address indexed _spender, uint256 _amount)
 18643  func (_MiniMeToken *MiniMeTokenFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *MiniMeTokenApproval, _owner []common.Address, _spender []common.Address) (event.Subscription, error) {
 18644  
 18645  	var _ownerRule []interface{}
 18646  	for _, _ownerItem := range _owner {
 18647  		_ownerRule = append(_ownerRule, _ownerItem)
 18648  	}
 18649  	var _spenderRule []interface{}
 18650  	for _, _spenderItem := range _spender {
 18651  		_spenderRule = append(_spenderRule, _spenderItem)
 18652  	}
 18653  
 18654  	logs, sub, err := _MiniMeToken.contract.WatchLogs(opts, "Approval", _ownerRule, _spenderRule)
 18655  	if err != nil {
 18656  		return nil, err
 18657  	}
 18658  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18659  		defer sub.Unsubscribe()
 18660  		for {
 18661  			select {
 18662  			case log := <-logs:
 18663  				// New log arrived, parse the event and forward to the user
 18664  				event := new(MiniMeTokenApproval)
 18665  				if err := _MiniMeToken.contract.UnpackLog(event, "Approval", log); err != nil {
 18666  					return err
 18667  				}
 18668  				event.Raw = log
 18669  
 18670  				select {
 18671  				case sink <- event:
 18672  				case err := <-sub.Err():
 18673  					return err
 18674  				case <-quit:
 18675  					return nil
 18676  				}
 18677  			case err := <-sub.Err():
 18678  				return err
 18679  			case <-quit:
 18680  				return nil
 18681  			}
 18682  		}
 18683  	}), nil
 18684  }
 18685  
 18686  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 18687  //
 18688  // Solidity: event Approval(address indexed _owner, address indexed _spender, uint256 _amount)
 18689  func (_MiniMeToken *MiniMeTokenFilterer) ParseApproval(log types.Log) (*MiniMeTokenApproval, error) {
 18690  	event := new(MiniMeTokenApproval)
 18691  	if err := _MiniMeToken.contract.UnpackLog(event, "Approval", log); err != nil {
 18692  		return nil, err
 18693  	}
 18694  	return event, nil
 18695  }
 18696  
 18697  // MiniMeTokenClaimedTokensIterator is returned from FilterClaimedTokens and is used to iterate over the raw logs and unpacked data for ClaimedTokens events raised by the MiniMeToken contract.
 18698  type MiniMeTokenClaimedTokensIterator struct {
 18699  	Event *MiniMeTokenClaimedTokens // Event containing the contract specifics and raw log
 18700  
 18701  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18702  	event    string              // Event name to use for unpacking event data
 18703  
 18704  	logs chan types.Log        // Log channel receiving the found contract events
 18705  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18706  	done bool                  // Whether the subscription completed delivering logs
 18707  	fail error                 // Occurred error to stop iteration
 18708  }
 18709  
 18710  // Next advances the iterator to the subsequent event, returning whether there
 18711  // are any more events found. In case of a retrieval or parsing error, false is
 18712  // returned and Error() can be queried for the exact failure.
 18713  func (it *MiniMeTokenClaimedTokensIterator) Next() bool {
 18714  	// If the iterator failed, stop iterating
 18715  	if it.fail != nil {
 18716  		return false
 18717  	}
 18718  	// If the iterator completed, deliver directly whatever's available
 18719  	if it.done {
 18720  		select {
 18721  		case log := <-it.logs:
 18722  			it.Event = new(MiniMeTokenClaimedTokens)
 18723  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18724  				it.fail = err
 18725  				return false
 18726  			}
 18727  			it.Event.Raw = log
 18728  			return true
 18729  
 18730  		default:
 18731  			return false
 18732  		}
 18733  	}
 18734  	// Iterator still in progress, wait for either a data or an error event
 18735  	select {
 18736  	case log := <-it.logs:
 18737  		it.Event = new(MiniMeTokenClaimedTokens)
 18738  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18739  			it.fail = err
 18740  			return false
 18741  		}
 18742  		it.Event.Raw = log
 18743  		return true
 18744  
 18745  	case err := <-it.sub.Err():
 18746  		it.done = true
 18747  		it.fail = err
 18748  		return it.Next()
 18749  	}
 18750  }
 18751  
 18752  // Error returns any retrieval or parsing error occurred during filtering.
 18753  func (it *MiniMeTokenClaimedTokensIterator) Error() error {
 18754  	return it.fail
 18755  }
 18756  
 18757  // Close terminates the iteration process, releasing any pending underlying
 18758  // resources.
 18759  func (it *MiniMeTokenClaimedTokensIterator) Close() error {
 18760  	it.sub.Unsubscribe()
 18761  	return nil
 18762  }
 18763  
 18764  // MiniMeTokenClaimedTokens represents a ClaimedTokens event raised by the MiniMeToken contract.
 18765  type MiniMeTokenClaimedTokens struct {
 18766  	Token      common.Address
 18767  	Controller common.Address
 18768  	Amount     *big.Int
 18769  	Raw        types.Log // Blockchain specific contextual infos
 18770  }
 18771  
 18772  // FilterClaimedTokens is a free log retrieval operation binding the contract event 0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c.
 18773  //
 18774  // Solidity: event ClaimedTokens(address indexed _token, address indexed _controller, uint256 _amount)
 18775  func (_MiniMeToken *MiniMeTokenFilterer) FilterClaimedTokens(opts *bind.FilterOpts, _token []common.Address, _controller []common.Address) (*MiniMeTokenClaimedTokensIterator, error) {
 18776  
 18777  	var _tokenRule []interface{}
 18778  	for _, _tokenItem := range _token {
 18779  		_tokenRule = append(_tokenRule, _tokenItem)
 18780  	}
 18781  	var _controllerRule []interface{}
 18782  	for _, _controllerItem := range _controller {
 18783  		_controllerRule = append(_controllerRule, _controllerItem)
 18784  	}
 18785  
 18786  	logs, sub, err := _MiniMeToken.contract.FilterLogs(opts, "ClaimedTokens", _tokenRule, _controllerRule)
 18787  	if err != nil {
 18788  		return nil, err
 18789  	}
 18790  	return &MiniMeTokenClaimedTokensIterator{contract: _MiniMeToken.contract, event: "ClaimedTokens", logs: logs, sub: sub}, nil
 18791  }
 18792  
 18793  // WatchClaimedTokens is a free log subscription operation binding the contract event 0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c.
 18794  //
 18795  // Solidity: event ClaimedTokens(address indexed _token, address indexed _controller, uint256 _amount)
 18796  func (_MiniMeToken *MiniMeTokenFilterer) WatchClaimedTokens(opts *bind.WatchOpts, sink chan<- *MiniMeTokenClaimedTokens, _token []common.Address, _controller []common.Address) (event.Subscription, error) {
 18797  
 18798  	var _tokenRule []interface{}
 18799  	for _, _tokenItem := range _token {
 18800  		_tokenRule = append(_tokenRule, _tokenItem)
 18801  	}
 18802  	var _controllerRule []interface{}
 18803  	for _, _controllerItem := range _controller {
 18804  		_controllerRule = append(_controllerRule, _controllerItem)
 18805  	}
 18806  
 18807  	logs, sub, err := _MiniMeToken.contract.WatchLogs(opts, "ClaimedTokens", _tokenRule, _controllerRule)
 18808  	if err != nil {
 18809  		return nil, err
 18810  	}
 18811  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18812  		defer sub.Unsubscribe()
 18813  		for {
 18814  			select {
 18815  			case log := <-logs:
 18816  				// New log arrived, parse the event and forward to the user
 18817  				event := new(MiniMeTokenClaimedTokens)
 18818  				if err := _MiniMeToken.contract.UnpackLog(event, "ClaimedTokens", log); err != nil {
 18819  					return err
 18820  				}
 18821  				event.Raw = log
 18822  
 18823  				select {
 18824  				case sink <- event:
 18825  				case err := <-sub.Err():
 18826  					return err
 18827  				case <-quit:
 18828  					return nil
 18829  				}
 18830  			case err := <-sub.Err():
 18831  				return err
 18832  			case <-quit:
 18833  				return nil
 18834  			}
 18835  		}
 18836  	}), nil
 18837  }
 18838  
 18839  // ParseClaimedTokens is a log parse operation binding the contract event 0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c.
 18840  //
 18841  // Solidity: event ClaimedTokens(address indexed _token, address indexed _controller, uint256 _amount)
 18842  func (_MiniMeToken *MiniMeTokenFilterer) ParseClaimedTokens(log types.Log) (*MiniMeTokenClaimedTokens, error) {
 18843  	event := new(MiniMeTokenClaimedTokens)
 18844  	if err := _MiniMeToken.contract.UnpackLog(event, "ClaimedTokens", log); err != nil {
 18845  		return nil, err
 18846  	}
 18847  	return event, nil
 18848  }
 18849  
 18850  // MiniMeTokenNewCloneTokenIterator is returned from FilterNewCloneToken and is used to iterate over the raw logs and unpacked data for NewCloneToken events raised by the MiniMeToken contract.
 18851  type MiniMeTokenNewCloneTokenIterator struct {
 18852  	Event *MiniMeTokenNewCloneToken // Event containing the contract specifics and raw log
 18853  
 18854  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18855  	event    string              // Event name to use for unpacking event data
 18856  
 18857  	logs chan types.Log        // Log channel receiving the found contract events
 18858  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18859  	done bool                  // Whether the subscription completed delivering logs
 18860  	fail error                 // Occurred error to stop iteration
 18861  }
 18862  
 18863  // Next advances the iterator to the subsequent event, returning whether there
 18864  // are any more events found. In case of a retrieval or parsing error, false is
 18865  // returned and Error() can be queried for the exact failure.
 18866  func (it *MiniMeTokenNewCloneTokenIterator) Next() bool {
 18867  	// If the iterator failed, stop iterating
 18868  	if it.fail != nil {
 18869  		return false
 18870  	}
 18871  	// If the iterator completed, deliver directly whatever's available
 18872  	if it.done {
 18873  		select {
 18874  		case log := <-it.logs:
 18875  			it.Event = new(MiniMeTokenNewCloneToken)
 18876  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18877  				it.fail = err
 18878  				return false
 18879  			}
 18880  			it.Event.Raw = log
 18881  			return true
 18882  
 18883  		default:
 18884  			return false
 18885  		}
 18886  	}
 18887  	// Iterator still in progress, wait for either a data or an error event
 18888  	select {
 18889  	case log := <-it.logs:
 18890  		it.Event = new(MiniMeTokenNewCloneToken)
 18891  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18892  			it.fail = err
 18893  			return false
 18894  		}
 18895  		it.Event.Raw = log
 18896  		return true
 18897  
 18898  	case err := <-it.sub.Err():
 18899  		it.done = true
 18900  		it.fail = err
 18901  		return it.Next()
 18902  	}
 18903  }
 18904  
 18905  // Error returns any retrieval or parsing error occurred during filtering.
 18906  func (it *MiniMeTokenNewCloneTokenIterator) Error() error {
 18907  	return it.fail
 18908  }
 18909  
 18910  // Close terminates the iteration process, releasing any pending underlying
 18911  // resources.
 18912  func (it *MiniMeTokenNewCloneTokenIterator) Close() error {
 18913  	it.sub.Unsubscribe()
 18914  	return nil
 18915  }
 18916  
 18917  // MiniMeTokenNewCloneToken represents a NewCloneToken event raised by the MiniMeToken contract.
 18918  type MiniMeTokenNewCloneToken struct {
 18919  	CloneToken    common.Address
 18920  	SnapshotBlock *big.Int
 18921  	Raw           types.Log // Blockchain specific contextual infos
 18922  }
 18923  
 18924  // FilterNewCloneToken is a free log retrieval operation binding the contract event 0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade.
 18925  //
 18926  // Solidity: event NewCloneToken(address indexed _cloneToken, uint256 _snapshotBlock)
 18927  func (_MiniMeToken *MiniMeTokenFilterer) FilterNewCloneToken(opts *bind.FilterOpts, _cloneToken []common.Address) (*MiniMeTokenNewCloneTokenIterator, error) {
 18928  
 18929  	var _cloneTokenRule []interface{}
 18930  	for _, _cloneTokenItem := range _cloneToken {
 18931  		_cloneTokenRule = append(_cloneTokenRule, _cloneTokenItem)
 18932  	}
 18933  
 18934  	logs, sub, err := _MiniMeToken.contract.FilterLogs(opts, "NewCloneToken", _cloneTokenRule)
 18935  	if err != nil {
 18936  		return nil, err
 18937  	}
 18938  	return &MiniMeTokenNewCloneTokenIterator{contract: _MiniMeToken.contract, event: "NewCloneToken", logs: logs, sub: sub}, nil
 18939  }
 18940  
 18941  // WatchNewCloneToken is a free log subscription operation binding the contract event 0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade.
 18942  //
 18943  // Solidity: event NewCloneToken(address indexed _cloneToken, uint256 _snapshotBlock)
 18944  func (_MiniMeToken *MiniMeTokenFilterer) WatchNewCloneToken(opts *bind.WatchOpts, sink chan<- *MiniMeTokenNewCloneToken, _cloneToken []common.Address) (event.Subscription, error) {
 18945  
 18946  	var _cloneTokenRule []interface{}
 18947  	for _, _cloneTokenItem := range _cloneToken {
 18948  		_cloneTokenRule = append(_cloneTokenRule, _cloneTokenItem)
 18949  	}
 18950  
 18951  	logs, sub, err := _MiniMeToken.contract.WatchLogs(opts, "NewCloneToken", _cloneTokenRule)
 18952  	if err != nil {
 18953  		return nil, err
 18954  	}
 18955  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18956  		defer sub.Unsubscribe()
 18957  		for {
 18958  			select {
 18959  			case log := <-logs:
 18960  				// New log arrived, parse the event and forward to the user
 18961  				event := new(MiniMeTokenNewCloneToken)
 18962  				if err := _MiniMeToken.contract.UnpackLog(event, "NewCloneToken", log); err != nil {
 18963  					return err
 18964  				}
 18965  				event.Raw = log
 18966  
 18967  				select {
 18968  				case sink <- event:
 18969  				case err := <-sub.Err():
 18970  					return err
 18971  				case <-quit:
 18972  					return nil
 18973  				}
 18974  			case err := <-sub.Err():
 18975  				return err
 18976  			case <-quit:
 18977  				return nil
 18978  			}
 18979  		}
 18980  	}), nil
 18981  }
 18982  
 18983  // ParseNewCloneToken is a log parse operation binding the contract event 0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade.
 18984  //
 18985  // Solidity: event NewCloneToken(address indexed _cloneToken, uint256 _snapshotBlock)
 18986  func (_MiniMeToken *MiniMeTokenFilterer) ParseNewCloneToken(log types.Log) (*MiniMeTokenNewCloneToken, error) {
 18987  	event := new(MiniMeTokenNewCloneToken)
 18988  	if err := _MiniMeToken.contract.UnpackLog(event, "NewCloneToken", log); err != nil {
 18989  		return nil, err
 18990  	}
 18991  	return event, nil
 18992  }
 18993  
 18994  // MiniMeTokenTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the MiniMeToken contract.
 18995  type MiniMeTokenTransferIterator struct {
 18996  	Event *MiniMeTokenTransfer // Event containing the contract specifics and raw log
 18997  
 18998  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18999  	event    string              // Event name to use for unpacking event data
 19000  
 19001  	logs chan types.Log        // Log channel receiving the found contract events
 19002  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 19003  	done bool                  // Whether the subscription completed delivering logs
 19004  	fail error                 // Occurred error to stop iteration
 19005  }
 19006  
 19007  // Next advances the iterator to the subsequent event, returning whether there
 19008  // are any more events found. In case of a retrieval or parsing error, false is
 19009  // returned and Error() can be queried for the exact failure.
 19010  func (it *MiniMeTokenTransferIterator) Next() bool {
 19011  	// If the iterator failed, stop iterating
 19012  	if it.fail != nil {
 19013  		return false
 19014  	}
 19015  	// If the iterator completed, deliver directly whatever's available
 19016  	if it.done {
 19017  		select {
 19018  		case log := <-it.logs:
 19019  			it.Event = new(MiniMeTokenTransfer)
 19020  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19021  				it.fail = err
 19022  				return false
 19023  			}
 19024  			it.Event.Raw = log
 19025  			return true
 19026  
 19027  		default:
 19028  			return false
 19029  		}
 19030  	}
 19031  	// Iterator still in progress, wait for either a data or an error event
 19032  	select {
 19033  	case log := <-it.logs:
 19034  		it.Event = new(MiniMeTokenTransfer)
 19035  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19036  			it.fail = err
 19037  			return false
 19038  		}
 19039  		it.Event.Raw = log
 19040  		return true
 19041  
 19042  	case err := <-it.sub.Err():
 19043  		it.done = true
 19044  		it.fail = err
 19045  		return it.Next()
 19046  	}
 19047  }
 19048  
 19049  // Error returns any retrieval or parsing error occurred during filtering.
 19050  func (it *MiniMeTokenTransferIterator) Error() error {
 19051  	return it.fail
 19052  }
 19053  
 19054  // Close terminates the iteration process, releasing any pending underlying
 19055  // resources.
 19056  func (it *MiniMeTokenTransferIterator) Close() error {
 19057  	it.sub.Unsubscribe()
 19058  	return nil
 19059  }
 19060  
 19061  // MiniMeTokenTransfer represents a Transfer event raised by the MiniMeToken contract.
 19062  type MiniMeTokenTransfer struct {
 19063  	From   common.Address
 19064  	To     common.Address
 19065  	Amount *big.Int
 19066  	Raw    types.Log // Blockchain specific contextual infos
 19067  }
 19068  
 19069  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 19070  //
 19071  // Solidity: event Transfer(address indexed _from, address indexed _to, uint256 _amount)
 19072  func (_MiniMeToken *MiniMeTokenFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address) (*MiniMeTokenTransferIterator, error) {
 19073  
 19074  	var _fromRule []interface{}
 19075  	for _, _fromItem := range _from {
 19076  		_fromRule = append(_fromRule, _fromItem)
 19077  	}
 19078  	var _toRule []interface{}
 19079  	for _, _toItem := range _to {
 19080  		_toRule = append(_toRule, _toItem)
 19081  	}
 19082  
 19083  	logs, sub, err := _MiniMeToken.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule)
 19084  	if err != nil {
 19085  		return nil, err
 19086  	}
 19087  	return &MiniMeTokenTransferIterator{contract: _MiniMeToken.contract, event: "Transfer", logs: logs, sub: sub}, nil
 19088  }
 19089  
 19090  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 19091  //
 19092  // Solidity: event Transfer(address indexed _from, address indexed _to, uint256 _amount)
 19093  func (_MiniMeToken *MiniMeTokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *MiniMeTokenTransfer, _from []common.Address, _to []common.Address) (event.Subscription, error) {
 19094  
 19095  	var _fromRule []interface{}
 19096  	for _, _fromItem := range _from {
 19097  		_fromRule = append(_fromRule, _fromItem)
 19098  	}
 19099  	var _toRule []interface{}
 19100  	for _, _toItem := range _to {
 19101  		_toRule = append(_toRule, _toItem)
 19102  	}
 19103  
 19104  	logs, sub, err := _MiniMeToken.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule)
 19105  	if err != nil {
 19106  		return nil, err
 19107  	}
 19108  	return event.NewSubscription(func(quit <-chan struct{}) error {
 19109  		defer sub.Unsubscribe()
 19110  		for {
 19111  			select {
 19112  			case log := <-logs:
 19113  				// New log arrived, parse the event and forward to the user
 19114  				event := new(MiniMeTokenTransfer)
 19115  				if err := _MiniMeToken.contract.UnpackLog(event, "Transfer", log); err != nil {
 19116  					return err
 19117  				}
 19118  				event.Raw = log
 19119  
 19120  				select {
 19121  				case sink <- event:
 19122  				case err := <-sub.Err():
 19123  					return err
 19124  				case <-quit:
 19125  					return nil
 19126  				}
 19127  			case err := <-sub.Err():
 19128  				return err
 19129  			case <-quit:
 19130  				return nil
 19131  			}
 19132  		}
 19133  	}), nil
 19134  }
 19135  
 19136  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 19137  //
 19138  // Solidity: event Transfer(address indexed _from, address indexed _to, uint256 _amount)
 19139  func (_MiniMeToken *MiniMeTokenFilterer) ParseTransfer(log types.Log) (*MiniMeTokenTransfer, error) {
 19140  	event := new(MiniMeTokenTransfer)
 19141  	if err := _MiniMeToken.contract.UnpackLog(event, "Transfer", log); err != nil {
 19142  		return nil, err
 19143  	}
 19144  	return event, nil
 19145  }
 19146  
 19147  // MiniMeTokenFactoryABI is the input ABI used to generate the binding from.
 19148  const MiniMeTokenFactoryABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_parentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotBlock\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"_tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_transfersEnabled\",\"type\":\"bool\"}],\"name\":\"createCloneToken\",\"outputs\":[{\"internalType\":\"contractMiniMeToken\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 19149  
 19150  // MiniMeTokenFactoryFuncSigs maps the 4-byte function signature to its string representation.
 19151  var MiniMeTokenFactoryFuncSigs = map[string]string{
 19152  	"5b7b72c1": "createCloneToken(address,uint256,string,uint8,string,bool)",
 19153  }
 19154  
 19155  // MiniMeTokenFactoryBin is the compiled bytecode used for deploying new contracts.
 19156  var MiniMeTokenFactoryBin = "0x608060405234801561001057600080fd5b50612128806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80635b7b72c114610030575b600080fd5b61017f600480360360c081101561004657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561007657600080fd5b82018360208201111561008857600080fd5b803590602001918460018302840111640100000000831117156100aa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929560ff85351695909490935060408101925060200135905064010000000081111561010857600080fd5b82018360208201111561011a57600080fd5b8035906020019184600183028401116401000000008311171561013c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505050351515905061019b565b604080516001600160a01b039092168252519081900360200190f35b600080308888888888886040516101b190610348565b6001600160a01b03808916825287166020808301919091526040820187905260ff8516608083015282151560c083015260e0606083018181528751918401919091528651909160a084019161010085019189019080838360005b8381101561022357818101518382015260200161020b565b50505050905090810190601f1680156102505780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561028357818101518382015260200161026b565b50505050905090810190601f1680156102b05780820380516001836020036101000a031916815260200191505b509950505050505050505050604051809103906000f0801580156102d8573d6000803e3d6000fd5b5060408051633cebb82360e01b815233600482015290519192506001600160a01b03831691633cebb8239160248082019260009290919082900301818387803b15801561032457600080fd5b505af1158015610338573d6000803e3d6000fd5b50929a9950505050505050505050565b611d9e806103568339019056fe60c0604052600960808190527f435f4d4d545f302e31000000000000000000000000000000000000000000000060a0908152620000409160049190620002ab565b503480156200004e57600080fd5b5060405162001d9e38038062001d9e833981810160405260e08110156200007457600080fd5b815160208301516040808501516060860180519251949693959194939182019284640100000000821115620000a857600080fd5b908301906020820185811115620000be57600080fd5b8251640100000000811182820188101715620000d957600080fd5b82525081516020918201929091019080838360005b8381101562000108578181015183820152602001620000ee565b50505050905090810190601f168015620001365780820380516001836020036101000a031916815260200191505b506040818152602083015192018051929491939192846401000000008211156200015f57600080fd5b9083019060208201858111156200017557600080fd5b82516401000000008111828201881017156200019057600080fd5b82525081516020918201929091019080838360005b83811015620001bf578181015183820152602001620001a5565b50505050905090810190601f168015620001ed5780820380516001836020036101000a031916815260200191505b50604052602090810151600080546001600160a01b03191633179055600b80546001600160a01b038c1661010002610100600160a81b03199091161790558651909350620002429250600191870190620002ab565b506002805460ff191660ff8516179055815162000267906003906020850190620002ab565b50600580546001600160a01b0319166001600160a01b039790971696909617909555505050600655600b805460ff1916911515919091179055504360075562000350565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ee57805160ff19168380011785556200031e565b828001600101855582156200031e579182015b828111156200031e57825182559160200191906001019062000301565b506200032c92915062000330565b5090565b6200034d91905b808211156200032c576000815560010162000337565b90565b611a3e80620003606000396000f3fe6080604052600436106101665760003560e01c8063827f32c0116100d1578063cae9ca511161008a578063df8de3e711610064578063df8de3e7146107d2578063e77772fe14610805578063f41e60c51461081a578063f77c47911461084657610166565b8063cae9ca5114610696578063d3ce77fe1461075e578063dd62ed3e1461079757610166565b8063827f32c0146105bb57806395d89b41146105f4578063981b24d014610609578063a9059cbb14610633578063bef97c871461066c578063c5bcc4f11461068157610166565b80633cebb823116101235780633cebb8231461038a5780634ee2cd7e146103bd57806354fd4d50146103f65780636638c0871461040b57806370a082311461057357806380a54001146105a657610166565b806306fdde0314610209578063095ea7b31461029357806317634514146102e057806318160ddd1461030757806323b872dd1461031c578063313ce5671461035f575b60005461017b906001600160a01b031661085b565b61018457600080fd5b60005460408051633d230c1560e21b815233600482015290516001600160a01b039092169163f48c3054913491602480830192602092919082900301818588803b1580156101d157600080fd5b505af11580156101e5573d6000803e3d6000fd5b50505050506040513d60208110156101fc57600080fd5b505161020757600080fd5b005b34801561021557600080fd5b5061021e610882565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029f57600080fd5b506102cc600480360360408110156102b657600080fd5b506001600160a01b03813516906020013561090f565b604080519115158252519081900360200190f35b3480156102ec57600080fd5b506102f5610a6e565b60408051918252519081900360200190f35b34801561031357600080fd5b506102f5610a74565b34801561032857600080fd5b506102cc6004803603606081101561033f57600080fd5b506001600160a01b03813581169160208101359091169060400135610a85565b34801561036b57600080fd5b50610374610b17565b6040805160ff9092168252519081900360200190f35b34801561039657600080fd5b50610207600480360360208110156103ad57600080fd5b50356001600160a01b0316610b20565b3480156103c957600080fd5b506102f5600480360360408110156103e057600080fd5b506001600160a01b038135169060200135610b59565b34801561040257600080fd5b5061021e610c9f565b34801561041757600080fd5b50610557600480360360a081101561042e57600080fd5b81019060208101813564010000000081111561044957600080fd5b82018360208201111561045b57600080fd5b8035906020019184600183028401116401000000008311171561047d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929560ff8535169590949093506040810192506020013590506401000000008111156104db57600080fd5b8201836020820111156104ed57600080fd5b8035906020019184600183028401116401000000008311171561050f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001351515610cfa565b604080516001600160a01b039092168252519081900360200190f35b34801561057f57600080fd5b506102f56004803603602081101561059657600080fd5b50356001600160a01b0316610f3f565b3480156105b257600080fd5b50610557610f4b565b3480156105c757600080fd5b506102cc600480360360408110156105de57600080fd5b506001600160a01b038135169060200135610f5a565b34801561060057600080fd5b5061021e611026565b34801561061557600080fd5b506102f56004803603602081101561062c57600080fd5b5035611081565b34801561063f57600080fd5b506102cc6004803603604081101561065657600080fd5b506001600160a01b03813516906020013561116e565b34801561067857600080fd5b506102cc611194565b34801561068d57600080fd5b506102f561119d565b3480156106a257600080fd5b506102cc600480360360608110156106b957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156106e957600080fd5b8201836020820111156106fb57600080fd5b8035906020019184600183028401116401000000008311171561071d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111a3945050505050565b34801561076a57600080fd5b506102cc6004803603604081101561078157600080fd5b506001600160a01b0381351690602001356112a3565b3480156107a357600080fd5b506102f5600480360360408110156107ba57600080fd5b506001600160a01b0381358116916020013516611359565b3480156107de57600080fd5b50610207600480360360208110156107f557600080fd5b50356001600160a01b0316611384565b34801561081157600080fd5b50610557611534565b34801561082657600080fd5b506102076004803603602081101561083d57600080fd5b50351515611548565b34801561085257600080fd5b50610557611572565b6000806001600160a01b03831661087657600091505061087d565b5050803b15155b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109075780601f106108dc57610100808354040283529160200191610907565b820191906000526020600020905b8154815290600101906020018083116108ea57829003601f168201915b505050505081565b600b5460009060ff1661092157600080fd5b81158061094f57503360009081526009602090815260408083206001600160a01b0387168452909152902054155b61095857600080fd5b60005461096d906001600160a01b031661085b565b15610a0657600080546040805163da682aeb60e01b81523360048201526001600160a01b038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b1580156109d157600080fd5b505af11580156109e5573d6000803e3d6000fd5b505050506040513d60208110156109fb57600080fd5b5051610a0657600080fd5b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60075481565b6000610a7f43611081565b90505b90565b600080546001600160a01b03163314610b0257600b5460ff16610aa757600080fd5b6001600160a01b0384166000908152600960209081526040808320338452909152902054821115610ad757600080fd5b6001600160a01b03841660009081526009602090815260408083203384529091529020805483900390555b610b0d848484611581565b5060019392505050565b60025460ff1681565b6000546001600160a01b03163314610b3757600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166000908152600860205260408120541580610bb357506001600160a01b03831660009081526008602052604081208054849290610b9c57fe5b6000918252602090912001546001600160801b0316115b15610c76576005546001600160a01b031615610c6e576005546006546001600160a01b0390911690634ee2cd7e908590610bee908690611776565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015610c3b57600080fd5b505afa158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b50519050610a68565b506000610a68565b6001600160a01b0383166000908152600860205260409020610c98908361178e565b9050610a68565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109075780601f106108dc57610100808354040283529160200191610907565b600082610d05574392505b6000600b60019054906101000a90046001600160a01b03166001600160a01b0316635b7b72c130868a8a8a896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001868152602001806020018560ff1660ff1681526020018060200184151515158152602001838103835287818151815260200191508051906020019080838360005b83811015610db5578181015183820152602001610d9d565b50505050905090810190601f168015610de25780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610e15578181015183820152602001610dfd565b50505050905090810190601f168015610e425780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610e6757600080fd5b505af1158015610e7b573d6000803e3d6000fd5b505050506040513d6020811015610e9157600080fd5b505160408051633cebb82360e01b815233600482015290519192506001600160a01b03831691633cebb8239160248082019260009290919082900301818387803b158015610ede57600080fd5b505af1158015610ef2573d6000803e3d6000fd5b50506040805187815290516001600160a01b03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29695505050505050565b6000610a688243610b59565b6005546001600160a01b031681565b600080546001600160a01b03163314610f7257600080fd5b6000610f7c610a74565b9050808382016001600160801b03161015610f9657600080fd5b6000610fa185610f3f565b9050808482016001600160801b03161015610fbb57600080fd5b610fc8600a8584016118be565b6001600160a01b0385166000908152600860205260409020610fec908286016118be565b6040805185815290516001600160a01b038716916000916000805160206119ea8339815191529181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109075780601f106108dc57610100808354040283529160200191610907565b600a5460009015806110b4575081600a60008154811061109d57fe5b6000918252602090912001546001600160801b0316115b1561115c576005546001600160a01b031615611154576005546006546001600160a01b039091169063981b24d0906110ed908590611776565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561112157600080fd5b505afa158015611135573d6000803e3d6000fd5b505050506040513d602081101561114b57600080fd5b5051905061087d565b50600061087d565b611167600a8361178e565b905061087d565b600b5460009060ff1661118057600080fd5b61118b338484611581565b50600192915050565b600b5460ff1681565b60065481565b60006111af848461090f565b6111b857600080fd5b604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561123257818101518382015260200161121a565b50505050905090810190601f16801561125f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b506001979650505050505050565b600080546001600160a01b031633146112bb57600080fd5b60006112c5610a74565b9050828110156112d457600080fd5b60006112df85610f3f565b9050838110156112ee57600080fd5b6112fb600a8584036118be565b6001600160a01b038516600090815260086020526040902061131f908583036118be565b6040805185815290516000916001600160a01b038816916000805160206119ea8339815191529181900360200190a3506001949350505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461139b57600080fd5b6001600160a01b0381166113ea57600080546040516001600160a01b0390911691303180156108fc02929091818181858888f193505050501580156113e4573d6000803e3d6000fd5b50611531565b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561143557600080fd5b505afa158015611449573d6000803e3d6000fd5b505050506040513d602081101561145f57600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156114bc57600080fd5b505af11580156114d0573d6000803e3d6000fd5b505050506040513d60208110156114e657600080fd5b50506000546040805183815290516001600160a01b03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600b5461010090046001600160a01b031681565b6000546001600160a01b0316331461155f57600080fd5b600b805460ff1916911515919091179055565b6000546001600160a01b031681565b806115c457816001600160a01b0316836001600160a01b03166000805160206119ea833981519152836040518082815260200191505060405180910390a3611771565b43600654106115d257600080fd5b6001600160a01b038216158015906115f357506001600160a01b0382163014155b6115fc57600080fd5b60006116088443610b59565b90508181101561161757600080fd5b60005461162c906001600160a01b031661085b565b156116c7576000805460408051634a39314960e01b81526001600160a01b03888116600483015287811660248301526044820187905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561169257600080fd5b505af11580156116a6573d6000803e3d6000fd5b505050506040513d60208110156116bc57600080fd5b50516116c757600080fd5b6001600160a01b03841660009081526008602052604090206116eb908383036118be565b60006116f78443610b59565b9050808382016001600160801b0316101561171157600080fd5b6001600160a01b0384166000908152600860205260409020611735908285016118be565b836001600160a01b0316856001600160a01b03166000805160206119ea833981519152856040518082815260200191505060405180910390a350505b505050565b60008183106117855781611787565b825b9392505050565b815460009061179f57506000610a68565b8254839060001981019081106117b157fe5b6000918252602090912001546001600160801b03168210611801578254839060001981019081106117de57fe5b600091825260209091200154600160801b90046001600160801b03169050610a68565b8260008154811061180e57fe5b6000918252602090912001546001600160801b031682101561183257506000610a68565b8254600090600019015b8181111561188d57600060026001838501010490508486828154811061185e57fe5b6000918252602090912001546001600160801b03161161188057809250611887565b6001810391505b5061183c565b84828154811061189957fe5b600091825260209091200154600160801b90046001600160801b031695945050505050565b806001600160801b031681146118d357600080fd5b81541580611907575081544390839060001981019081106118f057fe5b6000918252602090912001546001600160801b0316105b1561196e578154600090839061192082600183016119ac565b8154811061192a57fe5b600091825260209091200180546001600160801b03848116600160801b024382166fffffffffffffffffffffffffffffffff199093169290921716179055506119a8565b81546000908390600019810190811061198357fe5b600091825260209091200180546001600160801b03808516600160801b029116179055505b5050565b81548183558181111561177157600083815260209020611771918101908301610a8291905b808211156119e557600081556001016119d1565b509056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582086623770c9385e81e6ea4612cce033dd831d962bf0ddce9a4f40b15960c478c564736f6c634300050c0032a265627a7a723158205d1821d5597b9271dfd037c2c31d9a6e32d2b9efa01b325e1d8560cb7e697f3864736f6c634300050c0032"
 19157  
 19158  // DeployMiniMeTokenFactory deploys a new Ethereum contract, binding an instance of MiniMeTokenFactory to it.
 19159  func DeployMiniMeTokenFactory(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *MiniMeTokenFactory, error) {
 19160  	parsed, err := abi.JSON(strings.NewReader(MiniMeTokenFactoryABI))
 19161  	if err != nil {
 19162  		return common.Address{}, nil, nil, err
 19163  	}
 19164  
 19165  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(MiniMeTokenFactoryBin), backend)
 19166  	if err != nil {
 19167  		return common.Address{}, nil, nil, err
 19168  	}
 19169  	return address, tx, &MiniMeTokenFactory{MiniMeTokenFactoryCaller: MiniMeTokenFactoryCaller{contract: contract}, MiniMeTokenFactoryTransactor: MiniMeTokenFactoryTransactor{contract: contract}, MiniMeTokenFactoryFilterer: MiniMeTokenFactoryFilterer{contract: contract}}, nil
 19170  }
 19171  
 19172  // MiniMeTokenFactory is an auto generated Go binding around an Ethereum contract.
 19173  type MiniMeTokenFactory struct {
 19174  	MiniMeTokenFactoryCaller     // Read-only binding to the contract
 19175  	MiniMeTokenFactoryTransactor // Write-only binding to the contract
 19176  	MiniMeTokenFactoryFilterer   // Log filterer for contract events
 19177  }
 19178  
 19179  // MiniMeTokenFactoryCaller is an auto generated read-only Go binding around an Ethereum contract.
 19180  type MiniMeTokenFactoryCaller struct {
 19181  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19182  }
 19183  
 19184  // MiniMeTokenFactoryTransactor is an auto generated write-only Go binding around an Ethereum contract.
 19185  type MiniMeTokenFactoryTransactor struct {
 19186  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19187  }
 19188  
 19189  // MiniMeTokenFactoryFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 19190  type MiniMeTokenFactoryFilterer struct {
 19191  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19192  }
 19193  
 19194  // MiniMeTokenFactorySession is an auto generated Go binding around an Ethereum contract,
 19195  // with pre-set call and transact options.
 19196  type MiniMeTokenFactorySession struct {
 19197  	Contract     *MiniMeTokenFactory // Generic contract binding to set the session for
 19198  	CallOpts     bind.CallOpts       // Call options to use throughout this session
 19199  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 19200  }
 19201  
 19202  // MiniMeTokenFactoryCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 19203  // with pre-set call options.
 19204  type MiniMeTokenFactoryCallerSession struct {
 19205  	Contract *MiniMeTokenFactoryCaller // Generic contract caller binding to set the session for
 19206  	CallOpts bind.CallOpts             // Call options to use throughout this session
 19207  }
 19208  
 19209  // MiniMeTokenFactoryTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 19210  // with pre-set transact options.
 19211  type MiniMeTokenFactoryTransactorSession struct {
 19212  	Contract     *MiniMeTokenFactoryTransactor // Generic contract transactor binding to set the session for
 19213  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
 19214  }
 19215  
 19216  // MiniMeTokenFactoryRaw is an auto generated low-level Go binding around an Ethereum contract.
 19217  type MiniMeTokenFactoryRaw struct {
 19218  	Contract *MiniMeTokenFactory // Generic contract binding to access the raw methods on
 19219  }
 19220  
 19221  // MiniMeTokenFactoryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 19222  type MiniMeTokenFactoryCallerRaw struct {
 19223  	Contract *MiniMeTokenFactoryCaller // Generic read-only contract binding to access the raw methods on
 19224  }
 19225  
 19226  // MiniMeTokenFactoryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 19227  type MiniMeTokenFactoryTransactorRaw struct {
 19228  	Contract *MiniMeTokenFactoryTransactor // Generic write-only contract binding to access the raw methods on
 19229  }
 19230  
 19231  // NewMiniMeTokenFactory creates a new instance of MiniMeTokenFactory, bound to a specific deployed contract.
 19232  func NewMiniMeTokenFactory(address common.Address, backend bind.ContractBackend) (*MiniMeTokenFactory, error) {
 19233  	contract, err := bindMiniMeTokenFactory(address, backend, backend, backend)
 19234  	if err != nil {
 19235  		return nil, err
 19236  	}
 19237  	return &MiniMeTokenFactory{MiniMeTokenFactoryCaller: MiniMeTokenFactoryCaller{contract: contract}, MiniMeTokenFactoryTransactor: MiniMeTokenFactoryTransactor{contract: contract}, MiniMeTokenFactoryFilterer: MiniMeTokenFactoryFilterer{contract: contract}}, nil
 19238  }
 19239  
 19240  // NewMiniMeTokenFactoryCaller creates a new read-only instance of MiniMeTokenFactory, bound to a specific deployed contract.
 19241  func NewMiniMeTokenFactoryCaller(address common.Address, caller bind.ContractCaller) (*MiniMeTokenFactoryCaller, error) {
 19242  	contract, err := bindMiniMeTokenFactory(address, caller, nil, nil)
 19243  	if err != nil {
 19244  		return nil, err
 19245  	}
 19246  	return &MiniMeTokenFactoryCaller{contract: contract}, nil
 19247  }
 19248  
 19249  // NewMiniMeTokenFactoryTransactor creates a new write-only instance of MiniMeTokenFactory, bound to a specific deployed contract.
 19250  func NewMiniMeTokenFactoryTransactor(address common.Address, transactor bind.ContractTransactor) (*MiniMeTokenFactoryTransactor, error) {
 19251  	contract, err := bindMiniMeTokenFactory(address, nil, transactor, nil)
 19252  	if err != nil {
 19253  		return nil, err
 19254  	}
 19255  	return &MiniMeTokenFactoryTransactor{contract: contract}, nil
 19256  }
 19257  
 19258  // NewMiniMeTokenFactoryFilterer creates a new log filterer instance of MiniMeTokenFactory, bound to a specific deployed contract.
 19259  func NewMiniMeTokenFactoryFilterer(address common.Address, filterer bind.ContractFilterer) (*MiniMeTokenFactoryFilterer, error) {
 19260  	contract, err := bindMiniMeTokenFactory(address, nil, nil, filterer)
 19261  	if err != nil {
 19262  		return nil, err
 19263  	}
 19264  	return &MiniMeTokenFactoryFilterer{contract: contract}, nil
 19265  }
 19266  
 19267  // bindMiniMeTokenFactory binds a generic wrapper to an already deployed contract.
 19268  func bindMiniMeTokenFactory(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 19269  	parsed, err := abi.JSON(strings.NewReader(MiniMeTokenFactoryABI))
 19270  	if err != nil {
 19271  		return nil, err
 19272  	}
 19273  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 19274  }
 19275  
 19276  // Call invokes the (constant) contract method with params as input values and
 19277  // sets the output to result. The result type might be a single field for simple
 19278  // returns, a slice of interfaces for anonymous returns and a struct for named
 19279  // returns.
 19280  func (_MiniMeTokenFactory *MiniMeTokenFactoryRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 19281  	return _MiniMeTokenFactory.Contract.MiniMeTokenFactoryCaller.contract.Call(opts, result, method, params...)
 19282  }
 19283  
 19284  // Transfer initiates a plain transaction to move funds to the contract, calling
 19285  // its default method if one is available.
 19286  func (_MiniMeTokenFactory *MiniMeTokenFactoryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19287  	return _MiniMeTokenFactory.Contract.MiniMeTokenFactoryTransactor.contract.Transfer(opts)
 19288  }
 19289  
 19290  // Transact invokes the (paid) contract method with params as input values.
 19291  func (_MiniMeTokenFactory *MiniMeTokenFactoryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19292  	return _MiniMeTokenFactory.Contract.MiniMeTokenFactoryTransactor.contract.Transact(opts, method, params...)
 19293  }
 19294  
 19295  // Call invokes the (constant) contract method with params as input values and
 19296  // sets the output to result. The result type might be a single field for simple
 19297  // returns, a slice of interfaces for anonymous returns and a struct for named
 19298  // returns.
 19299  func (_MiniMeTokenFactory *MiniMeTokenFactoryCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 19300  	return _MiniMeTokenFactory.Contract.contract.Call(opts, result, method, params...)
 19301  }
 19302  
 19303  // Transfer initiates a plain transaction to move funds to the contract, calling
 19304  // its default method if one is available.
 19305  func (_MiniMeTokenFactory *MiniMeTokenFactoryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19306  	return _MiniMeTokenFactory.Contract.contract.Transfer(opts)
 19307  }
 19308  
 19309  // Transact invokes the (paid) contract method with params as input values.
 19310  func (_MiniMeTokenFactory *MiniMeTokenFactoryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19311  	return _MiniMeTokenFactory.Contract.contract.Transact(opts, method, params...)
 19312  }
 19313  
 19314  // CreateCloneToken is a paid mutator transaction binding the contract method 0x5b7b72c1.
 19315  //
 19316  // Solidity: function createCloneToken(address _parentToken, uint256 _snapshotBlock, string _tokenName, uint8 _decimalUnits, string _tokenSymbol, bool _transfersEnabled) returns(address)
 19317  func (_MiniMeTokenFactory *MiniMeTokenFactoryTransactor) CreateCloneToken(opts *bind.TransactOpts, _parentToken common.Address, _snapshotBlock *big.Int, _tokenName string, _decimalUnits uint8, _tokenSymbol string, _transfersEnabled bool) (*types.Transaction, error) {
 19318  	return _MiniMeTokenFactory.contract.Transact(opts, "createCloneToken", _parentToken, _snapshotBlock, _tokenName, _decimalUnits, _tokenSymbol, _transfersEnabled)
 19319  }
 19320  
 19321  // CreateCloneToken is a paid mutator transaction binding the contract method 0x5b7b72c1.
 19322  //
 19323  // Solidity: function createCloneToken(address _parentToken, uint256 _snapshotBlock, string _tokenName, uint8 _decimalUnits, string _tokenSymbol, bool _transfersEnabled) returns(address)
 19324  func (_MiniMeTokenFactory *MiniMeTokenFactorySession) CreateCloneToken(_parentToken common.Address, _snapshotBlock *big.Int, _tokenName string, _decimalUnits uint8, _tokenSymbol string, _transfersEnabled bool) (*types.Transaction, error) {
 19325  	return _MiniMeTokenFactory.Contract.CreateCloneToken(&_MiniMeTokenFactory.TransactOpts, _parentToken, _snapshotBlock, _tokenName, _decimalUnits, _tokenSymbol, _transfersEnabled)
 19326  }
 19327  
 19328  // CreateCloneToken is a paid mutator transaction binding the contract method 0x5b7b72c1.
 19329  //
 19330  // Solidity: function createCloneToken(address _parentToken, uint256 _snapshotBlock, string _tokenName, uint8 _decimalUnits, string _tokenSymbol, bool _transfersEnabled) returns(address)
 19331  func (_MiniMeTokenFactory *MiniMeTokenFactoryTransactorSession) CreateCloneToken(_parentToken common.Address, _snapshotBlock *big.Int, _tokenName string, _decimalUnits uint8, _tokenSymbol string, _transfersEnabled bool) (*types.Transaction, error) {
 19332  	return _MiniMeTokenFactory.Contract.CreateCloneToken(&_MiniMeTokenFactory.TransactOpts, _parentToken, _snapshotBlock, _tokenName, _decimalUnits, _tokenSymbol, _transfersEnabled)
 19333  }
 19334  
 19335  // MinterRoleABI is the input ABI used to generate the binding from.
 19336  const MinterRoleABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 19337  
 19338  // MinterRoleFuncSigs maps the 4-byte function signature to its string representation.
 19339  var MinterRoleFuncSigs = map[string]string{
 19340  	"983b2d56": "addMinter(address)",
 19341  	"aa271e1a": "isMinter(address)",
 19342  	"98650275": "renounceMinter()",
 19343  }
 19344  
 19345  // MinterRole is an auto generated Go binding around an Ethereum contract.
 19346  type MinterRole struct {
 19347  	MinterRoleCaller     // Read-only binding to the contract
 19348  	MinterRoleTransactor // Write-only binding to the contract
 19349  	MinterRoleFilterer   // Log filterer for contract events
 19350  }
 19351  
 19352  // MinterRoleCaller is an auto generated read-only Go binding around an Ethereum contract.
 19353  type MinterRoleCaller struct {
 19354  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19355  }
 19356  
 19357  // MinterRoleTransactor is an auto generated write-only Go binding around an Ethereum contract.
 19358  type MinterRoleTransactor struct {
 19359  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19360  }
 19361  
 19362  // MinterRoleFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 19363  type MinterRoleFilterer struct {
 19364  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19365  }
 19366  
 19367  // MinterRoleSession is an auto generated Go binding around an Ethereum contract,
 19368  // with pre-set call and transact options.
 19369  type MinterRoleSession struct {
 19370  	Contract     *MinterRole       // Generic contract binding to set the session for
 19371  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 19372  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 19373  }
 19374  
 19375  // MinterRoleCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 19376  // with pre-set call options.
 19377  type MinterRoleCallerSession struct {
 19378  	Contract *MinterRoleCaller // Generic contract caller binding to set the session for
 19379  	CallOpts bind.CallOpts     // Call options to use throughout this session
 19380  }
 19381  
 19382  // MinterRoleTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 19383  // with pre-set transact options.
 19384  type MinterRoleTransactorSession struct {
 19385  	Contract     *MinterRoleTransactor // Generic contract transactor binding to set the session for
 19386  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 19387  }
 19388  
 19389  // MinterRoleRaw is an auto generated low-level Go binding around an Ethereum contract.
 19390  type MinterRoleRaw struct {
 19391  	Contract *MinterRole // Generic contract binding to access the raw methods on
 19392  }
 19393  
 19394  // MinterRoleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 19395  type MinterRoleCallerRaw struct {
 19396  	Contract *MinterRoleCaller // Generic read-only contract binding to access the raw methods on
 19397  }
 19398  
 19399  // MinterRoleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 19400  type MinterRoleTransactorRaw struct {
 19401  	Contract *MinterRoleTransactor // Generic write-only contract binding to access the raw methods on
 19402  }
 19403  
 19404  // NewMinterRole creates a new instance of MinterRole, bound to a specific deployed contract.
 19405  func NewMinterRole(address common.Address, backend bind.ContractBackend) (*MinterRole, error) {
 19406  	contract, err := bindMinterRole(address, backend, backend, backend)
 19407  	if err != nil {
 19408  		return nil, err
 19409  	}
 19410  	return &MinterRole{MinterRoleCaller: MinterRoleCaller{contract: contract}, MinterRoleTransactor: MinterRoleTransactor{contract: contract}, MinterRoleFilterer: MinterRoleFilterer{contract: contract}}, nil
 19411  }
 19412  
 19413  // NewMinterRoleCaller creates a new read-only instance of MinterRole, bound to a specific deployed contract.
 19414  func NewMinterRoleCaller(address common.Address, caller bind.ContractCaller) (*MinterRoleCaller, error) {
 19415  	contract, err := bindMinterRole(address, caller, nil, nil)
 19416  	if err != nil {
 19417  		return nil, err
 19418  	}
 19419  	return &MinterRoleCaller{contract: contract}, nil
 19420  }
 19421  
 19422  // NewMinterRoleTransactor creates a new write-only instance of MinterRole, bound to a specific deployed contract.
 19423  func NewMinterRoleTransactor(address common.Address, transactor bind.ContractTransactor) (*MinterRoleTransactor, error) {
 19424  	contract, err := bindMinterRole(address, nil, transactor, nil)
 19425  	if err != nil {
 19426  		return nil, err
 19427  	}
 19428  	return &MinterRoleTransactor{contract: contract}, nil
 19429  }
 19430  
 19431  // NewMinterRoleFilterer creates a new log filterer instance of MinterRole, bound to a specific deployed contract.
 19432  func NewMinterRoleFilterer(address common.Address, filterer bind.ContractFilterer) (*MinterRoleFilterer, error) {
 19433  	contract, err := bindMinterRole(address, nil, nil, filterer)
 19434  	if err != nil {
 19435  		return nil, err
 19436  	}
 19437  	return &MinterRoleFilterer{contract: contract}, nil
 19438  }
 19439  
 19440  // bindMinterRole binds a generic wrapper to an already deployed contract.
 19441  func bindMinterRole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 19442  	parsed, err := abi.JSON(strings.NewReader(MinterRoleABI))
 19443  	if err != nil {
 19444  		return nil, err
 19445  	}
 19446  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 19447  }
 19448  
 19449  // Call invokes the (constant) contract method with params as input values and
 19450  // sets the output to result. The result type might be a single field for simple
 19451  // returns, a slice of interfaces for anonymous returns and a struct for named
 19452  // returns.
 19453  func (_MinterRole *MinterRoleRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 19454  	return _MinterRole.Contract.MinterRoleCaller.contract.Call(opts, result, method, params...)
 19455  }
 19456  
 19457  // Transfer initiates a plain transaction to move funds to the contract, calling
 19458  // its default method if one is available.
 19459  func (_MinterRole *MinterRoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19460  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transfer(opts)
 19461  }
 19462  
 19463  // Transact invokes the (paid) contract method with params as input values.
 19464  func (_MinterRole *MinterRoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19465  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transact(opts, method, params...)
 19466  }
 19467  
 19468  // Call invokes the (constant) contract method with params as input values and
 19469  // sets the output to result. The result type might be a single field for simple
 19470  // returns, a slice of interfaces for anonymous returns and a struct for named
 19471  // returns.
 19472  func (_MinterRole *MinterRoleCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 19473  	return _MinterRole.Contract.contract.Call(opts, result, method, params...)
 19474  }
 19475  
 19476  // Transfer initiates a plain transaction to move funds to the contract, calling
 19477  // its default method if one is available.
 19478  func (_MinterRole *MinterRoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19479  	return _MinterRole.Contract.contract.Transfer(opts)
 19480  }
 19481  
 19482  // Transact invokes the (paid) contract method with params as input values.
 19483  func (_MinterRole *MinterRoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19484  	return _MinterRole.Contract.contract.Transact(opts, method, params...)
 19485  }
 19486  
 19487  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 19488  //
 19489  // Solidity: function isMinter(address account) constant returns(bool)
 19490  func (_MinterRole *MinterRoleCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 19491  	var (
 19492  		ret0 = new(bool)
 19493  	)
 19494  	out := ret0
 19495  	err := _MinterRole.contract.Call(opts, out, "isMinter", account)
 19496  	return *ret0, err
 19497  }
 19498  
 19499  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 19500  //
 19501  // Solidity: function isMinter(address account) constant returns(bool)
 19502  func (_MinterRole *MinterRoleSession) IsMinter(account common.Address) (bool, error) {
 19503  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
 19504  }
 19505  
 19506  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 19507  //
 19508  // Solidity: function isMinter(address account) constant returns(bool)
 19509  func (_MinterRole *MinterRoleCallerSession) IsMinter(account common.Address) (bool, error) {
 19510  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
 19511  }
 19512  
 19513  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 19514  //
 19515  // Solidity: function addMinter(address account) returns()
 19516  func (_MinterRole *MinterRoleTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 19517  	return _MinterRole.contract.Transact(opts, "addMinter", account)
 19518  }
 19519  
 19520  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 19521  //
 19522  // Solidity: function addMinter(address account) returns()
 19523  func (_MinterRole *MinterRoleSession) AddMinter(account common.Address) (*types.Transaction, error) {
 19524  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
 19525  }
 19526  
 19527  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 19528  //
 19529  // Solidity: function addMinter(address account) returns()
 19530  func (_MinterRole *MinterRoleTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 19531  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
 19532  }
 19533  
 19534  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19535  //
 19536  // Solidity: function renounceMinter() returns()
 19537  func (_MinterRole *MinterRoleTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 19538  	return _MinterRole.contract.Transact(opts, "renounceMinter")
 19539  }
 19540  
 19541  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19542  //
 19543  // Solidity: function renounceMinter() returns()
 19544  func (_MinterRole *MinterRoleSession) RenounceMinter() (*types.Transaction, error) {
 19545  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
 19546  }
 19547  
 19548  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19549  //
 19550  // Solidity: function renounceMinter() returns()
 19551  func (_MinterRole *MinterRoleTransactorSession) RenounceMinter() (*types.Transaction, error) {
 19552  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
 19553  }
 19554  
 19555  // MinterRoleMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the MinterRole contract.
 19556  type MinterRoleMinterAddedIterator struct {
 19557  	Event *MinterRoleMinterAdded // Event containing the contract specifics and raw log
 19558  
 19559  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 19560  	event    string              // Event name to use for unpacking event data
 19561  
 19562  	logs chan types.Log        // Log channel receiving the found contract events
 19563  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 19564  	done bool                  // Whether the subscription completed delivering logs
 19565  	fail error                 // Occurred error to stop iteration
 19566  }
 19567  
 19568  // Next advances the iterator to the subsequent event, returning whether there
 19569  // are any more events found. In case of a retrieval or parsing error, false is
 19570  // returned and Error() can be queried for the exact failure.
 19571  func (it *MinterRoleMinterAddedIterator) Next() bool {
 19572  	// If the iterator failed, stop iterating
 19573  	if it.fail != nil {
 19574  		return false
 19575  	}
 19576  	// If the iterator completed, deliver directly whatever's available
 19577  	if it.done {
 19578  		select {
 19579  		case log := <-it.logs:
 19580  			it.Event = new(MinterRoleMinterAdded)
 19581  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19582  				it.fail = err
 19583  				return false
 19584  			}
 19585  			it.Event.Raw = log
 19586  			return true
 19587  
 19588  		default:
 19589  			return false
 19590  		}
 19591  	}
 19592  	// Iterator still in progress, wait for either a data or an error event
 19593  	select {
 19594  	case log := <-it.logs:
 19595  		it.Event = new(MinterRoleMinterAdded)
 19596  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19597  			it.fail = err
 19598  			return false
 19599  		}
 19600  		it.Event.Raw = log
 19601  		return true
 19602  
 19603  	case err := <-it.sub.Err():
 19604  		it.done = true
 19605  		it.fail = err
 19606  		return it.Next()
 19607  	}
 19608  }
 19609  
 19610  // Error returns any retrieval or parsing error occurred during filtering.
 19611  func (it *MinterRoleMinterAddedIterator) Error() error {
 19612  	return it.fail
 19613  }
 19614  
 19615  // Close terminates the iteration process, releasing any pending underlying
 19616  // resources.
 19617  func (it *MinterRoleMinterAddedIterator) Close() error {
 19618  	it.sub.Unsubscribe()
 19619  	return nil
 19620  }
 19621  
 19622  // MinterRoleMinterAdded represents a MinterAdded event raised by the MinterRole contract.
 19623  type MinterRoleMinterAdded struct {
 19624  	Account common.Address
 19625  	Raw     types.Log // Blockchain specific contextual infos
 19626  }
 19627  
 19628  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 19629  //
 19630  // Solidity: event MinterAdded(address indexed account)
 19631  func (_MinterRole *MinterRoleFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterAddedIterator, error) {
 19632  
 19633  	var accountRule []interface{}
 19634  	for _, accountItem := range account {
 19635  		accountRule = append(accountRule, accountItem)
 19636  	}
 19637  
 19638  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterAdded", accountRule)
 19639  	if err != nil {
 19640  		return nil, err
 19641  	}
 19642  	return &MinterRoleMinterAddedIterator{contract: _MinterRole.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 19643  }
 19644  
 19645  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 19646  //
 19647  // Solidity: event MinterAdded(address indexed account)
 19648  func (_MinterRole *MinterRoleFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterAdded, account []common.Address) (event.Subscription, error) {
 19649  
 19650  	var accountRule []interface{}
 19651  	for _, accountItem := range account {
 19652  		accountRule = append(accountRule, accountItem)
 19653  	}
 19654  
 19655  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterAdded", accountRule)
 19656  	if err != nil {
 19657  		return nil, err
 19658  	}
 19659  	return event.NewSubscription(func(quit <-chan struct{}) error {
 19660  		defer sub.Unsubscribe()
 19661  		for {
 19662  			select {
 19663  			case log := <-logs:
 19664  				// New log arrived, parse the event and forward to the user
 19665  				event := new(MinterRoleMinterAdded)
 19666  				if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 19667  					return err
 19668  				}
 19669  				event.Raw = log
 19670  
 19671  				select {
 19672  				case sink <- event:
 19673  				case err := <-sub.Err():
 19674  					return err
 19675  				case <-quit:
 19676  					return nil
 19677  				}
 19678  			case err := <-sub.Err():
 19679  				return err
 19680  			case <-quit:
 19681  				return nil
 19682  			}
 19683  		}
 19684  	}), nil
 19685  }
 19686  
 19687  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 19688  //
 19689  // Solidity: event MinterAdded(address indexed account)
 19690  func (_MinterRole *MinterRoleFilterer) ParseMinterAdded(log types.Log) (*MinterRoleMinterAdded, error) {
 19691  	event := new(MinterRoleMinterAdded)
 19692  	if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 19693  		return nil, err
 19694  	}
 19695  	return event, nil
 19696  }
 19697  
 19698  // MinterRoleMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the MinterRole contract.
 19699  type MinterRoleMinterRemovedIterator struct {
 19700  	Event *MinterRoleMinterRemoved // Event containing the contract specifics and raw log
 19701  
 19702  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 19703  	event    string              // Event name to use for unpacking event data
 19704  
 19705  	logs chan types.Log        // Log channel receiving the found contract events
 19706  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 19707  	done bool                  // Whether the subscription completed delivering logs
 19708  	fail error                 // Occurred error to stop iteration
 19709  }
 19710  
 19711  // Next advances the iterator to the subsequent event, returning whether there
 19712  // are any more events found. In case of a retrieval or parsing error, false is
 19713  // returned and Error() can be queried for the exact failure.
 19714  func (it *MinterRoleMinterRemovedIterator) Next() bool {
 19715  	// If the iterator failed, stop iterating
 19716  	if it.fail != nil {
 19717  		return false
 19718  	}
 19719  	// If the iterator completed, deliver directly whatever's available
 19720  	if it.done {
 19721  		select {
 19722  		case log := <-it.logs:
 19723  			it.Event = new(MinterRoleMinterRemoved)
 19724  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19725  				it.fail = err
 19726  				return false
 19727  			}
 19728  			it.Event.Raw = log
 19729  			return true
 19730  
 19731  		default:
 19732  			return false
 19733  		}
 19734  	}
 19735  	// Iterator still in progress, wait for either a data or an error event
 19736  	select {
 19737  	case log := <-it.logs:
 19738  		it.Event = new(MinterRoleMinterRemoved)
 19739  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19740  			it.fail = err
 19741  			return false
 19742  		}
 19743  		it.Event.Raw = log
 19744  		return true
 19745  
 19746  	case err := <-it.sub.Err():
 19747  		it.done = true
 19748  		it.fail = err
 19749  		return it.Next()
 19750  	}
 19751  }
 19752  
 19753  // Error returns any retrieval or parsing error occurred during filtering.
 19754  func (it *MinterRoleMinterRemovedIterator) Error() error {
 19755  	return it.fail
 19756  }
 19757  
 19758  // Close terminates the iteration process, releasing any pending underlying
 19759  // resources.
 19760  func (it *MinterRoleMinterRemovedIterator) Close() error {
 19761  	it.sub.Unsubscribe()
 19762  	return nil
 19763  }
 19764  
 19765  // MinterRoleMinterRemoved represents a MinterRemoved event raised by the MinterRole contract.
 19766  type MinterRoleMinterRemoved struct {
 19767  	Account common.Address
 19768  	Raw     types.Log // Blockchain specific contextual infos
 19769  }
 19770  
 19771  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 19772  //
 19773  // Solidity: event MinterRemoved(address indexed account)
 19774  func (_MinterRole *MinterRoleFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterRemovedIterator, error) {
 19775  
 19776  	var accountRule []interface{}
 19777  	for _, accountItem := range account {
 19778  		accountRule = append(accountRule, accountItem)
 19779  	}
 19780  
 19781  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 19782  	if err != nil {
 19783  		return nil, err
 19784  	}
 19785  	return &MinterRoleMinterRemovedIterator{contract: _MinterRole.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 19786  }
 19787  
 19788  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 19789  //
 19790  // Solidity: event MinterRemoved(address indexed account)
 19791  func (_MinterRole *MinterRoleFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterRemoved, account []common.Address) (event.Subscription, error) {
 19792  
 19793  	var accountRule []interface{}
 19794  	for _, accountItem := range account {
 19795  		accountRule = append(accountRule, accountItem)
 19796  	}
 19797  
 19798  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 19799  	if err != nil {
 19800  		return nil, err
 19801  	}
 19802  	return event.NewSubscription(func(quit <-chan struct{}) error {
 19803  		defer sub.Unsubscribe()
 19804  		for {
 19805  			select {
 19806  			case log := <-logs:
 19807  				// New log arrived, parse the event and forward to the user
 19808  				event := new(MinterRoleMinterRemoved)
 19809  				if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 19810  					return err
 19811  				}
 19812  				event.Raw = log
 19813  
 19814  				select {
 19815  				case sink <- event:
 19816  				case err := <-sub.Err():
 19817  					return err
 19818  				case <-quit:
 19819  					return nil
 19820  				}
 19821  			case err := <-sub.Err():
 19822  				return err
 19823  			case <-quit:
 19824  				return nil
 19825  			}
 19826  		}
 19827  	}), nil
 19828  }
 19829  
 19830  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 19831  //
 19832  // Solidity: event MinterRemoved(address indexed account)
 19833  func (_MinterRole *MinterRoleFilterer) ParseMinterRemoved(log types.Log) (*MinterRoleMinterRemoved, error) {
 19834  	event := new(MinterRoleMinterRemoved)
 19835  	if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 19836  		return nil, err
 19837  	}
 19838  	return event, nil
 19839  }
 19840  
 19841  // MinterRoleRenounceTargetABI is the input ABI used to generate the binding from.
 19842  const MinterRoleRenounceTargetABI = "[{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 19843  
 19844  // MinterRoleRenounceTargetFuncSigs maps the 4-byte function signature to its string representation.
 19845  var MinterRoleRenounceTargetFuncSigs = map[string]string{
 19846  	"98650275": "renounceMinter()",
 19847  }
 19848  
 19849  // MinterRoleRenounceTarget is an auto generated Go binding around an Ethereum contract.
 19850  type MinterRoleRenounceTarget struct {
 19851  	MinterRoleRenounceTargetCaller     // Read-only binding to the contract
 19852  	MinterRoleRenounceTargetTransactor // Write-only binding to the contract
 19853  	MinterRoleRenounceTargetFilterer   // Log filterer for contract events
 19854  }
 19855  
 19856  // MinterRoleRenounceTargetCaller is an auto generated read-only Go binding around an Ethereum contract.
 19857  type MinterRoleRenounceTargetCaller struct {
 19858  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19859  }
 19860  
 19861  // MinterRoleRenounceTargetTransactor is an auto generated write-only Go binding around an Ethereum contract.
 19862  type MinterRoleRenounceTargetTransactor struct {
 19863  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19864  }
 19865  
 19866  // MinterRoleRenounceTargetFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 19867  type MinterRoleRenounceTargetFilterer struct {
 19868  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19869  }
 19870  
 19871  // MinterRoleRenounceTargetSession is an auto generated Go binding around an Ethereum contract,
 19872  // with pre-set call and transact options.
 19873  type MinterRoleRenounceTargetSession struct {
 19874  	Contract     *MinterRoleRenounceTarget // Generic contract binding to set the session for
 19875  	CallOpts     bind.CallOpts             // Call options to use throughout this session
 19876  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 19877  }
 19878  
 19879  // MinterRoleRenounceTargetCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 19880  // with pre-set call options.
 19881  type MinterRoleRenounceTargetCallerSession struct {
 19882  	Contract *MinterRoleRenounceTargetCaller // Generic contract caller binding to set the session for
 19883  	CallOpts bind.CallOpts                   // Call options to use throughout this session
 19884  }
 19885  
 19886  // MinterRoleRenounceTargetTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 19887  // with pre-set transact options.
 19888  type MinterRoleRenounceTargetTransactorSession struct {
 19889  	Contract     *MinterRoleRenounceTargetTransactor // Generic contract transactor binding to set the session for
 19890  	TransactOpts bind.TransactOpts                   // Transaction auth options to use throughout this session
 19891  }
 19892  
 19893  // MinterRoleRenounceTargetRaw is an auto generated low-level Go binding around an Ethereum contract.
 19894  type MinterRoleRenounceTargetRaw struct {
 19895  	Contract *MinterRoleRenounceTarget // Generic contract binding to access the raw methods on
 19896  }
 19897  
 19898  // MinterRoleRenounceTargetCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 19899  type MinterRoleRenounceTargetCallerRaw struct {
 19900  	Contract *MinterRoleRenounceTargetCaller // Generic read-only contract binding to access the raw methods on
 19901  }
 19902  
 19903  // MinterRoleRenounceTargetTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 19904  type MinterRoleRenounceTargetTransactorRaw struct {
 19905  	Contract *MinterRoleRenounceTargetTransactor // Generic write-only contract binding to access the raw methods on
 19906  }
 19907  
 19908  // NewMinterRoleRenounceTarget creates a new instance of MinterRoleRenounceTarget, bound to a specific deployed contract.
 19909  func NewMinterRoleRenounceTarget(address common.Address, backend bind.ContractBackend) (*MinterRoleRenounceTarget, error) {
 19910  	contract, err := bindMinterRoleRenounceTarget(address, backend, backend, backend)
 19911  	if err != nil {
 19912  		return nil, err
 19913  	}
 19914  	return &MinterRoleRenounceTarget{MinterRoleRenounceTargetCaller: MinterRoleRenounceTargetCaller{contract: contract}, MinterRoleRenounceTargetTransactor: MinterRoleRenounceTargetTransactor{contract: contract}, MinterRoleRenounceTargetFilterer: MinterRoleRenounceTargetFilterer{contract: contract}}, nil
 19915  }
 19916  
 19917  // NewMinterRoleRenounceTargetCaller creates a new read-only instance of MinterRoleRenounceTarget, bound to a specific deployed contract.
 19918  func NewMinterRoleRenounceTargetCaller(address common.Address, caller bind.ContractCaller) (*MinterRoleRenounceTargetCaller, error) {
 19919  	contract, err := bindMinterRoleRenounceTarget(address, caller, nil, nil)
 19920  	if err != nil {
 19921  		return nil, err
 19922  	}
 19923  	return &MinterRoleRenounceTargetCaller{contract: contract}, nil
 19924  }
 19925  
 19926  // NewMinterRoleRenounceTargetTransactor creates a new write-only instance of MinterRoleRenounceTarget, bound to a specific deployed contract.
 19927  func NewMinterRoleRenounceTargetTransactor(address common.Address, transactor bind.ContractTransactor) (*MinterRoleRenounceTargetTransactor, error) {
 19928  	contract, err := bindMinterRoleRenounceTarget(address, nil, transactor, nil)
 19929  	if err != nil {
 19930  		return nil, err
 19931  	}
 19932  	return &MinterRoleRenounceTargetTransactor{contract: contract}, nil
 19933  }
 19934  
 19935  // NewMinterRoleRenounceTargetFilterer creates a new log filterer instance of MinterRoleRenounceTarget, bound to a specific deployed contract.
 19936  func NewMinterRoleRenounceTargetFilterer(address common.Address, filterer bind.ContractFilterer) (*MinterRoleRenounceTargetFilterer, error) {
 19937  	contract, err := bindMinterRoleRenounceTarget(address, nil, nil, filterer)
 19938  	if err != nil {
 19939  		return nil, err
 19940  	}
 19941  	return &MinterRoleRenounceTargetFilterer{contract: contract}, nil
 19942  }
 19943  
 19944  // bindMinterRoleRenounceTarget binds a generic wrapper to an already deployed contract.
 19945  func bindMinterRoleRenounceTarget(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 19946  	parsed, err := abi.JSON(strings.NewReader(MinterRoleRenounceTargetABI))
 19947  	if err != nil {
 19948  		return nil, err
 19949  	}
 19950  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 19951  }
 19952  
 19953  // Call invokes the (constant) contract method with params as input values and
 19954  // sets the output to result. The result type might be a single field for simple
 19955  // returns, a slice of interfaces for anonymous returns and a struct for named
 19956  // returns.
 19957  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 19958  	return _MinterRoleRenounceTarget.Contract.MinterRoleRenounceTargetCaller.contract.Call(opts, result, method, params...)
 19959  }
 19960  
 19961  // Transfer initiates a plain transaction to move funds to the contract, calling
 19962  // its default method if one is available.
 19963  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19964  	return _MinterRoleRenounceTarget.Contract.MinterRoleRenounceTargetTransactor.contract.Transfer(opts)
 19965  }
 19966  
 19967  // Transact invokes the (paid) contract method with params as input values.
 19968  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19969  	return _MinterRoleRenounceTarget.Contract.MinterRoleRenounceTargetTransactor.contract.Transact(opts, method, params...)
 19970  }
 19971  
 19972  // Call invokes the (constant) contract method with params as input values and
 19973  // sets the output to result. The result type might be a single field for simple
 19974  // returns, a slice of interfaces for anonymous returns and a struct for named
 19975  // returns.
 19976  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 19977  	return _MinterRoleRenounceTarget.Contract.contract.Call(opts, result, method, params...)
 19978  }
 19979  
 19980  // Transfer initiates a plain transaction to move funds to the contract, calling
 19981  // its default method if one is available.
 19982  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19983  	return _MinterRoleRenounceTarget.Contract.contract.Transfer(opts)
 19984  }
 19985  
 19986  // Transact invokes the (paid) contract method with params as input values.
 19987  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19988  	return _MinterRoleRenounceTarget.Contract.contract.Transact(opts, method, params...)
 19989  }
 19990  
 19991  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19992  //
 19993  // Solidity: function renounceMinter() returns()
 19994  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 19995  	return _MinterRoleRenounceTarget.contract.Transact(opts, "renounceMinter")
 19996  }
 19997  
 19998  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19999  //
 20000  // Solidity: function renounceMinter() returns()
 20001  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetSession) RenounceMinter() (*types.Transaction, error) {
 20002  	return _MinterRoleRenounceTarget.Contract.RenounceMinter(&_MinterRoleRenounceTarget.TransactOpts)
 20003  }
 20004  
 20005  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 20006  //
 20007  // Solidity: function renounceMinter() returns()
 20008  func (_MinterRoleRenounceTarget *MinterRoleRenounceTargetTransactorSession) RenounceMinter() (*types.Transaction, error) {
 20009  	return _MinterRoleRenounceTarget.Contract.RenounceMinter(&_MinterRoleRenounceTarget.TransactOpts)
 20010  }
 20011  
 20012  // OwnableABI is the input ABI used to generate the binding from.
 20013  const OwnableABI = "[{\"inputs\":[],\"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\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 20014  
 20015  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
 20016  var OwnableFuncSigs = map[string]string{
 20017  	"8f32d59b": "isOwner()",
 20018  	"8da5cb5b": "owner()",
 20019  	"715018a6": "renounceOwnership()",
 20020  	"f2fde38b": "transferOwnership(address)",
 20021  }
 20022  
 20023  // Ownable is an auto generated Go binding around an Ethereum contract.
 20024  type Ownable struct {
 20025  	OwnableCaller     // Read-only binding to the contract
 20026  	OwnableTransactor // Write-only binding to the contract
 20027  	OwnableFilterer   // Log filterer for contract events
 20028  }
 20029  
 20030  // OwnableCaller is an auto generated read-only Go binding around an Ethereum contract.
 20031  type OwnableCaller struct {
 20032  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20033  }
 20034  
 20035  // OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract.
 20036  type OwnableTransactor struct {
 20037  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20038  }
 20039  
 20040  // OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 20041  type OwnableFilterer struct {
 20042  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20043  }
 20044  
 20045  // OwnableSession is an auto generated Go binding around an Ethereum contract,
 20046  // with pre-set call and transact options.
 20047  type OwnableSession struct {
 20048  	Contract     *Ownable          // Generic contract binding to set the session for
 20049  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 20050  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 20051  }
 20052  
 20053  // OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 20054  // with pre-set call options.
 20055  type OwnableCallerSession struct {
 20056  	Contract *OwnableCaller // Generic contract caller binding to set the session for
 20057  	CallOpts bind.CallOpts  // Call options to use throughout this session
 20058  }
 20059  
 20060  // OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 20061  // with pre-set transact options.
 20062  type OwnableTransactorSession struct {
 20063  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
 20064  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 20065  }
 20066  
 20067  // OwnableRaw is an auto generated low-level Go binding around an Ethereum contract.
 20068  type OwnableRaw struct {
 20069  	Contract *Ownable // Generic contract binding to access the raw methods on
 20070  }
 20071  
 20072  // OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 20073  type OwnableCallerRaw struct {
 20074  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
 20075  }
 20076  
 20077  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 20078  type OwnableTransactorRaw struct {
 20079  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
 20080  }
 20081  
 20082  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
 20083  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
 20084  	contract, err := bindOwnable(address, backend, backend, backend)
 20085  	if err != nil {
 20086  		return nil, err
 20087  	}
 20088  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
 20089  }
 20090  
 20091  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
 20092  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
 20093  	contract, err := bindOwnable(address, caller, nil, nil)
 20094  	if err != nil {
 20095  		return nil, err
 20096  	}
 20097  	return &OwnableCaller{contract: contract}, nil
 20098  }
 20099  
 20100  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
 20101  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
 20102  	contract, err := bindOwnable(address, nil, transactor, nil)
 20103  	if err != nil {
 20104  		return nil, err
 20105  	}
 20106  	return &OwnableTransactor{contract: contract}, nil
 20107  }
 20108  
 20109  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
 20110  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
 20111  	contract, err := bindOwnable(address, nil, nil, filterer)
 20112  	if err != nil {
 20113  		return nil, err
 20114  	}
 20115  	return &OwnableFilterer{contract: contract}, nil
 20116  }
 20117  
 20118  // bindOwnable binds a generic wrapper to an already deployed contract.
 20119  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 20120  	parsed, err := abi.JSON(strings.NewReader(OwnableABI))
 20121  	if err != nil {
 20122  		return nil, err
 20123  	}
 20124  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 20125  }
 20126  
 20127  // Call invokes the (constant) contract method with params as input values and
 20128  // sets the output to result. The result type might be a single field for simple
 20129  // returns, a slice of interfaces for anonymous returns and a struct for named
 20130  // returns.
 20131  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 20132  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
 20133  }
 20134  
 20135  // Transfer initiates a plain transaction to move funds to the contract, calling
 20136  // its default method if one is available.
 20137  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20138  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
 20139  }
 20140  
 20141  // Transact invokes the (paid) contract method with params as input values.
 20142  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20143  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
 20144  }
 20145  
 20146  // Call invokes the (constant) contract method with params as input values and
 20147  // sets the output to result. The result type might be a single field for simple
 20148  // returns, a slice of interfaces for anonymous returns and a struct for named
 20149  // returns.
 20150  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 20151  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
 20152  }
 20153  
 20154  // Transfer initiates a plain transaction to move funds to the contract, calling
 20155  // its default method if one is available.
 20156  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20157  	return _Ownable.Contract.contract.Transfer(opts)
 20158  }
 20159  
 20160  // Transact invokes the (paid) contract method with params as input values.
 20161  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20162  	return _Ownable.Contract.contract.Transact(opts, method, params...)
 20163  }
 20164  
 20165  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 20166  //
 20167  // Solidity: function isOwner() constant returns(bool)
 20168  func (_Ownable *OwnableCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 20169  	var (
 20170  		ret0 = new(bool)
 20171  	)
 20172  	out := ret0
 20173  	err := _Ownable.contract.Call(opts, out, "isOwner")
 20174  	return *ret0, err
 20175  }
 20176  
 20177  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 20178  //
 20179  // Solidity: function isOwner() constant returns(bool)
 20180  func (_Ownable *OwnableSession) IsOwner() (bool, error) {
 20181  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
 20182  }
 20183  
 20184  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 20185  //
 20186  // Solidity: function isOwner() constant returns(bool)
 20187  func (_Ownable *OwnableCallerSession) IsOwner() (bool, error) {
 20188  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
 20189  }
 20190  
 20191  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 20192  //
 20193  // Solidity: function owner() constant returns(address)
 20194  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 20195  	var (
 20196  		ret0 = new(common.Address)
 20197  	)
 20198  	out := ret0
 20199  	err := _Ownable.contract.Call(opts, out, "owner")
 20200  	return *ret0, err
 20201  }
 20202  
 20203  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 20204  //
 20205  // Solidity: function owner() constant returns(address)
 20206  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
 20207  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 20208  }
 20209  
 20210  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 20211  //
 20212  // Solidity: function owner() constant returns(address)
 20213  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
 20214  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 20215  }
 20216  
 20217  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 20218  //
 20219  // Solidity: function renounceOwnership() returns()
 20220  func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 20221  	return _Ownable.contract.Transact(opts, "renounceOwnership")
 20222  }
 20223  
 20224  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 20225  //
 20226  // Solidity: function renounceOwnership() returns()
 20227  func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) {
 20228  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
 20229  }
 20230  
 20231  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 20232  //
 20233  // Solidity: function renounceOwnership() returns()
 20234  func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 20235  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
 20236  }
 20237  
 20238  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 20239  //
 20240  // Solidity: function transferOwnership(address newOwner) returns()
 20241  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 20242  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
 20243  }
 20244  
 20245  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 20246  //
 20247  // Solidity: function transferOwnership(address newOwner) returns()
 20248  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 20249  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 20250  }
 20251  
 20252  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 20253  //
 20254  // Solidity: function transferOwnership(address newOwner) returns()
 20255  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 20256  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 20257  }
 20258  
 20259  // OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract.
 20260  type OwnableOwnershipTransferredIterator struct {
 20261  	Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log
 20262  
 20263  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20264  	event    string              // Event name to use for unpacking event data
 20265  
 20266  	logs chan types.Log        // Log channel receiving the found contract events
 20267  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 20268  	done bool                  // Whether the subscription completed delivering logs
 20269  	fail error                 // Occurred error to stop iteration
 20270  }
 20271  
 20272  // Next advances the iterator to the subsequent event, returning whether there
 20273  // are any more events found. In case of a retrieval or parsing error, false is
 20274  // returned and Error() can be queried for the exact failure.
 20275  func (it *OwnableOwnershipTransferredIterator) Next() bool {
 20276  	// If the iterator failed, stop iterating
 20277  	if it.fail != nil {
 20278  		return false
 20279  	}
 20280  	// If the iterator completed, deliver directly whatever's available
 20281  	if it.done {
 20282  		select {
 20283  		case log := <-it.logs:
 20284  			it.Event = new(OwnableOwnershipTransferred)
 20285  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20286  				it.fail = err
 20287  				return false
 20288  			}
 20289  			it.Event.Raw = log
 20290  			return true
 20291  
 20292  		default:
 20293  			return false
 20294  		}
 20295  	}
 20296  	// Iterator still in progress, wait for either a data or an error event
 20297  	select {
 20298  	case log := <-it.logs:
 20299  		it.Event = new(OwnableOwnershipTransferred)
 20300  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20301  			it.fail = err
 20302  			return false
 20303  		}
 20304  		it.Event.Raw = log
 20305  		return true
 20306  
 20307  	case err := <-it.sub.Err():
 20308  		it.done = true
 20309  		it.fail = err
 20310  		return it.Next()
 20311  	}
 20312  }
 20313  
 20314  // Error returns any retrieval or parsing error occurred during filtering.
 20315  func (it *OwnableOwnershipTransferredIterator) Error() error {
 20316  	return it.fail
 20317  }
 20318  
 20319  // Close terminates the iteration process, releasing any pending underlying
 20320  // resources.
 20321  func (it *OwnableOwnershipTransferredIterator) Close() error {
 20322  	it.sub.Unsubscribe()
 20323  	return nil
 20324  }
 20325  
 20326  // OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract.
 20327  type OwnableOwnershipTransferred struct {
 20328  	PreviousOwner common.Address
 20329  	NewOwner      common.Address
 20330  	Raw           types.Log // Blockchain specific contextual infos
 20331  }
 20332  
 20333  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 20334  //
 20335  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 20336  func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) {
 20337  
 20338  	var previousOwnerRule []interface{}
 20339  	for _, previousOwnerItem := range previousOwner {
 20340  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 20341  	}
 20342  	var newOwnerRule []interface{}
 20343  	for _, newOwnerItem := range newOwner {
 20344  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 20345  	}
 20346  
 20347  	logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 20348  	if err != nil {
 20349  		return nil, err
 20350  	}
 20351  	return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 20352  }
 20353  
 20354  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 20355  //
 20356  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 20357  func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 20358  
 20359  	var previousOwnerRule []interface{}
 20360  	for _, previousOwnerItem := range previousOwner {
 20361  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 20362  	}
 20363  	var newOwnerRule []interface{}
 20364  	for _, newOwnerItem := range newOwner {
 20365  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 20366  	}
 20367  
 20368  	logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 20369  	if err != nil {
 20370  		return nil, err
 20371  	}
 20372  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20373  		defer sub.Unsubscribe()
 20374  		for {
 20375  			select {
 20376  			case log := <-logs:
 20377  				// New log arrived, parse the event and forward to the user
 20378  				event := new(OwnableOwnershipTransferred)
 20379  				if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 20380  					return err
 20381  				}
 20382  				event.Raw = log
 20383  
 20384  				select {
 20385  				case sink <- event:
 20386  				case err := <-sub.Err():
 20387  					return err
 20388  				case <-quit:
 20389  					return nil
 20390  				}
 20391  			case err := <-sub.Err():
 20392  				return err
 20393  			case <-quit:
 20394  				return nil
 20395  			}
 20396  		}
 20397  	}), nil
 20398  }
 20399  
 20400  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 20401  //
 20402  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 20403  func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) {
 20404  	event := new(OwnableOwnershipTransferred)
 20405  	if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 20406  		return nil, err
 20407  	}
 20408  	return event, nil
 20409  }
 20410  
 20411  // OwnableTargetABI is the input ABI used to generate the binding from.
 20412  const OwnableTargetABI = "[{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 20413  
 20414  // OwnableTargetFuncSigs maps the 4-byte function signature to its string representation.
 20415  var OwnableTargetFuncSigs = map[string]string{
 20416  	"715018a6": "renounceOwnership()",
 20417  	"f2fde38b": "transferOwnership(address)",
 20418  }
 20419  
 20420  // OwnableTarget is an auto generated Go binding around an Ethereum contract.
 20421  type OwnableTarget struct {
 20422  	OwnableTargetCaller     // Read-only binding to the contract
 20423  	OwnableTargetTransactor // Write-only binding to the contract
 20424  	OwnableTargetFilterer   // Log filterer for contract events
 20425  }
 20426  
 20427  // OwnableTargetCaller is an auto generated read-only Go binding around an Ethereum contract.
 20428  type OwnableTargetCaller struct {
 20429  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20430  }
 20431  
 20432  // OwnableTargetTransactor is an auto generated write-only Go binding around an Ethereum contract.
 20433  type OwnableTargetTransactor struct {
 20434  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20435  }
 20436  
 20437  // OwnableTargetFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 20438  type OwnableTargetFilterer struct {
 20439  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20440  }
 20441  
 20442  // OwnableTargetSession is an auto generated Go binding around an Ethereum contract,
 20443  // with pre-set call and transact options.
 20444  type OwnableTargetSession struct {
 20445  	Contract     *OwnableTarget    // Generic contract binding to set the session for
 20446  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 20447  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 20448  }
 20449  
 20450  // OwnableTargetCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 20451  // with pre-set call options.
 20452  type OwnableTargetCallerSession struct {
 20453  	Contract *OwnableTargetCaller // Generic contract caller binding to set the session for
 20454  	CallOpts bind.CallOpts        // Call options to use throughout this session
 20455  }
 20456  
 20457  // OwnableTargetTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 20458  // with pre-set transact options.
 20459  type OwnableTargetTransactorSession struct {
 20460  	Contract     *OwnableTargetTransactor // Generic contract transactor binding to set the session for
 20461  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 20462  }
 20463  
 20464  // OwnableTargetRaw is an auto generated low-level Go binding around an Ethereum contract.
 20465  type OwnableTargetRaw struct {
 20466  	Contract *OwnableTarget // Generic contract binding to access the raw methods on
 20467  }
 20468  
 20469  // OwnableTargetCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 20470  type OwnableTargetCallerRaw struct {
 20471  	Contract *OwnableTargetCaller // Generic read-only contract binding to access the raw methods on
 20472  }
 20473  
 20474  // OwnableTargetTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 20475  type OwnableTargetTransactorRaw struct {
 20476  	Contract *OwnableTargetTransactor // Generic write-only contract binding to access the raw methods on
 20477  }
 20478  
 20479  // NewOwnableTarget creates a new instance of OwnableTarget, bound to a specific deployed contract.
 20480  func NewOwnableTarget(address common.Address, backend bind.ContractBackend) (*OwnableTarget, error) {
 20481  	contract, err := bindOwnableTarget(address, backend, backend, backend)
 20482  	if err != nil {
 20483  		return nil, err
 20484  	}
 20485  	return &OwnableTarget{OwnableTargetCaller: OwnableTargetCaller{contract: contract}, OwnableTargetTransactor: OwnableTargetTransactor{contract: contract}, OwnableTargetFilterer: OwnableTargetFilterer{contract: contract}}, nil
 20486  }
 20487  
 20488  // NewOwnableTargetCaller creates a new read-only instance of OwnableTarget, bound to a specific deployed contract.
 20489  func NewOwnableTargetCaller(address common.Address, caller bind.ContractCaller) (*OwnableTargetCaller, error) {
 20490  	contract, err := bindOwnableTarget(address, caller, nil, nil)
 20491  	if err != nil {
 20492  		return nil, err
 20493  	}
 20494  	return &OwnableTargetCaller{contract: contract}, nil
 20495  }
 20496  
 20497  // NewOwnableTargetTransactor creates a new write-only instance of OwnableTarget, bound to a specific deployed contract.
 20498  func NewOwnableTargetTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTargetTransactor, error) {
 20499  	contract, err := bindOwnableTarget(address, nil, transactor, nil)
 20500  	if err != nil {
 20501  		return nil, err
 20502  	}
 20503  	return &OwnableTargetTransactor{contract: contract}, nil
 20504  }
 20505  
 20506  // NewOwnableTargetFilterer creates a new log filterer instance of OwnableTarget, bound to a specific deployed contract.
 20507  func NewOwnableTargetFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableTargetFilterer, error) {
 20508  	contract, err := bindOwnableTarget(address, nil, nil, filterer)
 20509  	if err != nil {
 20510  		return nil, err
 20511  	}
 20512  	return &OwnableTargetFilterer{contract: contract}, nil
 20513  }
 20514  
 20515  // bindOwnableTarget binds a generic wrapper to an already deployed contract.
 20516  func bindOwnableTarget(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 20517  	parsed, err := abi.JSON(strings.NewReader(OwnableTargetABI))
 20518  	if err != nil {
 20519  		return nil, err
 20520  	}
 20521  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 20522  }
 20523  
 20524  // Call invokes the (constant) contract method with params as input values and
 20525  // sets the output to result. The result type might be a single field for simple
 20526  // returns, a slice of interfaces for anonymous returns and a struct for named
 20527  // returns.
 20528  func (_OwnableTarget *OwnableTargetRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 20529  	return _OwnableTarget.Contract.OwnableTargetCaller.contract.Call(opts, result, method, params...)
 20530  }
 20531  
 20532  // Transfer initiates a plain transaction to move funds to the contract, calling
 20533  // its default method if one is available.
 20534  func (_OwnableTarget *OwnableTargetRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20535  	return _OwnableTarget.Contract.OwnableTargetTransactor.contract.Transfer(opts)
 20536  }
 20537  
 20538  // Transact invokes the (paid) contract method with params as input values.
 20539  func (_OwnableTarget *OwnableTargetRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20540  	return _OwnableTarget.Contract.OwnableTargetTransactor.contract.Transact(opts, method, params...)
 20541  }
 20542  
 20543  // Call invokes the (constant) contract method with params as input values and
 20544  // sets the output to result. The result type might be a single field for simple
 20545  // returns, a slice of interfaces for anonymous returns and a struct for named
 20546  // returns.
 20547  func (_OwnableTarget *OwnableTargetCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 20548  	return _OwnableTarget.Contract.contract.Call(opts, result, method, params...)
 20549  }
 20550  
 20551  // Transfer initiates a plain transaction to move funds to the contract, calling
 20552  // its default method if one is available.
 20553  func (_OwnableTarget *OwnableTargetTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20554  	return _OwnableTarget.Contract.contract.Transfer(opts)
 20555  }
 20556  
 20557  // Transact invokes the (paid) contract method with params as input values.
 20558  func (_OwnableTarget *OwnableTargetTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20559  	return _OwnableTarget.Contract.contract.Transact(opts, method, params...)
 20560  }
 20561  
 20562  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 20563  //
 20564  // Solidity: function renounceOwnership() returns()
 20565  func (_OwnableTarget *OwnableTargetTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 20566  	return _OwnableTarget.contract.Transact(opts, "renounceOwnership")
 20567  }
 20568  
 20569  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 20570  //
 20571  // Solidity: function renounceOwnership() returns()
 20572  func (_OwnableTarget *OwnableTargetSession) RenounceOwnership() (*types.Transaction, error) {
 20573  	return _OwnableTarget.Contract.RenounceOwnership(&_OwnableTarget.TransactOpts)
 20574  }
 20575  
 20576  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 20577  //
 20578  // Solidity: function renounceOwnership() returns()
 20579  func (_OwnableTarget *OwnableTargetTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 20580  	return _OwnableTarget.Contract.RenounceOwnership(&_OwnableTarget.TransactOpts)
 20581  }
 20582  
 20583  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 20584  //
 20585  // Solidity: function transferOwnership(address newOwner) returns()
 20586  func (_OwnableTarget *OwnableTargetTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 20587  	return _OwnableTarget.contract.Transact(opts, "transferOwnership", newOwner)
 20588  }
 20589  
 20590  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 20591  //
 20592  // Solidity: function transferOwnership(address newOwner) returns()
 20593  func (_OwnableTarget *OwnableTargetSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 20594  	return _OwnableTarget.Contract.TransferOwnership(&_OwnableTarget.TransactOpts, newOwner)
 20595  }
 20596  
 20597  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 20598  //
 20599  // Solidity: function transferOwnership(address newOwner) returns()
 20600  func (_OwnableTarget *OwnableTargetTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 20601  	return _OwnableTarget.Contract.TransferOwnership(&_OwnableTarget.TransactOpts, newOwner)
 20602  }
 20603  
 20604  // PausableABI is the input ABI used to generate the binding from.
 20605  const PausableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 20606  
 20607  // PausableFuncSigs maps the 4-byte function signature to its string representation.
 20608  var PausableFuncSigs = map[string]string{
 20609  	"82dc1ec4": "addPauser(address)",
 20610  	"46fbf68e": "isPauser(address)",
 20611  	"8456cb59": "pause()",
 20612  	"5c975abb": "paused()",
 20613  	"6ef8d66d": "renouncePauser()",
 20614  	"3f4ba83a": "unpause()",
 20615  }
 20616  
 20617  // Pausable is an auto generated Go binding around an Ethereum contract.
 20618  type Pausable struct {
 20619  	PausableCaller     // Read-only binding to the contract
 20620  	PausableTransactor // Write-only binding to the contract
 20621  	PausableFilterer   // Log filterer for contract events
 20622  }
 20623  
 20624  // PausableCaller is an auto generated read-only Go binding around an Ethereum contract.
 20625  type PausableCaller struct {
 20626  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20627  }
 20628  
 20629  // PausableTransactor is an auto generated write-only Go binding around an Ethereum contract.
 20630  type PausableTransactor struct {
 20631  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20632  }
 20633  
 20634  // PausableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 20635  type PausableFilterer struct {
 20636  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20637  }
 20638  
 20639  // PausableSession is an auto generated Go binding around an Ethereum contract,
 20640  // with pre-set call and transact options.
 20641  type PausableSession struct {
 20642  	Contract     *Pausable         // Generic contract binding to set the session for
 20643  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 20644  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 20645  }
 20646  
 20647  // PausableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 20648  // with pre-set call options.
 20649  type PausableCallerSession struct {
 20650  	Contract *PausableCaller // Generic contract caller binding to set the session for
 20651  	CallOpts bind.CallOpts   // Call options to use throughout this session
 20652  }
 20653  
 20654  // PausableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 20655  // with pre-set transact options.
 20656  type PausableTransactorSession struct {
 20657  	Contract     *PausableTransactor // Generic contract transactor binding to set the session for
 20658  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 20659  }
 20660  
 20661  // PausableRaw is an auto generated low-level Go binding around an Ethereum contract.
 20662  type PausableRaw struct {
 20663  	Contract *Pausable // Generic contract binding to access the raw methods on
 20664  }
 20665  
 20666  // PausableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 20667  type PausableCallerRaw struct {
 20668  	Contract *PausableCaller // Generic read-only contract binding to access the raw methods on
 20669  }
 20670  
 20671  // PausableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 20672  type PausableTransactorRaw struct {
 20673  	Contract *PausableTransactor // Generic write-only contract binding to access the raw methods on
 20674  }
 20675  
 20676  // NewPausable creates a new instance of Pausable, bound to a specific deployed contract.
 20677  func NewPausable(address common.Address, backend bind.ContractBackend) (*Pausable, error) {
 20678  	contract, err := bindPausable(address, backend, backend, backend)
 20679  	if err != nil {
 20680  		return nil, err
 20681  	}
 20682  	return &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil
 20683  }
 20684  
 20685  // NewPausableCaller creates a new read-only instance of Pausable, bound to a specific deployed contract.
 20686  func NewPausableCaller(address common.Address, caller bind.ContractCaller) (*PausableCaller, error) {
 20687  	contract, err := bindPausable(address, caller, nil, nil)
 20688  	if err != nil {
 20689  		return nil, err
 20690  	}
 20691  	return &PausableCaller{contract: contract}, nil
 20692  }
 20693  
 20694  // NewPausableTransactor creates a new write-only instance of Pausable, bound to a specific deployed contract.
 20695  func NewPausableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableTransactor, error) {
 20696  	contract, err := bindPausable(address, nil, transactor, nil)
 20697  	if err != nil {
 20698  		return nil, err
 20699  	}
 20700  	return &PausableTransactor{contract: contract}, nil
 20701  }
 20702  
 20703  // NewPausableFilterer creates a new log filterer instance of Pausable, bound to a specific deployed contract.
 20704  func NewPausableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableFilterer, error) {
 20705  	contract, err := bindPausable(address, nil, nil, filterer)
 20706  	if err != nil {
 20707  		return nil, err
 20708  	}
 20709  	return &PausableFilterer{contract: contract}, nil
 20710  }
 20711  
 20712  // bindPausable binds a generic wrapper to an already deployed contract.
 20713  func bindPausable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 20714  	parsed, err := abi.JSON(strings.NewReader(PausableABI))
 20715  	if err != nil {
 20716  		return nil, err
 20717  	}
 20718  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 20719  }
 20720  
 20721  // Call invokes the (constant) contract method with params as input values and
 20722  // sets the output to result. The result type might be a single field for simple
 20723  // returns, a slice of interfaces for anonymous returns and a struct for named
 20724  // returns.
 20725  func (_Pausable *PausableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 20726  	return _Pausable.Contract.PausableCaller.contract.Call(opts, result, method, params...)
 20727  }
 20728  
 20729  // Transfer initiates a plain transaction to move funds to the contract, calling
 20730  // its default method if one is available.
 20731  func (_Pausable *PausableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20732  	return _Pausable.Contract.PausableTransactor.contract.Transfer(opts)
 20733  }
 20734  
 20735  // Transact invokes the (paid) contract method with params as input values.
 20736  func (_Pausable *PausableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20737  	return _Pausable.Contract.PausableTransactor.contract.Transact(opts, method, params...)
 20738  }
 20739  
 20740  // Call invokes the (constant) contract method with params as input values and
 20741  // sets the output to result. The result type might be a single field for simple
 20742  // returns, a slice of interfaces for anonymous returns and a struct for named
 20743  // returns.
 20744  func (_Pausable *PausableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 20745  	return _Pausable.Contract.contract.Call(opts, result, method, params...)
 20746  }
 20747  
 20748  // Transfer initiates a plain transaction to move funds to the contract, calling
 20749  // its default method if one is available.
 20750  func (_Pausable *PausableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20751  	return _Pausable.Contract.contract.Transfer(opts)
 20752  }
 20753  
 20754  // Transact invokes the (paid) contract method with params as input values.
 20755  func (_Pausable *PausableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20756  	return _Pausable.Contract.contract.Transact(opts, method, params...)
 20757  }
 20758  
 20759  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 20760  //
 20761  // Solidity: function isPauser(address account) constant returns(bool)
 20762  func (_Pausable *PausableCaller) IsPauser(opts *bind.CallOpts, account common.Address) (bool, error) {
 20763  	var (
 20764  		ret0 = new(bool)
 20765  	)
 20766  	out := ret0
 20767  	err := _Pausable.contract.Call(opts, out, "isPauser", account)
 20768  	return *ret0, err
 20769  }
 20770  
 20771  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 20772  //
 20773  // Solidity: function isPauser(address account) constant returns(bool)
 20774  func (_Pausable *PausableSession) IsPauser(account common.Address) (bool, error) {
 20775  	return _Pausable.Contract.IsPauser(&_Pausable.CallOpts, account)
 20776  }
 20777  
 20778  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 20779  //
 20780  // Solidity: function isPauser(address account) constant returns(bool)
 20781  func (_Pausable *PausableCallerSession) IsPauser(account common.Address) (bool, error) {
 20782  	return _Pausable.Contract.IsPauser(&_Pausable.CallOpts, account)
 20783  }
 20784  
 20785  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 20786  //
 20787  // Solidity: function paused() constant returns(bool)
 20788  func (_Pausable *PausableCaller) Paused(opts *bind.CallOpts) (bool, error) {
 20789  	var (
 20790  		ret0 = new(bool)
 20791  	)
 20792  	out := ret0
 20793  	err := _Pausable.contract.Call(opts, out, "paused")
 20794  	return *ret0, err
 20795  }
 20796  
 20797  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 20798  //
 20799  // Solidity: function paused() constant returns(bool)
 20800  func (_Pausable *PausableSession) Paused() (bool, error) {
 20801  	return _Pausable.Contract.Paused(&_Pausable.CallOpts)
 20802  }
 20803  
 20804  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 20805  //
 20806  // Solidity: function paused() constant returns(bool)
 20807  func (_Pausable *PausableCallerSession) Paused() (bool, error) {
 20808  	return _Pausable.Contract.Paused(&_Pausable.CallOpts)
 20809  }
 20810  
 20811  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 20812  //
 20813  // Solidity: function addPauser(address account) returns()
 20814  func (_Pausable *PausableTransactor) AddPauser(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 20815  	return _Pausable.contract.Transact(opts, "addPauser", account)
 20816  }
 20817  
 20818  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 20819  //
 20820  // Solidity: function addPauser(address account) returns()
 20821  func (_Pausable *PausableSession) AddPauser(account common.Address) (*types.Transaction, error) {
 20822  	return _Pausable.Contract.AddPauser(&_Pausable.TransactOpts, account)
 20823  }
 20824  
 20825  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 20826  //
 20827  // Solidity: function addPauser(address account) returns()
 20828  func (_Pausable *PausableTransactorSession) AddPauser(account common.Address) (*types.Transaction, error) {
 20829  	return _Pausable.Contract.AddPauser(&_Pausable.TransactOpts, account)
 20830  }
 20831  
 20832  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 20833  //
 20834  // Solidity: function pause() returns()
 20835  func (_Pausable *PausableTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 20836  	return _Pausable.contract.Transact(opts, "pause")
 20837  }
 20838  
 20839  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 20840  //
 20841  // Solidity: function pause() returns()
 20842  func (_Pausable *PausableSession) Pause() (*types.Transaction, error) {
 20843  	return _Pausable.Contract.Pause(&_Pausable.TransactOpts)
 20844  }
 20845  
 20846  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 20847  //
 20848  // Solidity: function pause() returns()
 20849  func (_Pausable *PausableTransactorSession) Pause() (*types.Transaction, error) {
 20850  	return _Pausable.Contract.Pause(&_Pausable.TransactOpts)
 20851  }
 20852  
 20853  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 20854  //
 20855  // Solidity: function renouncePauser() returns()
 20856  func (_Pausable *PausableTransactor) RenouncePauser(opts *bind.TransactOpts) (*types.Transaction, error) {
 20857  	return _Pausable.contract.Transact(opts, "renouncePauser")
 20858  }
 20859  
 20860  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 20861  //
 20862  // Solidity: function renouncePauser() returns()
 20863  func (_Pausable *PausableSession) RenouncePauser() (*types.Transaction, error) {
 20864  	return _Pausable.Contract.RenouncePauser(&_Pausable.TransactOpts)
 20865  }
 20866  
 20867  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 20868  //
 20869  // Solidity: function renouncePauser() returns()
 20870  func (_Pausable *PausableTransactorSession) RenouncePauser() (*types.Transaction, error) {
 20871  	return _Pausable.Contract.RenouncePauser(&_Pausable.TransactOpts)
 20872  }
 20873  
 20874  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 20875  //
 20876  // Solidity: function unpause() returns()
 20877  func (_Pausable *PausableTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 20878  	return _Pausable.contract.Transact(opts, "unpause")
 20879  }
 20880  
 20881  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 20882  //
 20883  // Solidity: function unpause() returns()
 20884  func (_Pausable *PausableSession) Unpause() (*types.Transaction, error) {
 20885  	return _Pausable.Contract.Unpause(&_Pausable.TransactOpts)
 20886  }
 20887  
 20888  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 20889  //
 20890  // Solidity: function unpause() returns()
 20891  func (_Pausable *PausableTransactorSession) Unpause() (*types.Transaction, error) {
 20892  	return _Pausable.Contract.Unpause(&_Pausable.TransactOpts)
 20893  }
 20894  
 20895  // PausablePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the Pausable contract.
 20896  type PausablePausedIterator struct {
 20897  	Event *PausablePaused // Event containing the contract specifics and raw log
 20898  
 20899  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20900  	event    string              // Event name to use for unpacking event data
 20901  
 20902  	logs chan types.Log        // Log channel receiving the found contract events
 20903  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 20904  	done bool                  // Whether the subscription completed delivering logs
 20905  	fail error                 // Occurred error to stop iteration
 20906  }
 20907  
 20908  // Next advances the iterator to the subsequent event, returning whether there
 20909  // are any more events found. In case of a retrieval or parsing error, false is
 20910  // returned and Error() can be queried for the exact failure.
 20911  func (it *PausablePausedIterator) Next() bool {
 20912  	// If the iterator failed, stop iterating
 20913  	if it.fail != nil {
 20914  		return false
 20915  	}
 20916  	// If the iterator completed, deliver directly whatever's available
 20917  	if it.done {
 20918  		select {
 20919  		case log := <-it.logs:
 20920  			it.Event = new(PausablePaused)
 20921  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20922  				it.fail = err
 20923  				return false
 20924  			}
 20925  			it.Event.Raw = log
 20926  			return true
 20927  
 20928  		default:
 20929  			return false
 20930  		}
 20931  	}
 20932  	// Iterator still in progress, wait for either a data or an error event
 20933  	select {
 20934  	case log := <-it.logs:
 20935  		it.Event = new(PausablePaused)
 20936  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20937  			it.fail = err
 20938  			return false
 20939  		}
 20940  		it.Event.Raw = log
 20941  		return true
 20942  
 20943  	case err := <-it.sub.Err():
 20944  		it.done = true
 20945  		it.fail = err
 20946  		return it.Next()
 20947  	}
 20948  }
 20949  
 20950  // Error returns any retrieval or parsing error occurred during filtering.
 20951  func (it *PausablePausedIterator) Error() error {
 20952  	return it.fail
 20953  }
 20954  
 20955  // Close terminates the iteration process, releasing any pending underlying
 20956  // resources.
 20957  func (it *PausablePausedIterator) Close() error {
 20958  	it.sub.Unsubscribe()
 20959  	return nil
 20960  }
 20961  
 20962  // PausablePaused represents a Paused event raised by the Pausable contract.
 20963  type PausablePaused struct {
 20964  	Account common.Address
 20965  	Raw     types.Log // Blockchain specific contextual infos
 20966  }
 20967  
 20968  // FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
 20969  //
 20970  // Solidity: event Paused(address account)
 20971  func (_Pausable *PausableFilterer) FilterPaused(opts *bind.FilterOpts) (*PausablePausedIterator, error) {
 20972  
 20973  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "Paused")
 20974  	if err != nil {
 20975  		return nil, err
 20976  	}
 20977  	return &PausablePausedIterator{contract: _Pausable.contract, event: "Paused", logs: logs, sub: sub}, nil
 20978  }
 20979  
 20980  // WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
 20981  //
 20982  // Solidity: event Paused(address account)
 20983  func (_Pausable *PausableFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *PausablePaused) (event.Subscription, error) {
 20984  
 20985  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "Paused")
 20986  	if err != nil {
 20987  		return nil, err
 20988  	}
 20989  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20990  		defer sub.Unsubscribe()
 20991  		for {
 20992  			select {
 20993  			case log := <-logs:
 20994  				// New log arrived, parse the event and forward to the user
 20995  				event := new(PausablePaused)
 20996  				if err := _Pausable.contract.UnpackLog(event, "Paused", log); err != nil {
 20997  					return err
 20998  				}
 20999  				event.Raw = log
 21000  
 21001  				select {
 21002  				case sink <- event:
 21003  				case err := <-sub.Err():
 21004  					return err
 21005  				case <-quit:
 21006  					return nil
 21007  				}
 21008  			case err := <-sub.Err():
 21009  				return err
 21010  			case <-quit:
 21011  				return nil
 21012  			}
 21013  		}
 21014  	}), nil
 21015  }
 21016  
 21017  // ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
 21018  //
 21019  // Solidity: event Paused(address account)
 21020  func (_Pausable *PausableFilterer) ParsePaused(log types.Log) (*PausablePaused, error) {
 21021  	event := new(PausablePaused)
 21022  	if err := _Pausable.contract.UnpackLog(event, "Paused", log); err != nil {
 21023  		return nil, err
 21024  	}
 21025  	return event, nil
 21026  }
 21027  
 21028  // PausablePauserAddedIterator is returned from FilterPauserAdded and is used to iterate over the raw logs and unpacked data for PauserAdded events raised by the Pausable contract.
 21029  type PausablePauserAddedIterator struct {
 21030  	Event *PausablePauserAdded // Event containing the contract specifics and raw log
 21031  
 21032  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21033  	event    string              // Event name to use for unpacking event data
 21034  
 21035  	logs chan types.Log        // Log channel receiving the found contract events
 21036  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 21037  	done bool                  // Whether the subscription completed delivering logs
 21038  	fail error                 // Occurred error to stop iteration
 21039  }
 21040  
 21041  // Next advances the iterator to the subsequent event, returning whether there
 21042  // are any more events found. In case of a retrieval or parsing error, false is
 21043  // returned and Error() can be queried for the exact failure.
 21044  func (it *PausablePauserAddedIterator) Next() bool {
 21045  	// If the iterator failed, stop iterating
 21046  	if it.fail != nil {
 21047  		return false
 21048  	}
 21049  	// If the iterator completed, deliver directly whatever's available
 21050  	if it.done {
 21051  		select {
 21052  		case log := <-it.logs:
 21053  			it.Event = new(PausablePauserAdded)
 21054  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21055  				it.fail = err
 21056  				return false
 21057  			}
 21058  			it.Event.Raw = log
 21059  			return true
 21060  
 21061  		default:
 21062  			return false
 21063  		}
 21064  	}
 21065  	// Iterator still in progress, wait for either a data or an error event
 21066  	select {
 21067  	case log := <-it.logs:
 21068  		it.Event = new(PausablePauserAdded)
 21069  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21070  			it.fail = err
 21071  			return false
 21072  		}
 21073  		it.Event.Raw = log
 21074  		return true
 21075  
 21076  	case err := <-it.sub.Err():
 21077  		it.done = true
 21078  		it.fail = err
 21079  		return it.Next()
 21080  	}
 21081  }
 21082  
 21083  // Error returns any retrieval or parsing error occurred during filtering.
 21084  func (it *PausablePauserAddedIterator) Error() error {
 21085  	return it.fail
 21086  }
 21087  
 21088  // Close terminates the iteration process, releasing any pending underlying
 21089  // resources.
 21090  func (it *PausablePauserAddedIterator) Close() error {
 21091  	it.sub.Unsubscribe()
 21092  	return nil
 21093  }
 21094  
 21095  // PausablePauserAdded represents a PauserAdded event raised by the Pausable contract.
 21096  type PausablePauserAdded struct {
 21097  	Account common.Address
 21098  	Raw     types.Log // Blockchain specific contextual infos
 21099  }
 21100  
 21101  // FilterPauserAdded is a free log retrieval operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 21102  //
 21103  // Solidity: event PauserAdded(address indexed account)
 21104  func (_Pausable *PausableFilterer) FilterPauserAdded(opts *bind.FilterOpts, account []common.Address) (*PausablePauserAddedIterator, error) {
 21105  
 21106  	var accountRule []interface{}
 21107  	for _, accountItem := range account {
 21108  		accountRule = append(accountRule, accountItem)
 21109  	}
 21110  
 21111  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "PauserAdded", accountRule)
 21112  	if err != nil {
 21113  		return nil, err
 21114  	}
 21115  	return &PausablePauserAddedIterator{contract: _Pausable.contract, event: "PauserAdded", logs: logs, sub: sub}, nil
 21116  }
 21117  
 21118  // WatchPauserAdded is a free log subscription operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 21119  //
 21120  // Solidity: event PauserAdded(address indexed account)
 21121  func (_Pausable *PausableFilterer) WatchPauserAdded(opts *bind.WatchOpts, sink chan<- *PausablePauserAdded, account []common.Address) (event.Subscription, error) {
 21122  
 21123  	var accountRule []interface{}
 21124  	for _, accountItem := range account {
 21125  		accountRule = append(accountRule, accountItem)
 21126  	}
 21127  
 21128  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "PauserAdded", accountRule)
 21129  	if err != nil {
 21130  		return nil, err
 21131  	}
 21132  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21133  		defer sub.Unsubscribe()
 21134  		for {
 21135  			select {
 21136  			case log := <-logs:
 21137  				// New log arrived, parse the event and forward to the user
 21138  				event := new(PausablePauserAdded)
 21139  				if err := _Pausable.contract.UnpackLog(event, "PauserAdded", log); err != nil {
 21140  					return err
 21141  				}
 21142  				event.Raw = log
 21143  
 21144  				select {
 21145  				case sink <- event:
 21146  				case err := <-sub.Err():
 21147  					return err
 21148  				case <-quit:
 21149  					return nil
 21150  				}
 21151  			case err := <-sub.Err():
 21152  				return err
 21153  			case <-quit:
 21154  				return nil
 21155  			}
 21156  		}
 21157  	}), nil
 21158  }
 21159  
 21160  // ParsePauserAdded is a log parse operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 21161  //
 21162  // Solidity: event PauserAdded(address indexed account)
 21163  func (_Pausable *PausableFilterer) ParsePauserAdded(log types.Log) (*PausablePauserAdded, error) {
 21164  	event := new(PausablePauserAdded)
 21165  	if err := _Pausable.contract.UnpackLog(event, "PauserAdded", log); err != nil {
 21166  		return nil, err
 21167  	}
 21168  	return event, nil
 21169  }
 21170  
 21171  // PausablePauserRemovedIterator is returned from FilterPauserRemoved and is used to iterate over the raw logs and unpacked data for PauserRemoved events raised by the Pausable contract.
 21172  type PausablePauserRemovedIterator struct {
 21173  	Event *PausablePauserRemoved // Event containing the contract specifics and raw log
 21174  
 21175  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21176  	event    string              // Event name to use for unpacking event data
 21177  
 21178  	logs chan types.Log        // Log channel receiving the found contract events
 21179  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 21180  	done bool                  // Whether the subscription completed delivering logs
 21181  	fail error                 // Occurred error to stop iteration
 21182  }
 21183  
 21184  // Next advances the iterator to the subsequent event, returning whether there
 21185  // are any more events found. In case of a retrieval or parsing error, false is
 21186  // returned and Error() can be queried for the exact failure.
 21187  func (it *PausablePauserRemovedIterator) Next() bool {
 21188  	// If the iterator failed, stop iterating
 21189  	if it.fail != nil {
 21190  		return false
 21191  	}
 21192  	// If the iterator completed, deliver directly whatever's available
 21193  	if it.done {
 21194  		select {
 21195  		case log := <-it.logs:
 21196  			it.Event = new(PausablePauserRemoved)
 21197  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21198  				it.fail = err
 21199  				return false
 21200  			}
 21201  			it.Event.Raw = log
 21202  			return true
 21203  
 21204  		default:
 21205  			return false
 21206  		}
 21207  	}
 21208  	// Iterator still in progress, wait for either a data or an error event
 21209  	select {
 21210  	case log := <-it.logs:
 21211  		it.Event = new(PausablePauserRemoved)
 21212  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21213  			it.fail = err
 21214  			return false
 21215  		}
 21216  		it.Event.Raw = log
 21217  		return true
 21218  
 21219  	case err := <-it.sub.Err():
 21220  		it.done = true
 21221  		it.fail = err
 21222  		return it.Next()
 21223  	}
 21224  }
 21225  
 21226  // Error returns any retrieval or parsing error occurred during filtering.
 21227  func (it *PausablePauserRemovedIterator) Error() error {
 21228  	return it.fail
 21229  }
 21230  
 21231  // Close terminates the iteration process, releasing any pending underlying
 21232  // resources.
 21233  func (it *PausablePauserRemovedIterator) Close() error {
 21234  	it.sub.Unsubscribe()
 21235  	return nil
 21236  }
 21237  
 21238  // PausablePauserRemoved represents a PauserRemoved event raised by the Pausable contract.
 21239  type PausablePauserRemoved struct {
 21240  	Account common.Address
 21241  	Raw     types.Log // Blockchain specific contextual infos
 21242  }
 21243  
 21244  // FilterPauserRemoved is a free log retrieval operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 21245  //
 21246  // Solidity: event PauserRemoved(address indexed account)
 21247  func (_Pausable *PausableFilterer) FilterPauserRemoved(opts *bind.FilterOpts, account []common.Address) (*PausablePauserRemovedIterator, error) {
 21248  
 21249  	var accountRule []interface{}
 21250  	for _, accountItem := range account {
 21251  		accountRule = append(accountRule, accountItem)
 21252  	}
 21253  
 21254  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "PauserRemoved", accountRule)
 21255  	if err != nil {
 21256  		return nil, err
 21257  	}
 21258  	return &PausablePauserRemovedIterator{contract: _Pausable.contract, event: "PauserRemoved", logs: logs, sub: sub}, nil
 21259  }
 21260  
 21261  // WatchPauserRemoved is a free log subscription operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 21262  //
 21263  // Solidity: event PauserRemoved(address indexed account)
 21264  func (_Pausable *PausableFilterer) WatchPauserRemoved(opts *bind.WatchOpts, sink chan<- *PausablePauserRemoved, account []common.Address) (event.Subscription, error) {
 21265  
 21266  	var accountRule []interface{}
 21267  	for _, accountItem := range account {
 21268  		accountRule = append(accountRule, accountItem)
 21269  	}
 21270  
 21271  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "PauserRemoved", accountRule)
 21272  	if err != nil {
 21273  		return nil, err
 21274  	}
 21275  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21276  		defer sub.Unsubscribe()
 21277  		for {
 21278  			select {
 21279  			case log := <-logs:
 21280  				// New log arrived, parse the event and forward to the user
 21281  				event := new(PausablePauserRemoved)
 21282  				if err := _Pausable.contract.UnpackLog(event, "PauserRemoved", log); err != nil {
 21283  					return err
 21284  				}
 21285  				event.Raw = log
 21286  
 21287  				select {
 21288  				case sink <- event:
 21289  				case err := <-sub.Err():
 21290  					return err
 21291  				case <-quit:
 21292  					return nil
 21293  				}
 21294  			case err := <-sub.Err():
 21295  				return err
 21296  			case <-quit:
 21297  				return nil
 21298  			}
 21299  		}
 21300  	}), nil
 21301  }
 21302  
 21303  // ParsePauserRemoved is a log parse operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 21304  //
 21305  // Solidity: event PauserRemoved(address indexed account)
 21306  func (_Pausable *PausableFilterer) ParsePauserRemoved(log types.Log) (*PausablePauserRemoved, error) {
 21307  	event := new(PausablePauserRemoved)
 21308  	if err := _Pausable.contract.UnpackLog(event, "PauserRemoved", log); err != nil {
 21309  		return nil, err
 21310  	}
 21311  	return event, nil
 21312  }
 21313  
 21314  // PausableUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the Pausable contract.
 21315  type PausableUnpausedIterator struct {
 21316  	Event *PausableUnpaused // Event containing the contract specifics and raw log
 21317  
 21318  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21319  	event    string              // Event name to use for unpacking event data
 21320  
 21321  	logs chan types.Log        // Log channel receiving the found contract events
 21322  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 21323  	done bool                  // Whether the subscription completed delivering logs
 21324  	fail error                 // Occurred error to stop iteration
 21325  }
 21326  
 21327  // Next advances the iterator to the subsequent event, returning whether there
 21328  // are any more events found. In case of a retrieval or parsing error, false is
 21329  // returned and Error() can be queried for the exact failure.
 21330  func (it *PausableUnpausedIterator) Next() bool {
 21331  	// If the iterator failed, stop iterating
 21332  	if it.fail != nil {
 21333  		return false
 21334  	}
 21335  	// If the iterator completed, deliver directly whatever's available
 21336  	if it.done {
 21337  		select {
 21338  		case log := <-it.logs:
 21339  			it.Event = new(PausableUnpaused)
 21340  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21341  				it.fail = err
 21342  				return false
 21343  			}
 21344  			it.Event.Raw = log
 21345  			return true
 21346  
 21347  		default:
 21348  			return false
 21349  		}
 21350  	}
 21351  	// Iterator still in progress, wait for either a data or an error event
 21352  	select {
 21353  	case log := <-it.logs:
 21354  		it.Event = new(PausableUnpaused)
 21355  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21356  			it.fail = err
 21357  			return false
 21358  		}
 21359  		it.Event.Raw = log
 21360  		return true
 21361  
 21362  	case err := <-it.sub.Err():
 21363  		it.done = true
 21364  		it.fail = err
 21365  		return it.Next()
 21366  	}
 21367  }
 21368  
 21369  // Error returns any retrieval or parsing error occurred during filtering.
 21370  func (it *PausableUnpausedIterator) Error() error {
 21371  	return it.fail
 21372  }
 21373  
 21374  // Close terminates the iteration process, releasing any pending underlying
 21375  // resources.
 21376  func (it *PausableUnpausedIterator) Close() error {
 21377  	it.sub.Unsubscribe()
 21378  	return nil
 21379  }
 21380  
 21381  // PausableUnpaused represents a Unpaused event raised by the Pausable contract.
 21382  type PausableUnpaused struct {
 21383  	Account common.Address
 21384  	Raw     types.Log // Blockchain specific contextual infos
 21385  }
 21386  
 21387  // FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
 21388  //
 21389  // Solidity: event Unpaused(address account)
 21390  func (_Pausable *PausableFilterer) FilterUnpaused(opts *bind.FilterOpts) (*PausableUnpausedIterator, error) {
 21391  
 21392  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "Unpaused")
 21393  	if err != nil {
 21394  		return nil, err
 21395  	}
 21396  	return &PausableUnpausedIterator{contract: _Pausable.contract, event: "Unpaused", logs: logs, sub: sub}, nil
 21397  }
 21398  
 21399  // WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
 21400  //
 21401  // Solidity: event Unpaused(address account)
 21402  func (_Pausable *PausableFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *PausableUnpaused) (event.Subscription, error) {
 21403  
 21404  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "Unpaused")
 21405  	if err != nil {
 21406  		return nil, err
 21407  	}
 21408  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21409  		defer sub.Unsubscribe()
 21410  		for {
 21411  			select {
 21412  			case log := <-logs:
 21413  				// New log arrived, parse the event and forward to the user
 21414  				event := new(PausableUnpaused)
 21415  				if err := _Pausable.contract.UnpackLog(event, "Unpaused", log); err != nil {
 21416  					return err
 21417  				}
 21418  				event.Raw = log
 21419  
 21420  				select {
 21421  				case sink <- event:
 21422  				case err := <-sub.Err():
 21423  					return err
 21424  				case <-quit:
 21425  					return nil
 21426  				}
 21427  			case err := <-sub.Err():
 21428  				return err
 21429  			case <-quit:
 21430  				return nil
 21431  			}
 21432  		}
 21433  	}), nil
 21434  }
 21435  
 21436  // ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
 21437  //
 21438  // Solidity: event Unpaused(address account)
 21439  func (_Pausable *PausableFilterer) ParseUnpaused(log types.Log) (*PausableUnpaused, error) {
 21440  	event := new(PausableUnpaused)
 21441  	if err := _Pausable.contract.UnpackLog(event, "Unpaused", log); err != nil {
 21442  		return nil, err
 21443  	}
 21444  	return event, nil
 21445  }
 21446  
 21447  // PauserRoleABI is the input ABI used to generate the binding from.
 21448  const PauserRoleABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 21449  
 21450  // PauserRoleFuncSigs maps the 4-byte function signature to its string representation.
 21451  var PauserRoleFuncSigs = map[string]string{
 21452  	"82dc1ec4": "addPauser(address)",
 21453  	"46fbf68e": "isPauser(address)",
 21454  	"6ef8d66d": "renouncePauser()",
 21455  }
 21456  
 21457  // PauserRole is an auto generated Go binding around an Ethereum contract.
 21458  type PauserRole struct {
 21459  	PauserRoleCaller     // Read-only binding to the contract
 21460  	PauserRoleTransactor // Write-only binding to the contract
 21461  	PauserRoleFilterer   // Log filterer for contract events
 21462  }
 21463  
 21464  // PauserRoleCaller is an auto generated read-only Go binding around an Ethereum contract.
 21465  type PauserRoleCaller struct {
 21466  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21467  }
 21468  
 21469  // PauserRoleTransactor is an auto generated write-only Go binding around an Ethereum contract.
 21470  type PauserRoleTransactor struct {
 21471  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21472  }
 21473  
 21474  // PauserRoleFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 21475  type PauserRoleFilterer struct {
 21476  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21477  }
 21478  
 21479  // PauserRoleSession is an auto generated Go binding around an Ethereum contract,
 21480  // with pre-set call and transact options.
 21481  type PauserRoleSession struct {
 21482  	Contract     *PauserRole       // Generic contract binding to set the session for
 21483  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 21484  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 21485  }
 21486  
 21487  // PauserRoleCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 21488  // with pre-set call options.
 21489  type PauserRoleCallerSession struct {
 21490  	Contract *PauserRoleCaller // Generic contract caller binding to set the session for
 21491  	CallOpts bind.CallOpts     // Call options to use throughout this session
 21492  }
 21493  
 21494  // PauserRoleTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 21495  // with pre-set transact options.
 21496  type PauserRoleTransactorSession struct {
 21497  	Contract     *PauserRoleTransactor // Generic contract transactor binding to set the session for
 21498  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 21499  }
 21500  
 21501  // PauserRoleRaw is an auto generated low-level Go binding around an Ethereum contract.
 21502  type PauserRoleRaw struct {
 21503  	Contract *PauserRole // Generic contract binding to access the raw methods on
 21504  }
 21505  
 21506  // PauserRoleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 21507  type PauserRoleCallerRaw struct {
 21508  	Contract *PauserRoleCaller // Generic read-only contract binding to access the raw methods on
 21509  }
 21510  
 21511  // PauserRoleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 21512  type PauserRoleTransactorRaw struct {
 21513  	Contract *PauserRoleTransactor // Generic write-only contract binding to access the raw methods on
 21514  }
 21515  
 21516  // NewPauserRole creates a new instance of PauserRole, bound to a specific deployed contract.
 21517  func NewPauserRole(address common.Address, backend bind.ContractBackend) (*PauserRole, error) {
 21518  	contract, err := bindPauserRole(address, backend, backend, backend)
 21519  	if err != nil {
 21520  		return nil, err
 21521  	}
 21522  	return &PauserRole{PauserRoleCaller: PauserRoleCaller{contract: contract}, PauserRoleTransactor: PauserRoleTransactor{contract: contract}, PauserRoleFilterer: PauserRoleFilterer{contract: contract}}, nil
 21523  }
 21524  
 21525  // NewPauserRoleCaller creates a new read-only instance of PauserRole, bound to a specific deployed contract.
 21526  func NewPauserRoleCaller(address common.Address, caller bind.ContractCaller) (*PauserRoleCaller, error) {
 21527  	contract, err := bindPauserRole(address, caller, nil, nil)
 21528  	if err != nil {
 21529  		return nil, err
 21530  	}
 21531  	return &PauserRoleCaller{contract: contract}, nil
 21532  }
 21533  
 21534  // NewPauserRoleTransactor creates a new write-only instance of PauserRole, bound to a specific deployed contract.
 21535  func NewPauserRoleTransactor(address common.Address, transactor bind.ContractTransactor) (*PauserRoleTransactor, error) {
 21536  	contract, err := bindPauserRole(address, nil, transactor, nil)
 21537  	if err != nil {
 21538  		return nil, err
 21539  	}
 21540  	return &PauserRoleTransactor{contract: contract}, nil
 21541  }
 21542  
 21543  // NewPauserRoleFilterer creates a new log filterer instance of PauserRole, bound to a specific deployed contract.
 21544  func NewPauserRoleFilterer(address common.Address, filterer bind.ContractFilterer) (*PauserRoleFilterer, error) {
 21545  	contract, err := bindPauserRole(address, nil, nil, filterer)
 21546  	if err != nil {
 21547  		return nil, err
 21548  	}
 21549  	return &PauserRoleFilterer{contract: contract}, nil
 21550  }
 21551  
 21552  // bindPauserRole binds a generic wrapper to an already deployed contract.
 21553  func bindPauserRole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 21554  	parsed, err := abi.JSON(strings.NewReader(PauserRoleABI))
 21555  	if err != nil {
 21556  		return nil, err
 21557  	}
 21558  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 21559  }
 21560  
 21561  // Call invokes the (constant) contract method with params as input values and
 21562  // sets the output to result. The result type might be a single field for simple
 21563  // returns, a slice of interfaces for anonymous returns and a struct for named
 21564  // returns.
 21565  func (_PauserRole *PauserRoleRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 21566  	return _PauserRole.Contract.PauserRoleCaller.contract.Call(opts, result, method, params...)
 21567  }
 21568  
 21569  // Transfer initiates a plain transaction to move funds to the contract, calling
 21570  // its default method if one is available.
 21571  func (_PauserRole *PauserRoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21572  	return _PauserRole.Contract.PauserRoleTransactor.contract.Transfer(opts)
 21573  }
 21574  
 21575  // Transact invokes the (paid) contract method with params as input values.
 21576  func (_PauserRole *PauserRoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21577  	return _PauserRole.Contract.PauserRoleTransactor.contract.Transact(opts, method, params...)
 21578  }
 21579  
 21580  // Call invokes the (constant) contract method with params as input values and
 21581  // sets the output to result. The result type might be a single field for simple
 21582  // returns, a slice of interfaces for anonymous returns and a struct for named
 21583  // returns.
 21584  func (_PauserRole *PauserRoleCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 21585  	return _PauserRole.Contract.contract.Call(opts, result, method, params...)
 21586  }
 21587  
 21588  // Transfer initiates a plain transaction to move funds to the contract, calling
 21589  // its default method if one is available.
 21590  func (_PauserRole *PauserRoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21591  	return _PauserRole.Contract.contract.Transfer(opts)
 21592  }
 21593  
 21594  // Transact invokes the (paid) contract method with params as input values.
 21595  func (_PauserRole *PauserRoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21596  	return _PauserRole.Contract.contract.Transact(opts, method, params...)
 21597  }
 21598  
 21599  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 21600  //
 21601  // Solidity: function isPauser(address account) constant returns(bool)
 21602  func (_PauserRole *PauserRoleCaller) IsPauser(opts *bind.CallOpts, account common.Address) (bool, error) {
 21603  	var (
 21604  		ret0 = new(bool)
 21605  	)
 21606  	out := ret0
 21607  	err := _PauserRole.contract.Call(opts, out, "isPauser", account)
 21608  	return *ret0, err
 21609  }
 21610  
 21611  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 21612  //
 21613  // Solidity: function isPauser(address account) constant returns(bool)
 21614  func (_PauserRole *PauserRoleSession) IsPauser(account common.Address) (bool, error) {
 21615  	return _PauserRole.Contract.IsPauser(&_PauserRole.CallOpts, account)
 21616  }
 21617  
 21618  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 21619  //
 21620  // Solidity: function isPauser(address account) constant returns(bool)
 21621  func (_PauserRole *PauserRoleCallerSession) IsPauser(account common.Address) (bool, error) {
 21622  	return _PauserRole.Contract.IsPauser(&_PauserRole.CallOpts, account)
 21623  }
 21624  
 21625  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 21626  //
 21627  // Solidity: function addPauser(address account) returns()
 21628  func (_PauserRole *PauserRoleTransactor) AddPauser(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 21629  	return _PauserRole.contract.Transact(opts, "addPauser", account)
 21630  }
 21631  
 21632  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 21633  //
 21634  // Solidity: function addPauser(address account) returns()
 21635  func (_PauserRole *PauserRoleSession) AddPauser(account common.Address) (*types.Transaction, error) {
 21636  	return _PauserRole.Contract.AddPauser(&_PauserRole.TransactOpts, account)
 21637  }
 21638  
 21639  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 21640  //
 21641  // Solidity: function addPauser(address account) returns()
 21642  func (_PauserRole *PauserRoleTransactorSession) AddPauser(account common.Address) (*types.Transaction, error) {
 21643  	return _PauserRole.Contract.AddPauser(&_PauserRole.TransactOpts, account)
 21644  }
 21645  
 21646  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 21647  //
 21648  // Solidity: function renouncePauser() returns()
 21649  func (_PauserRole *PauserRoleTransactor) RenouncePauser(opts *bind.TransactOpts) (*types.Transaction, error) {
 21650  	return _PauserRole.contract.Transact(opts, "renouncePauser")
 21651  }
 21652  
 21653  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 21654  //
 21655  // Solidity: function renouncePauser() returns()
 21656  func (_PauserRole *PauserRoleSession) RenouncePauser() (*types.Transaction, error) {
 21657  	return _PauserRole.Contract.RenouncePauser(&_PauserRole.TransactOpts)
 21658  }
 21659  
 21660  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 21661  //
 21662  // Solidity: function renouncePauser() returns()
 21663  func (_PauserRole *PauserRoleTransactorSession) RenouncePauser() (*types.Transaction, error) {
 21664  	return _PauserRole.Contract.RenouncePauser(&_PauserRole.TransactOpts)
 21665  }
 21666  
 21667  // PauserRolePauserAddedIterator is returned from FilterPauserAdded and is used to iterate over the raw logs and unpacked data for PauserAdded events raised by the PauserRole contract.
 21668  type PauserRolePauserAddedIterator struct {
 21669  	Event *PauserRolePauserAdded // Event containing the contract specifics and raw log
 21670  
 21671  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21672  	event    string              // Event name to use for unpacking event data
 21673  
 21674  	logs chan types.Log        // Log channel receiving the found contract events
 21675  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 21676  	done bool                  // Whether the subscription completed delivering logs
 21677  	fail error                 // Occurred error to stop iteration
 21678  }
 21679  
 21680  // Next advances the iterator to the subsequent event, returning whether there
 21681  // are any more events found. In case of a retrieval or parsing error, false is
 21682  // returned and Error() can be queried for the exact failure.
 21683  func (it *PauserRolePauserAddedIterator) Next() bool {
 21684  	// If the iterator failed, stop iterating
 21685  	if it.fail != nil {
 21686  		return false
 21687  	}
 21688  	// If the iterator completed, deliver directly whatever's available
 21689  	if it.done {
 21690  		select {
 21691  		case log := <-it.logs:
 21692  			it.Event = new(PauserRolePauserAdded)
 21693  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21694  				it.fail = err
 21695  				return false
 21696  			}
 21697  			it.Event.Raw = log
 21698  			return true
 21699  
 21700  		default:
 21701  			return false
 21702  		}
 21703  	}
 21704  	// Iterator still in progress, wait for either a data or an error event
 21705  	select {
 21706  	case log := <-it.logs:
 21707  		it.Event = new(PauserRolePauserAdded)
 21708  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21709  			it.fail = err
 21710  			return false
 21711  		}
 21712  		it.Event.Raw = log
 21713  		return true
 21714  
 21715  	case err := <-it.sub.Err():
 21716  		it.done = true
 21717  		it.fail = err
 21718  		return it.Next()
 21719  	}
 21720  }
 21721  
 21722  // Error returns any retrieval or parsing error occurred during filtering.
 21723  func (it *PauserRolePauserAddedIterator) Error() error {
 21724  	return it.fail
 21725  }
 21726  
 21727  // Close terminates the iteration process, releasing any pending underlying
 21728  // resources.
 21729  func (it *PauserRolePauserAddedIterator) Close() error {
 21730  	it.sub.Unsubscribe()
 21731  	return nil
 21732  }
 21733  
 21734  // PauserRolePauserAdded represents a PauserAdded event raised by the PauserRole contract.
 21735  type PauserRolePauserAdded struct {
 21736  	Account common.Address
 21737  	Raw     types.Log // Blockchain specific contextual infos
 21738  }
 21739  
 21740  // FilterPauserAdded is a free log retrieval operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 21741  //
 21742  // Solidity: event PauserAdded(address indexed account)
 21743  func (_PauserRole *PauserRoleFilterer) FilterPauserAdded(opts *bind.FilterOpts, account []common.Address) (*PauserRolePauserAddedIterator, error) {
 21744  
 21745  	var accountRule []interface{}
 21746  	for _, accountItem := range account {
 21747  		accountRule = append(accountRule, accountItem)
 21748  	}
 21749  
 21750  	logs, sub, err := _PauserRole.contract.FilterLogs(opts, "PauserAdded", accountRule)
 21751  	if err != nil {
 21752  		return nil, err
 21753  	}
 21754  	return &PauserRolePauserAddedIterator{contract: _PauserRole.contract, event: "PauserAdded", logs: logs, sub: sub}, nil
 21755  }
 21756  
 21757  // WatchPauserAdded is a free log subscription operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 21758  //
 21759  // Solidity: event PauserAdded(address indexed account)
 21760  func (_PauserRole *PauserRoleFilterer) WatchPauserAdded(opts *bind.WatchOpts, sink chan<- *PauserRolePauserAdded, account []common.Address) (event.Subscription, error) {
 21761  
 21762  	var accountRule []interface{}
 21763  	for _, accountItem := range account {
 21764  		accountRule = append(accountRule, accountItem)
 21765  	}
 21766  
 21767  	logs, sub, err := _PauserRole.contract.WatchLogs(opts, "PauserAdded", accountRule)
 21768  	if err != nil {
 21769  		return nil, err
 21770  	}
 21771  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21772  		defer sub.Unsubscribe()
 21773  		for {
 21774  			select {
 21775  			case log := <-logs:
 21776  				// New log arrived, parse the event and forward to the user
 21777  				event := new(PauserRolePauserAdded)
 21778  				if err := _PauserRole.contract.UnpackLog(event, "PauserAdded", log); err != nil {
 21779  					return err
 21780  				}
 21781  				event.Raw = log
 21782  
 21783  				select {
 21784  				case sink <- event:
 21785  				case err := <-sub.Err():
 21786  					return err
 21787  				case <-quit:
 21788  					return nil
 21789  				}
 21790  			case err := <-sub.Err():
 21791  				return err
 21792  			case <-quit:
 21793  				return nil
 21794  			}
 21795  		}
 21796  	}), nil
 21797  }
 21798  
 21799  // ParsePauserAdded is a log parse operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 21800  //
 21801  // Solidity: event PauserAdded(address indexed account)
 21802  func (_PauserRole *PauserRoleFilterer) ParsePauserAdded(log types.Log) (*PauserRolePauserAdded, error) {
 21803  	event := new(PauserRolePauserAdded)
 21804  	if err := _PauserRole.contract.UnpackLog(event, "PauserAdded", log); err != nil {
 21805  		return nil, err
 21806  	}
 21807  	return event, nil
 21808  }
 21809  
 21810  // PauserRolePauserRemovedIterator is returned from FilterPauserRemoved and is used to iterate over the raw logs and unpacked data for PauserRemoved events raised by the PauserRole contract.
 21811  type PauserRolePauserRemovedIterator struct {
 21812  	Event *PauserRolePauserRemoved // Event containing the contract specifics and raw log
 21813  
 21814  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21815  	event    string              // Event name to use for unpacking event data
 21816  
 21817  	logs chan types.Log        // Log channel receiving the found contract events
 21818  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 21819  	done bool                  // Whether the subscription completed delivering logs
 21820  	fail error                 // Occurred error to stop iteration
 21821  }
 21822  
 21823  // Next advances the iterator to the subsequent event, returning whether there
 21824  // are any more events found. In case of a retrieval or parsing error, false is
 21825  // returned and Error() can be queried for the exact failure.
 21826  func (it *PauserRolePauserRemovedIterator) Next() bool {
 21827  	// If the iterator failed, stop iterating
 21828  	if it.fail != nil {
 21829  		return false
 21830  	}
 21831  	// If the iterator completed, deliver directly whatever's available
 21832  	if it.done {
 21833  		select {
 21834  		case log := <-it.logs:
 21835  			it.Event = new(PauserRolePauserRemoved)
 21836  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21837  				it.fail = err
 21838  				return false
 21839  			}
 21840  			it.Event.Raw = log
 21841  			return true
 21842  
 21843  		default:
 21844  			return false
 21845  		}
 21846  	}
 21847  	// Iterator still in progress, wait for either a data or an error event
 21848  	select {
 21849  	case log := <-it.logs:
 21850  		it.Event = new(PauserRolePauserRemoved)
 21851  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21852  			it.fail = err
 21853  			return false
 21854  		}
 21855  		it.Event.Raw = log
 21856  		return true
 21857  
 21858  	case err := <-it.sub.Err():
 21859  		it.done = true
 21860  		it.fail = err
 21861  		return it.Next()
 21862  	}
 21863  }
 21864  
 21865  // Error returns any retrieval or parsing error occurred during filtering.
 21866  func (it *PauserRolePauserRemovedIterator) Error() error {
 21867  	return it.fail
 21868  }
 21869  
 21870  // Close terminates the iteration process, releasing any pending underlying
 21871  // resources.
 21872  func (it *PauserRolePauserRemovedIterator) Close() error {
 21873  	it.sub.Unsubscribe()
 21874  	return nil
 21875  }
 21876  
 21877  // PauserRolePauserRemoved represents a PauserRemoved event raised by the PauserRole contract.
 21878  type PauserRolePauserRemoved struct {
 21879  	Account common.Address
 21880  	Raw     types.Log // Blockchain specific contextual infos
 21881  }
 21882  
 21883  // FilterPauserRemoved is a free log retrieval operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 21884  //
 21885  // Solidity: event PauserRemoved(address indexed account)
 21886  func (_PauserRole *PauserRoleFilterer) FilterPauserRemoved(opts *bind.FilterOpts, account []common.Address) (*PauserRolePauserRemovedIterator, error) {
 21887  
 21888  	var accountRule []interface{}
 21889  	for _, accountItem := range account {
 21890  		accountRule = append(accountRule, accountItem)
 21891  	}
 21892  
 21893  	logs, sub, err := _PauserRole.contract.FilterLogs(opts, "PauserRemoved", accountRule)
 21894  	if err != nil {
 21895  		return nil, err
 21896  	}
 21897  	return &PauserRolePauserRemovedIterator{contract: _PauserRole.contract, event: "PauserRemoved", logs: logs, sub: sub}, nil
 21898  }
 21899  
 21900  // WatchPauserRemoved is a free log subscription operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 21901  //
 21902  // Solidity: event PauserRemoved(address indexed account)
 21903  func (_PauserRole *PauserRoleFilterer) WatchPauserRemoved(opts *bind.WatchOpts, sink chan<- *PauserRolePauserRemoved, account []common.Address) (event.Subscription, error) {
 21904  
 21905  	var accountRule []interface{}
 21906  	for _, accountItem := range account {
 21907  		accountRule = append(accountRule, accountItem)
 21908  	}
 21909  
 21910  	logs, sub, err := _PauserRole.contract.WatchLogs(opts, "PauserRemoved", accountRule)
 21911  	if err != nil {
 21912  		return nil, err
 21913  	}
 21914  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21915  		defer sub.Unsubscribe()
 21916  		for {
 21917  			select {
 21918  			case log := <-logs:
 21919  				// New log arrived, parse the event and forward to the user
 21920  				event := new(PauserRolePauserRemoved)
 21921  				if err := _PauserRole.contract.UnpackLog(event, "PauserRemoved", log); err != nil {
 21922  					return err
 21923  				}
 21924  				event.Raw = log
 21925  
 21926  				select {
 21927  				case sink <- event:
 21928  				case err := <-sub.Err():
 21929  					return err
 21930  				case <-quit:
 21931  					return nil
 21932  				}
 21933  			case err := <-sub.Err():
 21934  				return err
 21935  			case <-quit:
 21936  				return nil
 21937  			}
 21938  		}
 21939  	}), nil
 21940  }
 21941  
 21942  // ParsePauserRemoved is a log parse operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 21943  //
 21944  // Solidity: event PauserRemoved(address indexed account)
 21945  func (_PauserRole *PauserRoleFilterer) ParsePauserRemoved(log types.Log) (*PauserRolePauserRemoved, error) {
 21946  	event := new(PauserRolePauserRemoved)
 21947  	if err := _PauserRole.contract.UnpackLog(event, "PauserRemoved", log); err != nil {
 21948  		return nil, err
 21949  	}
 21950  	return event, nil
 21951  }
 21952  
 21953  // PauserRoleRenounceTargetABI is the input ABI used to generate the binding from.
 21954  const PauserRoleRenounceTargetABI = "[{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 21955  
 21956  // PauserRoleRenounceTargetFuncSigs maps the 4-byte function signature to its string representation.
 21957  var PauserRoleRenounceTargetFuncSigs = map[string]string{
 21958  	"6ef8d66d": "renouncePauser()",
 21959  }
 21960  
 21961  // PauserRoleRenounceTarget is an auto generated Go binding around an Ethereum contract.
 21962  type PauserRoleRenounceTarget struct {
 21963  	PauserRoleRenounceTargetCaller     // Read-only binding to the contract
 21964  	PauserRoleRenounceTargetTransactor // Write-only binding to the contract
 21965  	PauserRoleRenounceTargetFilterer   // Log filterer for contract events
 21966  }
 21967  
 21968  // PauserRoleRenounceTargetCaller is an auto generated read-only Go binding around an Ethereum contract.
 21969  type PauserRoleRenounceTargetCaller struct {
 21970  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21971  }
 21972  
 21973  // PauserRoleRenounceTargetTransactor is an auto generated write-only Go binding around an Ethereum contract.
 21974  type PauserRoleRenounceTargetTransactor struct {
 21975  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21976  }
 21977  
 21978  // PauserRoleRenounceTargetFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 21979  type PauserRoleRenounceTargetFilterer struct {
 21980  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21981  }
 21982  
 21983  // PauserRoleRenounceTargetSession is an auto generated Go binding around an Ethereum contract,
 21984  // with pre-set call and transact options.
 21985  type PauserRoleRenounceTargetSession struct {
 21986  	Contract     *PauserRoleRenounceTarget // Generic contract binding to set the session for
 21987  	CallOpts     bind.CallOpts             // Call options to use throughout this session
 21988  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 21989  }
 21990  
 21991  // PauserRoleRenounceTargetCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 21992  // with pre-set call options.
 21993  type PauserRoleRenounceTargetCallerSession struct {
 21994  	Contract *PauserRoleRenounceTargetCaller // Generic contract caller binding to set the session for
 21995  	CallOpts bind.CallOpts                   // Call options to use throughout this session
 21996  }
 21997  
 21998  // PauserRoleRenounceTargetTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 21999  // with pre-set transact options.
 22000  type PauserRoleRenounceTargetTransactorSession struct {
 22001  	Contract     *PauserRoleRenounceTargetTransactor // Generic contract transactor binding to set the session for
 22002  	TransactOpts bind.TransactOpts                   // Transaction auth options to use throughout this session
 22003  }
 22004  
 22005  // PauserRoleRenounceTargetRaw is an auto generated low-level Go binding around an Ethereum contract.
 22006  type PauserRoleRenounceTargetRaw struct {
 22007  	Contract *PauserRoleRenounceTarget // Generic contract binding to access the raw methods on
 22008  }
 22009  
 22010  // PauserRoleRenounceTargetCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 22011  type PauserRoleRenounceTargetCallerRaw struct {
 22012  	Contract *PauserRoleRenounceTargetCaller // Generic read-only contract binding to access the raw methods on
 22013  }
 22014  
 22015  // PauserRoleRenounceTargetTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 22016  type PauserRoleRenounceTargetTransactorRaw struct {
 22017  	Contract *PauserRoleRenounceTargetTransactor // Generic write-only contract binding to access the raw methods on
 22018  }
 22019  
 22020  // NewPauserRoleRenounceTarget creates a new instance of PauserRoleRenounceTarget, bound to a specific deployed contract.
 22021  func NewPauserRoleRenounceTarget(address common.Address, backend bind.ContractBackend) (*PauserRoleRenounceTarget, error) {
 22022  	contract, err := bindPauserRoleRenounceTarget(address, backend, backend, backend)
 22023  	if err != nil {
 22024  		return nil, err
 22025  	}
 22026  	return &PauserRoleRenounceTarget{PauserRoleRenounceTargetCaller: PauserRoleRenounceTargetCaller{contract: contract}, PauserRoleRenounceTargetTransactor: PauserRoleRenounceTargetTransactor{contract: contract}, PauserRoleRenounceTargetFilterer: PauserRoleRenounceTargetFilterer{contract: contract}}, nil
 22027  }
 22028  
 22029  // NewPauserRoleRenounceTargetCaller creates a new read-only instance of PauserRoleRenounceTarget, bound to a specific deployed contract.
 22030  func NewPauserRoleRenounceTargetCaller(address common.Address, caller bind.ContractCaller) (*PauserRoleRenounceTargetCaller, error) {
 22031  	contract, err := bindPauserRoleRenounceTarget(address, caller, nil, nil)
 22032  	if err != nil {
 22033  		return nil, err
 22034  	}
 22035  	return &PauserRoleRenounceTargetCaller{contract: contract}, nil
 22036  }
 22037  
 22038  // NewPauserRoleRenounceTargetTransactor creates a new write-only instance of PauserRoleRenounceTarget, bound to a specific deployed contract.
 22039  func NewPauserRoleRenounceTargetTransactor(address common.Address, transactor bind.ContractTransactor) (*PauserRoleRenounceTargetTransactor, error) {
 22040  	contract, err := bindPauserRoleRenounceTarget(address, nil, transactor, nil)
 22041  	if err != nil {
 22042  		return nil, err
 22043  	}
 22044  	return &PauserRoleRenounceTargetTransactor{contract: contract}, nil
 22045  }
 22046  
 22047  // NewPauserRoleRenounceTargetFilterer creates a new log filterer instance of PauserRoleRenounceTarget, bound to a specific deployed contract.
 22048  func NewPauserRoleRenounceTargetFilterer(address common.Address, filterer bind.ContractFilterer) (*PauserRoleRenounceTargetFilterer, error) {
 22049  	contract, err := bindPauserRoleRenounceTarget(address, nil, nil, filterer)
 22050  	if err != nil {
 22051  		return nil, err
 22052  	}
 22053  	return &PauserRoleRenounceTargetFilterer{contract: contract}, nil
 22054  }
 22055  
 22056  // bindPauserRoleRenounceTarget binds a generic wrapper to an already deployed contract.
 22057  func bindPauserRoleRenounceTarget(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22058  	parsed, err := abi.JSON(strings.NewReader(PauserRoleRenounceTargetABI))
 22059  	if err != nil {
 22060  		return nil, err
 22061  	}
 22062  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 22063  }
 22064  
 22065  // Call invokes the (constant) contract method with params as input values and
 22066  // sets the output to result. The result type might be a single field for simple
 22067  // returns, a slice of interfaces for anonymous returns and a struct for named
 22068  // returns.
 22069  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22070  	return _PauserRoleRenounceTarget.Contract.PauserRoleRenounceTargetCaller.contract.Call(opts, result, method, params...)
 22071  }
 22072  
 22073  // Transfer initiates a plain transaction to move funds to the contract, calling
 22074  // its default method if one is available.
 22075  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22076  	return _PauserRoleRenounceTarget.Contract.PauserRoleRenounceTargetTransactor.contract.Transfer(opts)
 22077  }
 22078  
 22079  // Transact invokes the (paid) contract method with params as input values.
 22080  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22081  	return _PauserRoleRenounceTarget.Contract.PauserRoleRenounceTargetTransactor.contract.Transact(opts, method, params...)
 22082  }
 22083  
 22084  // Call invokes the (constant) contract method with params as input values and
 22085  // sets the output to result. The result type might be a single field for simple
 22086  // returns, a slice of interfaces for anonymous returns and a struct for named
 22087  // returns.
 22088  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22089  	return _PauserRoleRenounceTarget.Contract.contract.Call(opts, result, method, params...)
 22090  }
 22091  
 22092  // Transfer initiates a plain transaction to move funds to the contract, calling
 22093  // its default method if one is available.
 22094  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22095  	return _PauserRoleRenounceTarget.Contract.contract.Transfer(opts)
 22096  }
 22097  
 22098  // Transact invokes the (paid) contract method with params as input values.
 22099  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22100  	return _PauserRoleRenounceTarget.Contract.contract.Transact(opts, method, params...)
 22101  }
 22102  
 22103  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 22104  //
 22105  // Solidity: function renouncePauser() returns()
 22106  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetTransactor) RenouncePauser(opts *bind.TransactOpts) (*types.Transaction, error) {
 22107  	return _PauserRoleRenounceTarget.contract.Transact(opts, "renouncePauser")
 22108  }
 22109  
 22110  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 22111  //
 22112  // Solidity: function renouncePauser() returns()
 22113  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetSession) RenouncePauser() (*types.Transaction, error) {
 22114  	return _PauserRoleRenounceTarget.Contract.RenouncePauser(&_PauserRoleRenounceTarget.TransactOpts)
 22115  }
 22116  
 22117  // RenouncePauser is a paid mutator transaction binding the contract method 0x6ef8d66d.
 22118  //
 22119  // Solidity: function renouncePauser() returns()
 22120  func (_PauserRoleRenounceTarget *PauserRoleRenounceTargetTransactorSession) RenouncePauser() (*types.Transaction, error) {
 22121  	return _PauserRoleRenounceTarget.Contract.RenouncePauser(&_PauserRoleRenounceTarget.TransactOpts)
 22122  }
 22123  
 22124  // PowerTONIABI is the input ABI used to generate the binding from.
 22125  const PowerTONIABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"endRound\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onDeposit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onWithdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"powerOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"roundDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalDeposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"round\",\"type\":\"uint256\"}],\"name\":\"winnerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 22126  
 22127  // PowerTONIFuncSigs maps the 4-byte function signature to its string representation.
 22128  var PowerTONIFuncSigs = map[string]string{
 22129  	"8a19c8bc": "currentRound()",
 22130  	"749aa2d9": "endRound()",
 22131  	"e1c7392a": "init()",
 22132  	"412c6d50": "onDeposit(address,address,uint256)",
 22133  	"f850ffaa": "onWithdraw(address,address,uint256)",
 22134  	"1ac84690": "powerOf(address)",
 22135  	"f7cb789a": "roundDuration()",
 22136  	"6fb7f558": "seigManager()",
 22137  	"be9a6555": "start()",
 22138  	"7d882097": "totalDeposits()",
 22139  	"8cb5d700": "winnerOf(uint256)",
 22140  	"8d62d949": "wton()",
 22141  }
 22142  
 22143  // PowerTONI is an auto generated Go binding around an Ethereum contract.
 22144  type PowerTONI struct {
 22145  	PowerTONICaller     // Read-only binding to the contract
 22146  	PowerTONITransactor // Write-only binding to the contract
 22147  	PowerTONIFilterer   // Log filterer for contract events
 22148  }
 22149  
 22150  // PowerTONICaller is an auto generated read-only Go binding around an Ethereum contract.
 22151  type PowerTONICaller struct {
 22152  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22153  }
 22154  
 22155  // PowerTONITransactor is an auto generated write-only Go binding around an Ethereum contract.
 22156  type PowerTONITransactor struct {
 22157  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22158  }
 22159  
 22160  // PowerTONIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 22161  type PowerTONIFilterer struct {
 22162  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22163  }
 22164  
 22165  // PowerTONISession is an auto generated Go binding around an Ethereum contract,
 22166  // with pre-set call and transact options.
 22167  type PowerTONISession struct {
 22168  	Contract     *PowerTONI        // Generic contract binding to set the session for
 22169  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 22170  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 22171  }
 22172  
 22173  // PowerTONICallerSession is an auto generated read-only Go binding around an Ethereum contract,
 22174  // with pre-set call options.
 22175  type PowerTONICallerSession struct {
 22176  	Contract *PowerTONICaller // Generic contract caller binding to set the session for
 22177  	CallOpts bind.CallOpts    // Call options to use throughout this session
 22178  }
 22179  
 22180  // PowerTONITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 22181  // with pre-set transact options.
 22182  type PowerTONITransactorSession struct {
 22183  	Contract     *PowerTONITransactor // Generic contract transactor binding to set the session for
 22184  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
 22185  }
 22186  
 22187  // PowerTONIRaw is an auto generated low-level Go binding around an Ethereum contract.
 22188  type PowerTONIRaw struct {
 22189  	Contract *PowerTONI // Generic contract binding to access the raw methods on
 22190  }
 22191  
 22192  // PowerTONICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 22193  type PowerTONICallerRaw struct {
 22194  	Contract *PowerTONICaller // Generic read-only contract binding to access the raw methods on
 22195  }
 22196  
 22197  // PowerTONITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 22198  type PowerTONITransactorRaw struct {
 22199  	Contract *PowerTONITransactor // Generic write-only contract binding to access the raw methods on
 22200  }
 22201  
 22202  // NewPowerTONI creates a new instance of PowerTONI, bound to a specific deployed contract.
 22203  func NewPowerTONI(address common.Address, backend bind.ContractBackend) (*PowerTONI, error) {
 22204  	contract, err := bindPowerTONI(address, backend, backend, backend)
 22205  	if err != nil {
 22206  		return nil, err
 22207  	}
 22208  	return &PowerTONI{PowerTONICaller: PowerTONICaller{contract: contract}, PowerTONITransactor: PowerTONITransactor{contract: contract}, PowerTONIFilterer: PowerTONIFilterer{contract: contract}}, nil
 22209  }
 22210  
 22211  // NewPowerTONICaller creates a new read-only instance of PowerTONI, bound to a specific deployed contract.
 22212  func NewPowerTONICaller(address common.Address, caller bind.ContractCaller) (*PowerTONICaller, error) {
 22213  	contract, err := bindPowerTONI(address, caller, nil, nil)
 22214  	if err != nil {
 22215  		return nil, err
 22216  	}
 22217  	return &PowerTONICaller{contract: contract}, nil
 22218  }
 22219  
 22220  // NewPowerTONITransactor creates a new write-only instance of PowerTONI, bound to a specific deployed contract.
 22221  func NewPowerTONITransactor(address common.Address, transactor bind.ContractTransactor) (*PowerTONITransactor, error) {
 22222  	contract, err := bindPowerTONI(address, nil, transactor, nil)
 22223  	if err != nil {
 22224  		return nil, err
 22225  	}
 22226  	return &PowerTONITransactor{contract: contract}, nil
 22227  }
 22228  
 22229  // NewPowerTONIFilterer creates a new log filterer instance of PowerTONI, bound to a specific deployed contract.
 22230  func NewPowerTONIFilterer(address common.Address, filterer bind.ContractFilterer) (*PowerTONIFilterer, error) {
 22231  	contract, err := bindPowerTONI(address, nil, nil, filterer)
 22232  	if err != nil {
 22233  		return nil, err
 22234  	}
 22235  	return &PowerTONIFilterer{contract: contract}, nil
 22236  }
 22237  
 22238  // bindPowerTONI binds a generic wrapper to an already deployed contract.
 22239  func bindPowerTONI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22240  	parsed, err := abi.JSON(strings.NewReader(PowerTONIABI))
 22241  	if err != nil {
 22242  		return nil, err
 22243  	}
 22244  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 22245  }
 22246  
 22247  // Call invokes the (constant) contract method with params as input values and
 22248  // sets the output to result. The result type might be a single field for simple
 22249  // returns, a slice of interfaces for anonymous returns and a struct for named
 22250  // returns.
 22251  func (_PowerTONI *PowerTONIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22252  	return _PowerTONI.Contract.PowerTONICaller.contract.Call(opts, result, method, params...)
 22253  }
 22254  
 22255  // Transfer initiates a plain transaction to move funds to the contract, calling
 22256  // its default method if one is available.
 22257  func (_PowerTONI *PowerTONIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22258  	return _PowerTONI.Contract.PowerTONITransactor.contract.Transfer(opts)
 22259  }
 22260  
 22261  // Transact invokes the (paid) contract method with params as input values.
 22262  func (_PowerTONI *PowerTONIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22263  	return _PowerTONI.Contract.PowerTONITransactor.contract.Transact(opts, method, params...)
 22264  }
 22265  
 22266  // Call invokes the (constant) contract method with params as input values and
 22267  // sets the output to result. The result type might be a single field for simple
 22268  // returns, a slice of interfaces for anonymous returns and a struct for named
 22269  // returns.
 22270  func (_PowerTONI *PowerTONICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22271  	return _PowerTONI.Contract.contract.Call(opts, result, method, params...)
 22272  }
 22273  
 22274  // Transfer initiates a plain transaction to move funds to the contract, calling
 22275  // its default method if one is available.
 22276  func (_PowerTONI *PowerTONITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22277  	return _PowerTONI.Contract.contract.Transfer(opts)
 22278  }
 22279  
 22280  // Transact invokes the (paid) contract method with params as input values.
 22281  func (_PowerTONI *PowerTONITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22282  	return _PowerTONI.Contract.contract.Transact(opts, method, params...)
 22283  }
 22284  
 22285  // CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc.
 22286  //
 22287  // Solidity: function currentRound() constant returns(uint256)
 22288  func (_PowerTONI *PowerTONICaller) CurrentRound(opts *bind.CallOpts) (*big.Int, error) {
 22289  	var (
 22290  		ret0 = new(*big.Int)
 22291  	)
 22292  	out := ret0
 22293  	err := _PowerTONI.contract.Call(opts, out, "currentRound")
 22294  	return *ret0, err
 22295  }
 22296  
 22297  // CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc.
 22298  //
 22299  // Solidity: function currentRound() constant returns(uint256)
 22300  func (_PowerTONI *PowerTONISession) CurrentRound() (*big.Int, error) {
 22301  	return _PowerTONI.Contract.CurrentRound(&_PowerTONI.CallOpts)
 22302  }
 22303  
 22304  // CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc.
 22305  //
 22306  // Solidity: function currentRound() constant returns(uint256)
 22307  func (_PowerTONI *PowerTONICallerSession) CurrentRound() (*big.Int, error) {
 22308  	return _PowerTONI.Contract.CurrentRound(&_PowerTONI.CallOpts)
 22309  }
 22310  
 22311  // PowerOf is a free data retrieval call binding the contract method 0x1ac84690.
 22312  //
 22313  // Solidity: function powerOf(address account) constant returns(uint256)
 22314  func (_PowerTONI *PowerTONICaller) PowerOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 22315  	var (
 22316  		ret0 = new(*big.Int)
 22317  	)
 22318  	out := ret0
 22319  	err := _PowerTONI.contract.Call(opts, out, "powerOf", account)
 22320  	return *ret0, err
 22321  }
 22322  
 22323  // PowerOf is a free data retrieval call binding the contract method 0x1ac84690.
 22324  //
 22325  // Solidity: function powerOf(address account) constant returns(uint256)
 22326  func (_PowerTONI *PowerTONISession) PowerOf(account common.Address) (*big.Int, error) {
 22327  	return _PowerTONI.Contract.PowerOf(&_PowerTONI.CallOpts, account)
 22328  }
 22329  
 22330  // PowerOf is a free data retrieval call binding the contract method 0x1ac84690.
 22331  //
 22332  // Solidity: function powerOf(address account) constant returns(uint256)
 22333  func (_PowerTONI *PowerTONICallerSession) PowerOf(account common.Address) (*big.Int, error) {
 22334  	return _PowerTONI.Contract.PowerOf(&_PowerTONI.CallOpts, account)
 22335  }
 22336  
 22337  // RoundDuration is a free data retrieval call binding the contract method 0xf7cb789a.
 22338  //
 22339  // Solidity: function roundDuration() constant returns(uint256)
 22340  func (_PowerTONI *PowerTONICaller) RoundDuration(opts *bind.CallOpts) (*big.Int, error) {
 22341  	var (
 22342  		ret0 = new(*big.Int)
 22343  	)
 22344  	out := ret0
 22345  	err := _PowerTONI.contract.Call(opts, out, "roundDuration")
 22346  	return *ret0, err
 22347  }
 22348  
 22349  // RoundDuration is a free data retrieval call binding the contract method 0xf7cb789a.
 22350  //
 22351  // Solidity: function roundDuration() constant returns(uint256)
 22352  func (_PowerTONI *PowerTONISession) RoundDuration() (*big.Int, error) {
 22353  	return _PowerTONI.Contract.RoundDuration(&_PowerTONI.CallOpts)
 22354  }
 22355  
 22356  // RoundDuration is a free data retrieval call binding the contract method 0xf7cb789a.
 22357  //
 22358  // Solidity: function roundDuration() constant returns(uint256)
 22359  func (_PowerTONI *PowerTONICallerSession) RoundDuration() (*big.Int, error) {
 22360  	return _PowerTONI.Contract.RoundDuration(&_PowerTONI.CallOpts)
 22361  }
 22362  
 22363  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 22364  //
 22365  // Solidity: function seigManager() constant returns(address)
 22366  func (_PowerTONI *PowerTONICaller) SeigManager(opts *bind.CallOpts) (common.Address, error) {
 22367  	var (
 22368  		ret0 = new(common.Address)
 22369  	)
 22370  	out := ret0
 22371  	err := _PowerTONI.contract.Call(opts, out, "seigManager")
 22372  	return *ret0, err
 22373  }
 22374  
 22375  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 22376  //
 22377  // Solidity: function seigManager() constant returns(address)
 22378  func (_PowerTONI *PowerTONISession) SeigManager() (common.Address, error) {
 22379  	return _PowerTONI.Contract.SeigManager(&_PowerTONI.CallOpts)
 22380  }
 22381  
 22382  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 22383  //
 22384  // Solidity: function seigManager() constant returns(address)
 22385  func (_PowerTONI *PowerTONICallerSession) SeigManager() (common.Address, error) {
 22386  	return _PowerTONI.Contract.SeigManager(&_PowerTONI.CallOpts)
 22387  }
 22388  
 22389  // TotalDeposits is a free data retrieval call binding the contract method 0x7d882097.
 22390  //
 22391  // Solidity: function totalDeposits() constant returns(uint256)
 22392  func (_PowerTONI *PowerTONICaller) TotalDeposits(opts *bind.CallOpts) (*big.Int, error) {
 22393  	var (
 22394  		ret0 = new(*big.Int)
 22395  	)
 22396  	out := ret0
 22397  	err := _PowerTONI.contract.Call(opts, out, "totalDeposits")
 22398  	return *ret0, err
 22399  }
 22400  
 22401  // TotalDeposits is a free data retrieval call binding the contract method 0x7d882097.
 22402  //
 22403  // Solidity: function totalDeposits() constant returns(uint256)
 22404  func (_PowerTONI *PowerTONISession) TotalDeposits() (*big.Int, error) {
 22405  	return _PowerTONI.Contract.TotalDeposits(&_PowerTONI.CallOpts)
 22406  }
 22407  
 22408  // TotalDeposits is a free data retrieval call binding the contract method 0x7d882097.
 22409  //
 22410  // Solidity: function totalDeposits() constant returns(uint256)
 22411  func (_PowerTONI *PowerTONICallerSession) TotalDeposits() (*big.Int, error) {
 22412  	return _PowerTONI.Contract.TotalDeposits(&_PowerTONI.CallOpts)
 22413  }
 22414  
 22415  // WinnerOf is a free data retrieval call binding the contract method 0x8cb5d700.
 22416  //
 22417  // Solidity: function winnerOf(uint256 round) constant returns(address)
 22418  func (_PowerTONI *PowerTONICaller) WinnerOf(opts *bind.CallOpts, round *big.Int) (common.Address, error) {
 22419  	var (
 22420  		ret0 = new(common.Address)
 22421  	)
 22422  	out := ret0
 22423  	err := _PowerTONI.contract.Call(opts, out, "winnerOf", round)
 22424  	return *ret0, err
 22425  }
 22426  
 22427  // WinnerOf is a free data retrieval call binding the contract method 0x8cb5d700.
 22428  //
 22429  // Solidity: function winnerOf(uint256 round) constant returns(address)
 22430  func (_PowerTONI *PowerTONISession) WinnerOf(round *big.Int) (common.Address, error) {
 22431  	return _PowerTONI.Contract.WinnerOf(&_PowerTONI.CallOpts, round)
 22432  }
 22433  
 22434  // WinnerOf is a free data retrieval call binding the contract method 0x8cb5d700.
 22435  //
 22436  // Solidity: function winnerOf(uint256 round) constant returns(address)
 22437  func (_PowerTONI *PowerTONICallerSession) WinnerOf(round *big.Int) (common.Address, error) {
 22438  	return _PowerTONI.Contract.WinnerOf(&_PowerTONI.CallOpts, round)
 22439  }
 22440  
 22441  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 22442  //
 22443  // Solidity: function wton() constant returns(address)
 22444  func (_PowerTONI *PowerTONICaller) Wton(opts *bind.CallOpts) (common.Address, error) {
 22445  	var (
 22446  		ret0 = new(common.Address)
 22447  	)
 22448  	out := ret0
 22449  	err := _PowerTONI.contract.Call(opts, out, "wton")
 22450  	return *ret0, err
 22451  }
 22452  
 22453  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 22454  //
 22455  // Solidity: function wton() constant returns(address)
 22456  func (_PowerTONI *PowerTONISession) Wton() (common.Address, error) {
 22457  	return _PowerTONI.Contract.Wton(&_PowerTONI.CallOpts)
 22458  }
 22459  
 22460  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 22461  //
 22462  // Solidity: function wton() constant returns(address)
 22463  func (_PowerTONI *PowerTONICallerSession) Wton() (common.Address, error) {
 22464  	return _PowerTONI.Contract.Wton(&_PowerTONI.CallOpts)
 22465  }
 22466  
 22467  // EndRound is a paid mutator transaction binding the contract method 0x749aa2d9.
 22468  //
 22469  // Solidity: function endRound() returns()
 22470  func (_PowerTONI *PowerTONITransactor) EndRound(opts *bind.TransactOpts) (*types.Transaction, error) {
 22471  	return _PowerTONI.contract.Transact(opts, "endRound")
 22472  }
 22473  
 22474  // EndRound is a paid mutator transaction binding the contract method 0x749aa2d9.
 22475  //
 22476  // Solidity: function endRound() returns()
 22477  func (_PowerTONI *PowerTONISession) EndRound() (*types.Transaction, error) {
 22478  	return _PowerTONI.Contract.EndRound(&_PowerTONI.TransactOpts)
 22479  }
 22480  
 22481  // EndRound is a paid mutator transaction binding the contract method 0x749aa2d9.
 22482  //
 22483  // Solidity: function endRound() returns()
 22484  func (_PowerTONI *PowerTONITransactorSession) EndRound() (*types.Transaction, error) {
 22485  	return _PowerTONI.Contract.EndRound(&_PowerTONI.TransactOpts)
 22486  }
 22487  
 22488  // Init is a paid mutator transaction binding the contract method 0xe1c7392a.
 22489  //
 22490  // Solidity: function init() returns()
 22491  func (_PowerTONI *PowerTONITransactor) Init(opts *bind.TransactOpts) (*types.Transaction, error) {
 22492  	return _PowerTONI.contract.Transact(opts, "init")
 22493  }
 22494  
 22495  // Init is a paid mutator transaction binding the contract method 0xe1c7392a.
 22496  //
 22497  // Solidity: function init() returns()
 22498  func (_PowerTONI *PowerTONISession) Init() (*types.Transaction, error) {
 22499  	return _PowerTONI.Contract.Init(&_PowerTONI.TransactOpts)
 22500  }
 22501  
 22502  // Init is a paid mutator transaction binding the contract method 0xe1c7392a.
 22503  //
 22504  // Solidity: function init() returns()
 22505  func (_PowerTONI *PowerTONITransactorSession) Init() (*types.Transaction, error) {
 22506  	return _PowerTONI.Contract.Init(&_PowerTONI.TransactOpts)
 22507  }
 22508  
 22509  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 22510  //
 22511  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns()
 22512  func (_PowerTONI *PowerTONITransactor) OnDeposit(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 22513  	return _PowerTONI.contract.Transact(opts, "onDeposit", rootchain, account, amount)
 22514  }
 22515  
 22516  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 22517  //
 22518  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns()
 22519  func (_PowerTONI *PowerTONISession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 22520  	return _PowerTONI.Contract.OnDeposit(&_PowerTONI.TransactOpts, rootchain, account, amount)
 22521  }
 22522  
 22523  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 22524  //
 22525  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns()
 22526  func (_PowerTONI *PowerTONITransactorSession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 22527  	return _PowerTONI.Contract.OnDeposit(&_PowerTONI.TransactOpts, rootchain, account, amount)
 22528  }
 22529  
 22530  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 22531  //
 22532  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns()
 22533  func (_PowerTONI *PowerTONITransactor) OnWithdraw(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 22534  	return _PowerTONI.contract.Transact(opts, "onWithdraw", rootchain, account, amount)
 22535  }
 22536  
 22537  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 22538  //
 22539  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns()
 22540  func (_PowerTONI *PowerTONISession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 22541  	return _PowerTONI.Contract.OnWithdraw(&_PowerTONI.TransactOpts, rootchain, account, amount)
 22542  }
 22543  
 22544  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 22545  //
 22546  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns()
 22547  func (_PowerTONI *PowerTONITransactorSession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 22548  	return _PowerTONI.Contract.OnWithdraw(&_PowerTONI.TransactOpts, rootchain, account, amount)
 22549  }
 22550  
 22551  // Start is a paid mutator transaction binding the contract method 0xbe9a6555.
 22552  //
 22553  // Solidity: function start() returns()
 22554  func (_PowerTONI *PowerTONITransactor) Start(opts *bind.TransactOpts) (*types.Transaction, error) {
 22555  	return _PowerTONI.contract.Transact(opts, "start")
 22556  }
 22557  
 22558  // Start is a paid mutator transaction binding the contract method 0xbe9a6555.
 22559  //
 22560  // Solidity: function start() returns()
 22561  func (_PowerTONI *PowerTONISession) Start() (*types.Transaction, error) {
 22562  	return _PowerTONI.Contract.Start(&_PowerTONI.TransactOpts)
 22563  }
 22564  
 22565  // Start is a paid mutator transaction binding the contract method 0xbe9a6555.
 22566  //
 22567  // Solidity: function start() returns()
 22568  func (_PowerTONI *PowerTONITransactorSession) Start() (*types.Transaction, error) {
 22569  	return _PowerTONI.Contract.Start(&_PowerTONI.TransactOpts)
 22570  }
 22571  
 22572  // RolesABI is the input ABI used to generate the binding from.
 22573  const RolesABI = "[]"
 22574  
 22575  // RolesBin is the compiled bytecode used for deploying new contracts.
 22576  var RolesBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158208b71254ffd63ec0cdf069ebd57900b2eed3f2d5481f989be20e2f19c163e323b64736f6c634300050c0032"
 22577  
 22578  // DeployRoles deploys a new Ethereum contract, binding an instance of Roles to it.
 22579  func DeployRoles(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Roles, error) {
 22580  	parsed, err := abi.JSON(strings.NewReader(RolesABI))
 22581  	if err != nil {
 22582  		return common.Address{}, nil, nil, err
 22583  	}
 22584  
 22585  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RolesBin), backend)
 22586  	if err != nil {
 22587  		return common.Address{}, nil, nil, err
 22588  	}
 22589  	return address, tx, &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
 22590  }
 22591  
 22592  // Roles is an auto generated Go binding around an Ethereum contract.
 22593  type Roles struct {
 22594  	RolesCaller     // Read-only binding to the contract
 22595  	RolesTransactor // Write-only binding to the contract
 22596  	RolesFilterer   // Log filterer for contract events
 22597  }
 22598  
 22599  // RolesCaller is an auto generated read-only Go binding around an Ethereum contract.
 22600  type RolesCaller struct {
 22601  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22602  }
 22603  
 22604  // RolesTransactor is an auto generated write-only Go binding around an Ethereum contract.
 22605  type RolesTransactor struct {
 22606  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22607  }
 22608  
 22609  // RolesFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 22610  type RolesFilterer struct {
 22611  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22612  }
 22613  
 22614  // RolesSession is an auto generated Go binding around an Ethereum contract,
 22615  // with pre-set call and transact options.
 22616  type RolesSession struct {
 22617  	Contract     *Roles            // Generic contract binding to set the session for
 22618  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 22619  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 22620  }
 22621  
 22622  // RolesCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 22623  // with pre-set call options.
 22624  type RolesCallerSession struct {
 22625  	Contract *RolesCaller  // Generic contract caller binding to set the session for
 22626  	CallOpts bind.CallOpts // Call options to use throughout this session
 22627  }
 22628  
 22629  // RolesTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 22630  // with pre-set transact options.
 22631  type RolesTransactorSession struct {
 22632  	Contract     *RolesTransactor  // Generic contract transactor binding to set the session for
 22633  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 22634  }
 22635  
 22636  // RolesRaw is an auto generated low-level Go binding around an Ethereum contract.
 22637  type RolesRaw struct {
 22638  	Contract *Roles // Generic contract binding to access the raw methods on
 22639  }
 22640  
 22641  // RolesCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 22642  type RolesCallerRaw struct {
 22643  	Contract *RolesCaller // Generic read-only contract binding to access the raw methods on
 22644  }
 22645  
 22646  // RolesTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 22647  type RolesTransactorRaw struct {
 22648  	Contract *RolesTransactor // Generic write-only contract binding to access the raw methods on
 22649  }
 22650  
 22651  // NewRoles creates a new instance of Roles, bound to a specific deployed contract.
 22652  func NewRoles(address common.Address, backend bind.ContractBackend) (*Roles, error) {
 22653  	contract, err := bindRoles(address, backend, backend, backend)
 22654  	if err != nil {
 22655  		return nil, err
 22656  	}
 22657  	return &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
 22658  }
 22659  
 22660  // NewRolesCaller creates a new read-only instance of Roles, bound to a specific deployed contract.
 22661  func NewRolesCaller(address common.Address, caller bind.ContractCaller) (*RolesCaller, error) {
 22662  	contract, err := bindRoles(address, caller, nil, nil)
 22663  	if err != nil {
 22664  		return nil, err
 22665  	}
 22666  	return &RolesCaller{contract: contract}, nil
 22667  }
 22668  
 22669  // NewRolesTransactor creates a new write-only instance of Roles, bound to a specific deployed contract.
 22670  func NewRolesTransactor(address common.Address, transactor bind.ContractTransactor) (*RolesTransactor, error) {
 22671  	contract, err := bindRoles(address, nil, transactor, nil)
 22672  	if err != nil {
 22673  		return nil, err
 22674  	}
 22675  	return &RolesTransactor{contract: contract}, nil
 22676  }
 22677  
 22678  // NewRolesFilterer creates a new log filterer instance of Roles, bound to a specific deployed contract.
 22679  func NewRolesFilterer(address common.Address, filterer bind.ContractFilterer) (*RolesFilterer, error) {
 22680  	contract, err := bindRoles(address, nil, nil, filterer)
 22681  	if err != nil {
 22682  		return nil, err
 22683  	}
 22684  	return &RolesFilterer{contract: contract}, nil
 22685  }
 22686  
 22687  // bindRoles binds a generic wrapper to an already deployed contract.
 22688  func bindRoles(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22689  	parsed, err := abi.JSON(strings.NewReader(RolesABI))
 22690  	if err != nil {
 22691  		return nil, err
 22692  	}
 22693  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 22694  }
 22695  
 22696  // Call invokes the (constant) contract method with params as input values and
 22697  // sets the output to result. The result type might be a single field for simple
 22698  // returns, a slice of interfaces for anonymous returns and a struct for named
 22699  // returns.
 22700  func (_Roles *RolesRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22701  	return _Roles.Contract.RolesCaller.contract.Call(opts, result, method, params...)
 22702  }
 22703  
 22704  // Transfer initiates a plain transaction to move funds to the contract, calling
 22705  // its default method if one is available.
 22706  func (_Roles *RolesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22707  	return _Roles.Contract.RolesTransactor.contract.Transfer(opts)
 22708  }
 22709  
 22710  // Transact invokes the (paid) contract method with params as input values.
 22711  func (_Roles *RolesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22712  	return _Roles.Contract.RolesTransactor.contract.Transact(opts, method, params...)
 22713  }
 22714  
 22715  // Call invokes the (constant) contract method with params as input values and
 22716  // sets the output to result. The result type might be a single field for simple
 22717  // returns, a slice of interfaces for anonymous returns and a struct for named
 22718  // returns.
 22719  func (_Roles *RolesCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22720  	return _Roles.Contract.contract.Call(opts, result, method, params...)
 22721  }
 22722  
 22723  // Transfer initiates a plain transaction to move funds to the contract, calling
 22724  // its default method if one is available.
 22725  func (_Roles *RolesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22726  	return _Roles.Contract.contract.Transfer(opts)
 22727  }
 22728  
 22729  // Transact invokes the (paid) contract method with params as input values.
 22730  func (_Roles *RolesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22731  	return _Roles.Contract.contract.Transact(opts, method, params...)
 22732  }
 22733  
 22734  // RootChainIABI is the input ABI used to generate the binding from.
 22735  const RootChainIABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"currentFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRootChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"}],\"name\":\"lastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 22736  
 22737  // RootChainIFuncSigs maps the 4-byte function signature to its string representation.
 22738  var RootChainIFuncSigs = map[string]string{
 22739  	"183d2d1c": "currentFork()",
 22740  	"420bb4b8": "isRootChain()",
 22741  	"11e4c914": "lastEpoch(uint256)",
 22742  	"570ca735": "operator()",
 22743  }
 22744  
 22745  // RootChainI is an auto generated Go binding around an Ethereum contract.
 22746  type RootChainI struct {
 22747  	RootChainICaller     // Read-only binding to the contract
 22748  	RootChainITransactor // Write-only binding to the contract
 22749  	RootChainIFilterer   // Log filterer for contract events
 22750  }
 22751  
 22752  // RootChainICaller is an auto generated read-only Go binding around an Ethereum contract.
 22753  type RootChainICaller struct {
 22754  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22755  }
 22756  
 22757  // RootChainITransactor is an auto generated write-only Go binding around an Ethereum contract.
 22758  type RootChainITransactor struct {
 22759  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22760  }
 22761  
 22762  // RootChainIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 22763  type RootChainIFilterer struct {
 22764  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22765  }
 22766  
 22767  // RootChainISession is an auto generated Go binding around an Ethereum contract,
 22768  // with pre-set call and transact options.
 22769  type RootChainISession struct {
 22770  	Contract     *RootChainI       // Generic contract binding to set the session for
 22771  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 22772  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 22773  }
 22774  
 22775  // RootChainICallerSession is an auto generated read-only Go binding around an Ethereum contract,
 22776  // with pre-set call options.
 22777  type RootChainICallerSession struct {
 22778  	Contract *RootChainICaller // Generic contract caller binding to set the session for
 22779  	CallOpts bind.CallOpts     // Call options to use throughout this session
 22780  }
 22781  
 22782  // RootChainITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 22783  // with pre-set transact options.
 22784  type RootChainITransactorSession struct {
 22785  	Contract     *RootChainITransactor // Generic contract transactor binding to set the session for
 22786  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 22787  }
 22788  
 22789  // RootChainIRaw is an auto generated low-level Go binding around an Ethereum contract.
 22790  type RootChainIRaw struct {
 22791  	Contract *RootChainI // Generic contract binding to access the raw methods on
 22792  }
 22793  
 22794  // RootChainICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 22795  type RootChainICallerRaw struct {
 22796  	Contract *RootChainICaller // Generic read-only contract binding to access the raw methods on
 22797  }
 22798  
 22799  // RootChainITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 22800  type RootChainITransactorRaw struct {
 22801  	Contract *RootChainITransactor // Generic write-only contract binding to access the raw methods on
 22802  }
 22803  
 22804  // NewRootChainI creates a new instance of RootChainI, bound to a specific deployed contract.
 22805  func NewRootChainI(address common.Address, backend bind.ContractBackend) (*RootChainI, error) {
 22806  	contract, err := bindRootChainI(address, backend, backend, backend)
 22807  	if err != nil {
 22808  		return nil, err
 22809  	}
 22810  	return &RootChainI{RootChainICaller: RootChainICaller{contract: contract}, RootChainITransactor: RootChainITransactor{contract: contract}, RootChainIFilterer: RootChainIFilterer{contract: contract}}, nil
 22811  }
 22812  
 22813  // NewRootChainICaller creates a new read-only instance of RootChainI, bound to a specific deployed contract.
 22814  func NewRootChainICaller(address common.Address, caller bind.ContractCaller) (*RootChainICaller, error) {
 22815  	contract, err := bindRootChainI(address, caller, nil, nil)
 22816  	if err != nil {
 22817  		return nil, err
 22818  	}
 22819  	return &RootChainICaller{contract: contract}, nil
 22820  }
 22821  
 22822  // NewRootChainITransactor creates a new write-only instance of RootChainI, bound to a specific deployed contract.
 22823  func NewRootChainITransactor(address common.Address, transactor bind.ContractTransactor) (*RootChainITransactor, error) {
 22824  	contract, err := bindRootChainI(address, nil, transactor, nil)
 22825  	if err != nil {
 22826  		return nil, err
 22827  	}
 22828  	return &RootChainITransactor{contract: contract}, nil
 22829  }
 22830  
 22831  // NewRootChainIFilterer creates a new log filterer instance of RootChainI, bound to a specific deployed contract.
 22832  func NewRootChainIFilterer(address common.Address, filterer bind.ContractFilterer) (*RootChainIFilterer, error) {
 22833  	contract, err := bindRootChainI(address, nil, nil, filterer)
 22834  	if err != nil {
 22835  		return nil, err
 22836  	}
 22837  	return &RootChainIFilterer{contract: contract}, nil
 22838  }
 22839  
 22840  // bindRootChainI binds a generic wrapper to an already deployed contract.
 22841  func bindRootChainI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22842  	parsed, err := abi.JSON(strings.NewReader(RootChainIABI))
 22843  	if err != nil {
 22844  		return nil, err
 22845  	}
 22846  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 22847  }
 22848  
 22849  // Call invokes the (constant) contract method with params as input values and
 22850  // sets the output to result. The result type might be a single field for simple
 22851  // returns, a slice of interfaces for anonymous returns and a struct for named
 22852  // returns.
 22853  func (_RootChainI *RootChainIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22854  	return _RootChainI.Contract.RootChainICaller.contract.Call(opts, result, method, params...)
 22855  }
 22856  
 22857  // Transfer initiates a plain transaction to move funds to the contract, calling
 22858  // its default method if one is available.
 22859  func (_RootChainI *RootChainIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22860  	return _RootChainI.Contract.RootChainITransactor.contract.Transfer(opts)
 22861  }
 22862  
 22863  // Transact invokes the (paid) contract method with params as input values.
 22864  func (_RootChainI *RootChainIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22865  	return _RootChainI.Contract.RootChainITransactor.contract.Transact(opts, method, params...)
 22866  }
 22867  
 22868  // Call invokes the (constant) contract method with params as input values and
 22869  // sets the output to result. The result type might be a single field for simple
 22870  // returns, a slice of interfaces for anonymous returns and a struct for named
 22871  // returns.
 22872  func (_RootChainI *RootChainICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 22873  	return _RootChainI.Contract.contract.Call(opts, result, method, params...)
 22874  }
 22875  
 22876  // Transfer initiates a plain transaction to move funds to the contract, calling
 22877  // its default method if one is available.
 22878  func (_RootChainI *RootChainITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22879  	return _RootChainI.Contract.contract.Transfer(opts)
 22880  }
 22881  
 22882  // Transact invokes the (paid) contract method with params as input values.
 22883  func (_RootChainI *RootChainITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22884  	return _RootChainI.Contract.contract.Transact(opts, method, params...)
 22885  }
 22886  
 22887  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
 22888  //
 22889  // Solidity: function currentFork() constant returns(uint256)
 22890  func (_RootChainI *RootChainICaller) CurrentFork(opts *bind.CallOpts) (*big.Int, error) {
 22891  	var (
 22892  		ret0 = new(*big.Int)
 22893  	)
 22894  	out := ret0
 22895  	err := _RootChainI.contract.Call(opts, out, "currentFork")
 22896  	return *ret0, err
 22897  }
 22898  
 22899  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
 22900  //
 22901  // Solidity: function currentFork() constant returns(uint256)
 22902  func (_RootChainI *RootChainISession) CurrentFork() (*big.Int, error) {
 22903  	return _RootChainI.Contract.CurrentFork(&_RootChainI.CallOpts)
 22904  }
 22905  
 22906  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
 22907  //
 22908  // Solidity: function currentFork() constant returns(uint256)
 22909  func (_RootChainI *RootChainICallerSession) CurrentFork() (*big.Int, error) {
 22910  	return _RootChainI.Contract.CurrentFork(&_RootChainI.CallOpts)
 22911  }
 22912  
 22913  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
 22914  //
 22915  // Solidity: function isRootChain() constant returns(bool)
 22916  func (_RootChainI *RootChainICaller) IsRootChain(opts *bind.CallOpts) (bool, error) {
 22917  	var (
 22918  		ret0 = new(bool)
 22919  	)
 22920  	out := ret0
 22921  	err := _RootChainI.contract.Call(opts, out, "isRootChain")
 22922  	return *ret0, err
 22923  }
 22924  
 22925  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
 22926  //
 22927  // Solidity: function isRootChain() constant returns(bool)
 22928  func (_RootChainI *RootChainISession) IsRootChain() (bool, error) {
 22929  	return _RootChainI.Contract.IsRootChain(&_RootChainI.CallOpts)
 22930  }
 22931  
 22932  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
 22933  //
 22934  // Solidity: function isRootChain() constant returns(bool)
 22935  func (_RootChainI *RootChainICallerSession) IsRootChain() (bool, error) {
 22936  	return _RootChainI.Contract.IsRootChain(&_RootChainI.CallOpts)
 22937  }
 22938  
 22939  // LastEpoch is a free data retrieval call binding the contract method 0x11e4c914.
 22940  //
 22941  // Solidity: function lastEpoch(uint256 forkNumber) constant returns(uint256)
 22942  func (_RootChainI *RootChainICaller) LastEpoch(opts *bind.CallOpts, forkNumber *big.Int) (*big.Int, error) {
 22943  	var (
 22944  		ret0 = new(*big.Int)
 22945  	)
 22946  	out := ret0
 22947  	err := _RootChainI.contract.Call(opts, out, "lastEpoch", forkNumber)
 22948  	return *ret0, err
 22949  }
 22950  
 22951  // LastEpoch is a free data retrieval call binding the contract method 0x11e4c914.
 22952  //
 22953  // Solidity: function lastEpoch(uint256 forkNumber) constant returns(uint256)
 22954  func (_RootChainI *RootChainISession) LastEpoch(forkNumber *big.Int) (*big.Int, error) {
 22955  	return _RootChainI.Contract.LastEpoch(&_RootChainI.CallOpts, forkNumber)
 22956  }
 22957  
 22958  // LastEpoch is a free data retrieval call binding the contract method 0x11e4c914.
 22959  //
 22960  // Solidity: function lastEpoch(uint256 forkNumber) constant returns(uint256)
 22961  func (_RootChainI *RootChainICallerSession) LastEpoch(forkNumber *big.Int) (*big.Int, error) {
 22962  	return _RootChainI.Contract.LastEpoch(&_RootChainI.CallOpts, forkNumber)
 22963  }
 22964  
 22965  // Operator is a free data retrieval call binding the contract method 0x570ca735.
 22966  //
 22967  // Solidity: function operator() constant returns(address)
 22968  func (_RootChainI *RootChainICaller) Operator(opts *bind.CallOpts) (common.Address, error) {
 22969  	var (
 22970  		ret0 = new(common.Address)
 22971  	)
 22972  	out := ret0
 22973  	err := _RootChainI.contract.Call(opts, out, "operator")
 22974  	return *ret0, err
 22975  }
 22976  
 22977  // Operator is a free data retrieval call binding the contract method 0x570ca735.
 22978  //
 22979  // Solidity: function operator() constant returns(address)
 22980  func (_RootChainI *RootChainISession) Operator() (common.Address, error) {
 22981  	return _RootChainI.Contract.Operator(&_RootChainI.CallOpts)
 22982  }
 22983  
 22984  // Operator is a free data retrieval call binding the contract method 0x570ca735.
 22985  //
 22986  // Solidity: function operator() constant returns(address)
 22987  func (_RootChainI *RootChainICallerSession) Operator() (common.Address, error) {
 22988  	return _RootChainI.Contract.Operator(&_RootChainI.CallOpts)
 22989  }
 22990  
 22991  // RootChainRegistryIABI is the input ABI used to generate the binding from.
 22992  const RootChainRegistryIABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seigManager\",\"type\":\"address\"}],\"name\":\"deployCoinage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numRootChains\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seigManager\",\"type\":\"address\"}],\"name\":\"registerAndDeployCoinage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"rootchainByIndex\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"rootchains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"unregister\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
 22993  
 22994  // RootChainRegistryIFuncSigs maps the 4-byte function signature to its string representation.
 22995  var RootChainRegistryIFuncSigs = map[string]string{
 22996  	"85108604": "deployCoinage(address,address)",
 22997  	"b2b604d0": "numRootChains()",
 22998  	"4420e486": "register(address)",
 22999  	"bcb1a71e": "registerAndDeployCoinage(address,address)",
 23000  	"821f602c": "rootchainByIndex(uint256)",
 23001  	"02a15299": "rootchains(address)",
 23002  	"2ec2c246": "unregister(address)",
 23003  }
 23004  
 23005  // RootChainRegistryI is an auto generated Go binding around an Ethereum contract.
 23006  type RootChainRegistryI struct {
 23007  	RootChainRegistryICaller     // Read-only binding to the contract
 23008  	RootChainRegistryITransactor // Write-only binding to the contract
 23009  	RootChainRegistryIFilterer   // Log filterer for contract events
 23010  }
 23011  
 23012  // RootChainRegistryICaller is an auto generated read-only Go binding around an Ethereum contract.
 23013  type RootChainRegistryICaller struct {
 23014  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23015  }
 23016  
 23017  // RootChainRegistryITransactor is an auto generated write-only Go binding around an Ethereum contract.
 23018  type RootChainRegistryITransactor struct {
 23019  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23020  }
 23021  
 23022  // RootChainRegistryIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 23023  type RootChainRegistryIFilterer struct {
 23024  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23025  }
 23026  
 23027  // RootChainRegistryISession is an auto generated Go binding around an Ethereum contract,
 23028  // with pre-set call and transact options.
 23029  type RootChainRegistryISession struct {
 23030  	Contract     *RootChainRegistryI // Generic contract binding to set the session for
 23031  	CallOpts     bind.CallOpts       // Call options to use throughout this session
 23032  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 23033  }
 23034  
 23035  // RootChainRegistryICallerSession is an auto generated read-only Go binding around an Ethereum contract,
 23036  // with pre-set call options.
 23037  type RootChainRegistryICallerSession struct {
 23038  	Contract *RootChainRegistryICaller // Generic contract caller binding to set the session for
 23039  	CallOpts bind.CallOpts             // Call options to use throughout this session
 23040  }
 23041  
 23042  // RootChainRegistryITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 23043  // with pre-set transact options.
 23044  type RootChainRegistryITransactorSession struct {
 23045  	Contract     *RootChainRegistryITransactor // Generic contract transactor binding to set the session for
 23046  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
 23047  }
 23048  
 23049  // RootChainRegistryIRaw is an auto generated low-level Go binding around an Ethereum contract.
 23050  type RootChainRegistryIRaw struct {
 23051  	Contract *RootChainRegistryI // Generic contract binding to access the raw methods on
 23052  }
 23053  
 23054  // RootChainRegistryICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 23055  type RootChainRegistryICallerRaw struct {
 23056  	Contract *RootChainRegistryICaller // Generic read-only contract binding to access the raw methods on
 23057  }
 23058  
 23059  // RootChainRegistryITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 23060  type RootChainRegistryITransactorRaw struct {
 23061  	Contract *RootChainRegistryITransactor // Generic write-only contract binding to access the raw methods on
 23062  }
 23063  
 23064  // NewRootChainRegistryI creates a new instance of RootChainRegistryI, bound to a specific deployed contract.
 23065  func NewRootChainRegistryI(address common.Address, backend bind.ContractBackend) (*RootChainRegistryI, error) {
 23066  	contract, err := bindRootChainRegistryI(address, backend, backend, backend)
 23067  	if err != nil {
 23068  		return nil, err
 23069  	}
 23070  	return &RootChainRegistryI{RootChainRegistryICaller: RootChainRegistryICaller{contract: contract}, RootChainRegistryITransactor: RootChainRegistryITransactor{contract: contract}, RootChainRegistryIFilterer: RootChainRegistryIFilterer{contract: contract}}, nil
 23071  }
 23072  
 23073  // NewRootChainRegistryICaller creates a new read-only instance of RootChainRegistryI, bound to a specific deployed contract.
 23074  func NewRootChainRegistryICaller(address common.Address, caller bind.ContractCaller) (*RootChainRegistryICaller, error) {
 23075  	contract, err := bindRootChainRegistryI(address, caller, nil, nil)
 23076  	if err != nil {
 23077  		return nil, err
 23078  	}
 23079  	return &RootChainRegistryICaller{contract: contract}, nil
 23080  }
 23081  
 23082  // NewRootChainRegistryITransactor creates a new write-only instance of RootChainRegistryI, bound to a specific deployed contract.
 23083  func NewRootChainRegistryITransactor(address common.Address, transactor bind.ContractTransactor) (*RootChainRegistryITransactor, error) {
 23084  	contract, err := bindRootChainRegistryI(address, nil, transactor, nil)
 23085  	if err != nil {
 23086  		return nil, err
 23087  	}
 23088  	return &RootChainRegistryITransactor{contract: contract}, nil
 23089  }
 23090  
 23091  // NewRootChainRegistryIFilterer creates a new log filterer instance of RootChainRegistryI, bound to a specific deployed contract.
 23092  func NewRootChainRegistryIFilterer(address common.Address, filterer bind.ContractFilterer) (*RootChainRegistryIFilterer, error) {
 23093  	contract, err := bindRootChainRegistryI(address, nil, nil, filterer)
 23094  	if err != nil {
 23095  		return nil, err
 23096  	}
 23097  	return &RootChainRegistryIFilterer{contract: contract}, nil
 23098  }
 23099  
 23100  // bindRootChainRegistryI binds a generic wrapper to an already deployed contract.
 23101  func bindRootChainRegistryI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23102  	parsed, err := abi.JSON(strings.NewReader(RootChainRegistryIABI))
 23103  	if err != nil {
 23104  		return nil, err
 23105  	}
 23106  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 23107  }
 23108  
 23109  // Call invokes the (constant) contract method with params as input values and
 23110  // sets the output to result. The result type might be a single field for simple
 23111  // returns, a slice of interfaces for anonymous returns and a struct for named
 23112  // returns.
 23113  func (_RootChainRegistryI *RootChainRegistryIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23114  	return _RootChainRegistryI.Contract.RootChainRegistryICaller.contract.Call(opts, result, method, params...)
 23115  }
 23116  
 23117  // Transfer initiates a plain transaction to move funds to the contract, calling
 23118  // its default method if one is available.
 23119  func (_RootChainRegistryI *RootChainRegistryIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23120  	return _RootChainRegistryI.Contract.RootChainRegistryITransactor.contract.Transfer(opts)
 23121  }
 23122  
 23123  // Transact invokes the (paid) contract method with params as input values.
 23124  func (_RootChainRegistryI *RootChainRegistryIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23125  	return _RootChainRegistryI.Contract.RootChainRegistryITransactor.contract.Transact(opts, method, params...)
 23126  }
 23127  
 23128  // Call invokes the (constant) contract method with params as input values and
 23129  // sets the output to result. The result type might be a single field for simple
 23130  // returns, a slice of interfaces for anonymous returns and a struct for named
 23131  // returns.
 23132  func (_RootChainRegistryI *RootChainRegistryICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23133  	return _RootChainRegistryI.Contract.contract.Call(opts, result, method, params...)
 23134  }
 23135  
 23136  // Transfer initiates a plain transaction to move funds to the contract, calling
 23137  // its default method if one is available.
 23138  func (_RootChainRegistryI *RootChainRegistryITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23139  	return _RootChainRegistryI.Contract.contract.Transfer(opts)
 23140  }
 23141  
 23142  // Transact invokes the (paid) contract method with params as input values.
 23143  func (_RootChainRegistryI *RootChainRegistryITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23144  	return _RootChainRegistryI.Contract.contract.Transact(opts, method, params...)
 23145  }
 23146  
 23147  // NumRootChains is a free data retrieval call binding the contract method 0xb2b604d0.
 23148  //
 23149  // Solidity: function numRootChains() constant returns(uint256)
 23150  func (_RootChainRegistryI *RootChainRegistryICaller) NumRootChains(opts *bind.CallOpts) (*big.Int, error) {
 23151  	var (
 23152  		ret0 = new(*big.Int)
 23153  	)
 23154  	out := ret0
 23155  	err := _RootChainRegistryI.contract.Call(opts, out, "numRootChains")
 23156  	return *ret0, err
 23157  }
 23158  
 23159  // NumRootChains is a free data retrieval call binding the contract method 0xb2b604d0.
 23160  //
 23161  // Solidity: function numRootChains() constant returns(uint256)
 23162  func (_RootChainRegistryI *RootChainRegistryISession) NumRootChains() (*big.Int, error) {
 23163  	return _RootChainRegistryI.Contract.NumRootChains(&_RootChainRegistryI.CallOpts)
 23164  }
 23165  
 23166  // NumRootChains is a free data retrieval call binding the contract method 0xb2b604d0.
 23167  //
 23168  // Solidity: function numRootChains() constant returns(uint256)
 23169  func (_RootChainRegistryI *RootChainRegistryICallerSession) NumRootChains() (*big.Int, error) {
 23170  	return _RootChainRegistryI.Contract.NumRootChains(&_RootChainRegistryI.CallOpts)
 23171  }
 23172  
 23173  // RootchainByIndex is a free data retrieval call binding the contract method 0x821f602c.
 23174  //
 23175  // Solidity: function rootchainByIndex(uint256 index) constant returns(address)
 23176  func (_RootChainRegistryI *RootChainRegistryICaller) RootchainByIndex(opts *bind.CallOpts, index *big.Int) (common.Address, error) {
 23177  	var (
 23178  		ret0 = new(common.Address)
 23179  	)
 23180  	out := ret0
 23181  	err := _RootChainRegistryI.contract.Call(opts, out, "rootchainByIndex", index)
 23182  	return *ret0, err
 23183  }
 23184  
 23185  // RootchainByIndex is a free data retrieval call binding the contract method 0x821f602c.
 23186  //
 23187  // Solidity: function rootchainByIndex(uint256 index) constant returns(address)
 23188  func (_RootChainRegistryI *RootChainRegistryISession) RootchainByIndex(index *big.Int) (common.Address, error) {
 23189  	return _RootChainRegistryI.Contract.RootchainByIndex(&_RootChainRegistryI.CallOpts, index)
 23190  }
 23191  
 23192  // RootchainByIndex is a free data retrieval call binding the contract method 0x821f602c.
 23193  //
 23194  // Solidity: function rootchainByIndex(uint256 index) constant returns(address)
 23195  func (_RootChainRegistryI *RootChainRegistryICallerSession) RootchainByIndex(index *big.Int) (common.Address, error) {
 23196  	return _RootChainRegistryI.Contract.RootchainByIndex(&_RootChainRegistryI.CallOpts, index)
 23197  }
 23198  
 23199  // Rootchains is a free data retrieval call binding the contract method 0x02a15299.
 23200  //
 23201  // Solidity: function rootchains(address rootchain) constant returns(bool)
 23202  func (_RootChainRegistryI *RootChainRegistryICaller) Rootchains(opts *bind.CallOpts, rootchain common.Address) (bool, error) {
 23203  	var (
 23204  		ret0 = new(bool)
 23205  	)
 23206  	out := ret0
 23207  	err := _RootChainRegistryI.contract.Call(opts, out, "rootchains", rootchain)
 23208  	return *ret0, err
 23209  }
 23210  
 23211  // Rootchains is a free data retrieval call binding the contract method 0x02a15299.
 23212  //
 23213  // Solidity: function rootchains(address rootchain) constant returns(bool)
 23214  func (_RootChainRegistryI *RootChainRegistryISession) Rootchains(rootchain common.Address) (bool, error) {
 23215  	return _RootChainRegistryI.Contract.Rootchains(&_RootChainRegistryI.CallOpts, rootchain)
 23216  }
 23217  
 23218  // Rootchains is a free data retrieval call binding the contract method 0x02a15299.
 23219  //
 23220  // Solidity: function rootchains(address rootchain) constant returns(bool)
 23221  func (_RootChainRegistryI *RootChainRegistryICallerSession) Rootchains(rootchain common.Address) (bool, error) {
 23222  	return _RootChainRegistryI.Contract.Rootchains(&_RootChainRegistryI.CallOpts, rootchain)
 23223  }
 23224  
 23225  // DeployCoinage is a paid mutator transaction binding the contract method 0x85108604.
 23226  //
 23227  // Solidity: function deployCoinage(address rootchain, address seigManager) returns(bool)
 23228  func (_RootChainRegistryI *RootChainRegistryITransactor) DeployCoinage(opts *bind.TransactOpts, rootchain common.Address, seigManager common.Address) (*types.Transaction, error) {
 23229  	return _RootChainRegistryI.contract.Transact(opts, "deployCoinage", rootchain, seigManager)
 23230  }
 23231  
 23232  // DeployCoinage is a paid mutator transaction binding the contract method 0x85108604.
 23233  //
 23234  // Solidity: function deployCoinage(address rootchain, address seigManager) returns(bool)
 23235  func (_RootChainRegistryI *RootChainRegistryISession) DeployCoinage(rootchain common.Address, seigManager common.Address) (*types.Transaction, error) {
 23236  	return _RootChainRegistryI.Contract.DeployCoinage(&_RootChainRegistryI.TransactOpts, rootchain, seigManager)
 23237  }
 23238  
 23239  // DeployCoinage is a paid mutator transaction binding the contract method 0x85108604.
 23240  //
 23241  // Solidity: function deployCoinage(address rootchain, address seigManager) returns(bool)
 23242  func (_RootChainRegistryI *RootChainRegistryITransactorSession) DeployCoinage(rootchain common.Address, seigManager common.Address) (*types.Transaction, error) {
 23243  	return _RootChainRegistryI.Contract.DeployCoinage(&_RootChainRegistryI.TransactOpts, rootchain, seigManager)
 23244  }
 23245  
 23246  // Register is a paid mutator transaction binding the contract method 0x4420e486.
 23247  //
 23248  // Solidity: function register(address rootchain) returns(bool)
 23249  func (_RootChainRegistryI *RootChainRegistryITransactor) Register(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
 23250  	return _RootChainRegistryI.contract.Transact(opts, "register", rootchain)
 23251  }
 23252  
 23253  // Register is a paid mutator transaction binding the contract method 0x4420e486.
 23254  //
 23255  // Solidity: function register(address rootchain) returns(bool)
 23256  func (_RootChainRegistryI *RootChainRegistryISession) Register(rootchain common.Address) (*types.Transaction, error) {
 23257  	return _RootChainRegistryI.Contract.Register(&_RootChainRegistryI.TransactOpts, rootchain)
 23258  }
 23259  
 23260  // Register is a paid mutator transaction binding the contract method 0x4420e486.
 23261  //
 23262  // Solidity: function register(address rootchain) returns(bool)
 23263  func (_RootChainRegistryI *RootChainRegistryITransactorSession) Register(rootchain common.Address) (*types.Transaction, error) {
 23264  	return _RootChainRegistryI.Contract.Register(&_RootChainRegistryI.TransactOpts, rootchain)
 23265  }
 23266  
 23267  // RegisterAndDeployCoinage is a paid mutator transaction binding the contract method 0xbcb1a71e.
 23268  //
 23269  // Solidity: function registerAndDeployCoinage(address rootchain, address seigManager) returns(bool)
 23270  func (_RootChainRegistryI *RootChainRegistryITransactor) RegisterAndDeployCoinage(opts *bind.TransactOpts, rootchain common.Address, seigManager common.Address) (*types.Transaction, error) {
 23271  	return _RootChainRegistryI.contract.Transact(opts, "registerAndDeployCoinage", rootchain, seigManager)
 23272  }
 23273  
 23274  // RegisterAndDeployCoinage is a paid mutator transaction binding the contract method 0xbcb1a71e.
 23275  //
 23276  // Solidity: function registerAndDeployCoinage(address rootchain, address seigManager) returns(bool)
 23277  func (_RootChainRegistryI *RootChainRegistryISession) RegisterAndDeployCoinage(rootchain common.Address, seigManager common.Address) (*types.Transaction, error) {
 23278  	return _RootChainRegistryI.Contract.RegisterAndDeployCoinage(&_RootChainRegistryI.TransactOpts, rootchain, seigManager)
 23279  }
 23280  
 23281  // RegisterAndDeployCoinage is a paid mutator transaction binding the contract method 0xbcb1a71e.
 23282  //
 23283  // Solidity: function registerAndDeployCoinage(address rootchain, address seigManager) returns(bool)
 23284  func (_RootChainRegistryI *RootChainRegistryITransactorSession) RegisterAndDeployCoinage(rootchain common.Address, seigManager common.Address) (*types.Transaction, error) {
 23285  	return _RootChainRegistryI.Contract.RegisterAndDeployCoinage(&_RootChainRegistryI.TransactOpts, rootchain, seigManager)
 23286  }
 23287  
 23288  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
 23289  //
 23290  // Solidity: function unregister(address rootchain) returns(bool)
 23291  func (_RootChainRegistryI *RootChainRegistryITransactor) Unregister(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
 23292  	return _RootChainRegistryI.contract.Transact(opts, "unregister", rootchain)
 23293  }
 23294  
 23295  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
 23296  //
 23297  // Solidity: function unregister(address rootchain) returns(bool)
 23298  func (_RootChainRegistryI *RootChainRegistryISession) Unregister(rootchain common.Address) (*types.Transaction, error) {
 23299  	return _RootChainRegistryI.Contract.Unregister(&_RootChainRegistryI.TransactOpts, rootchain)
 23300  }
 23301  
 23302  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
 23303  //
 23304  // Solidity: function unregister(address rootchain) returns(bool)
 23305  func (_RootChainRegistryI *RootChainRegistryITransactorSession) Unregister(rootchain common.Address) (*types.Transaction, error) {
 23306  	return _RootChainRegistryI.Contract.Unregister(&_RootChainRegistryI.TransactOpts, rootchain)
 23307  }
 23308  
 23309  // SafeERC20ABI is the input ABI used to generate the binding from.
 23310  const SafeERC20ABI = "[]"
 23311  
 23312  // SafeERC20Bin is the compiled bytecode used for deploying new contracts.
 23313  var SafeERC20Bin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582045a04cb654e4c37bcd57cef5b1e4313fd04e0fbb06c03b04321592cfa5eb149764736f6c634300050c0032"
 23314  
 23315  // DeploySafeERC20 deploys a new Ethereum contract, binding an instance of SafeERC20 to it.
 23316  func DeploySafeERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeERC20, error) {
 23317  	parsed, err := abi.JSON(strings.NewReader(SafeERC20ABI))
 23318  	if err != nil {
 23319  		return common.Address{}, nil, nil, err
 23320  	}
 23321  
 23322  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeERC20Bin), backend)
 23323  	if err != nil {
 23324  		return common.Address{}, nil, nil, err
 23325  	}
 23326  	return address, tx, &SafeERC20{SafeERC20Caller: SafeERC20Caller{contract: contract}, SafeERC20Transactor: SafeERC20Transactor{contract: contract}, SafeERC20Filterer: SafeERC20Filterer{contract: contract}}, nil
 23327  }
 23328  
 23329  // SafeERC20 is an auto generated Go binding around an Ethereum contract.
 23330  type SafeERC20 struct {
 23331  	SafeERC20Caller     // Read-only binding to the contract
 23332  	SafeERC20Transactor // Write-only binding to the contract
 23333  	SafeERC20Filterer   // Log filterer for contract events
 23334  }
 23335  
 23336  // SafeERC20Caller is an auto generated read-only Go binding around an Ethereum contract.
 23337  type SafeERC20Caller struct {
 23338  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23339  }
 23340  
 23341  // SafeERC20Transactor is an auto generated write-only Go binding around an Ethereum contract.
 23342  type SafeERC20Transactor struct {
 23343  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23344  }
 23345  
 23346  // SafeERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
 23347  type SafeERC20Filterer struct {
 23348  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23349  }
 23350  
 23351  // SafeERC20Session is an auto generated Go binding around an Ethereum contract,
 23352  // with pre-set call and transact options.
 23353  type SafeERC20Session struct {
 23354  	Contract     *SafeERC20        // Generic contract binding to set the session for
 23355  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 23356  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 23357  }
 23358  
 23359  // SafeERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract,
 23360  // with pre-set call options.
 23361  type SafeERC20CallerSession struct {
 23362  	Contract *SafeERC20Caller // Generic contract caller binding to set the session for
 23363  	CallOpts bind.CallOpts    // Call options to use throughout this session
 23364  }
 23365  
 23366  // SafeERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 23367  // with pre-set transact options.
 23368  type SafeERC20TransactorSession struct {
 23369  	Contract     *SafeERC20Transactor // Generic contract transactor binding to set the session for
 23370  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
 23371  }
 23372  
 23373  // SafeERC20Raw is an auto generated low-level Go binding around an Ethereum contract.
 23374  type SafeERC20Raw struct {
 23375  	Contract *SafeERC20 // Generic contract binding to access the raw methods on
 23376  }
 23377  
 23378  // SafeERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 23379  type SafeERC20CallerRaw struct {
 23380  	Contract *SafeERC20Caller // Generic read-only contract binding to access the raw methods on
 23381  }
 23382  
 23383  // SafeERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 23384  type SafeERC20TransactorRaw struct {
 23385  	Contract *SafeERC20Transactor // Generic write-only contract binding to access the raw methods on
 23386  }
 23387  
 23388  // NewSafeERC20 creates a new instance of SafeERC20, bound to a specific deployed contract.
 23389  func NewSafeERC20(address common.Address, backend bind.ContractBackend) (*SafeERC20, error) {
 23390  	contract, err := bindSafeERC20(address, backend, backend, backend)
 23391  	if err != nil {
 23392  		return nil, err
 23393  	}
 23394  	return &SafeERC20{SafeERC20Caller: SafeERC20Caller{contract: contract}, SafeERC20Transactor: SafeERC20Transactor{contract: contract}, SafeERC20Filterer: SafeERC20Filterer{contract: contract}}, nil
 23395  }
 23396  
 23397  // NewSafeERC20Caller creates a new read-only instance of SafeERC20, bound to a specific deployed contract.
 23398  func NewSafeERC20Caller(address common.Address, caller bind.ContractCaller) (*SafeERC20Caller, error) {
 23399  	contract, err := bindSafeERC20(address, caller, nil, nil)
 23400  	if err != nil {
 23401  		return nil, err
 23402  	}
 23403  	return &SafeERC20Caller{contract: contract}, nil
 23404  }
 23405  
 23406  // NewSafeERC20Transactor creates a new write-only instance of SafeERC20, bound to a specific deployed contract.
 23407  func NewSafeERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*SafeERC20Transactor, error) {
 23408  	contract, err := bindSafeERC20(address, nil, transactor, nil)
 23409  	if err != nil {
 23410  		return nil, err
 23411  	}
 23412  	return &SafeERC20Transactor{contract: contract}, nil
 23413  }
 23414  
 23415  // NewSafeERC20Filterer creates a new log filterer instance of SafeERC20, bound to a specific deployed contract.
 23416  func NewSafeERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*SafeERC20Filterer, error) {
 23417  	contract, err := bindSafeERC20(address, nil, nil, filterer)
 23418  	if err != nil {
 23419  		return nil, err
 23420  	}
 23421  	return &SafeERC20Filterer{contract: contract}, nil
 23422  }
 23423  
 23424  // bindSafeERC20 binds a generic wrapper to an already deployed contract.
 23425  func bindSafeERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23426  	parsed, err := abi.JSON(strings.NewReader(SafeERC20ABI))
 23427  	if err != nil {
 23428  		return nil, err
 23429  	}
 23430  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 23431  }
 23432  
 23433  // Call invokes the (constant) contract method with params as input values and
 23434  // sets the output to result. The result type might be a single field for simple
 23435  // returns, a slice of interfaces for anonymous returns and a struct for named
 23436  // returns.
 23437  func (_SafeERC20 *SafeERC20Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23438  	return _SafeERC20.Contract.SafeERC20Caller.contract.Call(opts, result, method, params...)
 23439  }
 23440  
 23441  // Transfer initiates a plain transaction to move funds to the contract, calling
 23442  // its default method if one is available.
 23443  func (_SafeERC20 *SafeERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23444  	return _SafeERC20.Contract.SafeERC20Transactor.contract.Transfer(opts)
 23445  }
 23446  
 23447  // Transact invokes the (paid) contract method with params as input values.
 23448  func (_SafeERC20 *SafeERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23449  	return _SafeERC20.Contract.SafeERC20Transactor.contract.Transact(opts, method, params...)
 23450  }
 23451  
 23452  // Call invokes the (constant) contract method with params as input values and
 23453  // sets the output to result. The result type might be a single field for simple
 23454  // returns, a slice of interfaces for anonymous returns and a struct for named
 23455  // returns.
 23456  func (_SafeERC20 *SafeERC20CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23457  	return _SafeERC20.Contract.contract.Call(opts, result, method, params...)
 23458  }
 23459  
 23460  // Transfer initiates a plain transaction to move funds to the contract, calling
 23461  // its default method if one is available.
 23462  func (_SafeERC20 *SafeERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23463  	return _SafeERC20.Contract.contract.Transfer(opts)
 23464  }
 23465  
 23466  // Transact invokes the (paid) contract method with params as input values.
 23467  func (_SafeERC20 *SafeERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23468  	return _SafeERC20.Contract.contract.Transact(opts, method, params...)
 23469  }
 23470  
 23471  // SafeMathABI is the input ABI used to generate the binding from.
 23472  const SafeMathABI = "[]"
 23473  
 23474  // SafeMathBin is the compiled bytecode used for deploying new contracts.
 23475  var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582045f810ccb41cd151344ccf006ddfbe7c3c58a867d26e345c6576ae09178171dc64736f6c634300050c0032"
 23476  
 23477  // DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it.
 23478  func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
 23479  	parsed, err := abi.JSON(strings.NewReader(SafeMathABI))
 23480  	if err != nil {
 23481  		return common.Address{}, nil, nil, err
 23482  	}
 23483  
 23484  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend)
 23485  	if err != nil {
 23486  		return common.Address{}, nil, nil, err
 23487  	}
 23488  	return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
 23489  }
 23490  
 23491  // SafeMath is an auto generated Go binding around an Ethereum contract.
 23492  type SafeMath struct {
 23493  	SafeMathCaller     // Read-only binding to the contract
 23494  	SafeMathTransactor // Write-only binding to the contract
 23495  	SafeMathFilterer   // Log filterer for contract events
 23496  }
 23497  
 23498  // SafeMathCaller is an auto generated read-only Go binding around an Ethereum contract.
 23499  type SafeMathCaller struct {
 23500  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23501  }
 23502  
 23503  // SafeMathTransactor is an auto generated write-only Go binding around an Ethereum contract.
 23504  type SafeMathTransactor struct {
 23505  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23506  }
 23507  
 23508  // SafeMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 23509  type SafeMathFilterer struct {
 23510  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23511  }
 23512  
 23513  // SafeMathSession is an auto generated Go binding around an Ethereum contract,
 23514  // with pre-set call and transact options.
 23515  type SafeMathSession struct {
 23516  	Contract     *SafeMath         // Generic contract binding to set the session for
 23517  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 23518  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 23519  }
 23520  
 23521  // SafeMathCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 23522  // with pre-set call options.
 23523  type SafeMathCallerSession struct {
 23524  	Contract *SafeMathCaller // Generic contract caller binding to set the session for
 23525  	CallOpts bind.CallOpts   // Call options to use throughout this session
 23526  }
 23527  
 23528  // SafeMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 23529  // with pre-set transact options.
 23530  type SafeMathTransactorSession struct {
 23531  	Contract     *SafeMathTransactor // Generic contract transactor binding to set the session for
 23532  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 23533  }
 23534  
 23535  // SafeMathRaw is an auto generated low-level Go binding around an Ethereum contract.
 23536  type SafeMathRaw struct {
 23537  	Contract *SafeMath // Generic contract binding to access the raw methods on
 23538  }
 23539  
 23540  // SafeMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 23541  type SafeMathCallerRaw struct {
 23542  	Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on
 23543  }
 23544  
 23545  // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 23546  type SafeMathTransactorRaw struct {
 23547  	Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on
 23548  }
 23549  
 23550  // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract.
 23551  func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) {
 23552  	contract, err := bindSafeMath(address, backend, backend, backend)
 23553  	if err != nil {
 23554  		return nil, err
 23555  	}
 23556  	return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
 23557  }
 23558  
 23559  // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract.
 23560  func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) {
 23561  	contract, err := bindSafeMath(address, caller, nil, nil)
 23562  	if err != nil {
 23563  		return nil, err
 23564  	}
 23565  	return &SafeMathCaller{contract: contract}, nil
 23566  }
 23567  
 23568  // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract.
 23569  func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) {
 23570  	contract, err := bindSafeMath(address, nil, transactor, nil)
 23571  	if err != nil {
 23572  		return nil, err
 23573  	}
 23574  	return &SafeMathTransactor{contract: contract}, nil
 23575  }
 23576  
 23577  // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract.
 23578  func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) {
 23579  	contract, err := bindSafeMath(address, nil, nil, filterer)
 23580  	if err != nil {
 23581  		return nil, err
 23582  	}
 23583  	return &SafeMathFilterer{contract: contract}, nil
 23584  }
 23585  
 23586  // bindSafeMath binds a generic wrapper to an already deployed contract.
 23587  func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23588  	parsed, err := abi.JSON(strings.NewReader(SafeMathABI))
 23589  	if err != nil {
 23590  		return nil, err
 23591  	}
 23592  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 23593  }
 23594  
 23595  // Call invokes the (constant) contract method with params as input values and
 23596  // sets the output to result. The result type might be a single field for simple
 23597  // returns, a slice of interfaces for anonymous returns and a struct for named
 23598  // returns.
 23599  func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23600  	return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...)
 23601  }
 23602  
 23603  // Transfer initiates a plain transaction to move funds to the contract, calling
 23604  // its default method if one is available.
 23605  func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23606  	return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts)
 23607  }
 23608  
 23609  // Transact invokes the (paid) contract method with params as input values.
 23610  func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23611  	return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...)
 23612  }
 23613  
 23614  // Call invokes the (constant) contract method with params as input values and
 23615  // sets the output to result. The result type might be a single field for simple
 23616  // returns, a slice of interfaces for anonymous returns and a struct for named
 23617  // returns.
 23618  func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23619  	return _SafeMath.Contract.contract.Call(opts, result, method, params...)
 23620  }
 23621  
 23622  // Transfer initiates a plain transaction to move funds to the contract, calling
 23623  // its default method if one is available.
 23624  func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23625  	return _SafeMath.Contract.contract.Transfer(opts)
 23626  }
 23627  
 23628  // Transact invokes the (paid) contract method with params as input values.
 23629  func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23630  	return _SafeMath.Contract.contract.Transact(opts, method, params...)
 23631  }
 23632  
 23633  // SeigManagerABI is the input ABI used to generate the binding from.
 23634  const SeigManagerABI = "[{\"inputs\":[{\"internalType\":\"contractERC20Mintable\",\"name\":\"ton\",\"type\":\"address\"},{\"internalType\":\"contractERC20Mintable\",\"name\":\"wton\",\"type\":\"address\"},{\"internalType\":\"contractRootChainRegistryI\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"contractDepositManagerI\",\"name\":\"depositManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"seigPerBlock\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"coinage\",\"type\":\"address\"}],\"name\":\"CoinageCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"Comitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newRate\",\"type\":\"uint256\"}],\"name\":\"CommissionRateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStakedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSupplyOfWTON\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevTotalSupply\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nextTotalSupply\",\"type\":\"uint256\"}],\"name\":\"CommitLog1\",\"type\":\"event\"},{\"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\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSeig\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakedSeig\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakedSeig\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"powertonSeig\",\"type\":\"uint256\"}],\"name\":\"SeigGiven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"coinageBurnAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totBurnAmount\",\"type\":\"uint256\"}],\"name\":\"UnstakeLog\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DEFAULT_FACTOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VALID_COMMISSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VALID_COMMISSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"POWER_TON_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"POWER_TON_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"additionalTotBurnAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"coinages\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"commissionRates\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"deployCoinage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"isCommissionRateNegative\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"lastCommitBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastSeigBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"onCommit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"pausedBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"powerton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigPerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"commissionRate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isCommissionRateNegative\",\"type\":\"bool\"}],\"name\":\"setCommissionRate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractPowerTONI\",\"name\":\"powerton\",\"type\":\"address\"}],\"name\":\"setPowerTON\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"stakeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tot\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"uncomittedStakeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"unpausedBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 23635  
 23636  // SeigManagerFuncSigs maps the 4-byte function signature to its string representation.
 23637  var SeigManagerFuncSigs = map[string]string{
 23638  	"8bf91dc4": "DEFAULT_FACTOR()",
 23639  	"4123196f": "MAX_VALID_COMMISSION()",
 23640  	"a7dcc850": "MIN_VALID_COMMISSION()",
 23641  	"7bf8ae5b": "POWER_TON_DENOMINATOR()",
 23642  	"180975d3": "POWER_TON_NUMERATOR()",
 23643  	"82dc1ec4": "addPauser(address)",
 23644  	"48c8577e": "additionalTotBurnAmount(address,address,uint256)",
 23645  	"4c063c19": "coinages(address)",
 23646  	"7b056c1b": "commissionRates(address)",
 23647  	"833a774f": "deployCoinage(address)",
 23648  	"6c7ac9d8": "depositManager()",
 23649  	"5a16a416": "isCommissionRateNegative(address)",
 23650  	"8f32d59b": "isOwner()",
 23651  	"46fbf68e": "isPauser(address)",
 23652  	"c59f1046": "lastCommitBlock(address)",
 23653  	"f35c89e8": "lastSeigBlock()",
 23654  	"359c4d59": "onCommit()",
 23655  	"412c6d50": "onDeposit(address,address,uint256)",
 23656  	"4a393149": "onTransfer(address,address,uint256)",
 23657  	"f850ffaa": "onWithdraw(address,address,uint256)",
 23658  	"8da5cb5b": "owner()",
 23659  	"8456cb59": "pause()",
 23660  	"5c975abb": "paused()",
 23661  	"32053c99": "pausedBlock()",
 23662  	"3e832e1d": "powerton()",
 23663  	"7b103999": "registry()",
 23664  	"5f112c68": "renounceMinter(address)",
 23665  	"715018a6": "renounceOwnership()",
 23666  	"38bf3cfa": "renounceOwnership(address)",
 23667  	"6ef8d66d": "renouncePauser()",
 23668  	"41eb24bb": "renouncePauser(address)",
 23669  	"5f40a349": "seigPerBlock()",
 23670  	"4224ed66": "setCommissionRate(address,uint256,bool)",
 23671  	"41813020": "setPowerTON(address)",
 23672  	"ce4cb876": "stakeOf(address,address)",
 23673  	"cc48b947": "ton()",
 23674  	"a16d6aa7": "tot()",
 23675  	"f2fde38b": "transferOwnership(address)",
 23676  	"6d435421": "transferOwnership(address,address)",
 23677  	"fa9789c8": "uncomittedStakeOf(address,address)",
 23678  	"3f4ba83a": "unpause()",
 23679  	"1cc47890": "unpausedBlock()",
 23680  	"8d62d949": "wton()",
 23681  }
 23682  
 23683  // SeigManagerBin is the compiled bytecode used for deploying new contracts.
 23684  var SeigManagerBin = "0x60806040523480156200001157600080fd5b506040516200741338038062007413833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091906200007c6200006d6001600160e01b03620001d616565b6001600160e01b03620001da16565b6000620000916001600160e01b03620001d616565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001805460ff60a01b19169055600580546001600160a01b038088166001600160a01b03199283161790925560068054878416908316179055600280548684169083161790556003805492851692909116919091179055600c8190556040516b033b2e3c9fd0803ce8000000906000906200015a9062000356565b60408082019390935290151560608201526080808252600090820181905260c06020830181905282018190529151908190036101000191f080158015620001a5573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b0392909216919091179055505043600d555062000364915050565b3390565b620001f58160006200022c60201b62002f9e1790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6200024182826001600160e01b03620002d316565b15620002ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000336576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620073f16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611e8f806200556283390190565b6151ee80620003746000396000f3fe60806040523480156200001157600080fd5b5060043610620002a45760003560e01c80636d43542111620001715780638da5cb5b11620000d5578063cc48b9471162000093578063cc48b9471462000695578063ce4cb876146200069f578063f2fde38b14620006d0578063f35c89e814620006f9578063f850ffaa1462000703578063fa9789c8146200073c57620002a4565b80638da5cb5b14620006445780638f32d59b146200064e578063a16d6aa71462000658578063a7dcc8501462000662578063c59f1046146200066c57620002a4565b80637bf8ae5b116200012f5780637bf8ae5b14620005ca57806382dc1ec414620005d4578063833a774f14620005fd5780638456cb5914620006265780638bf91dc414620006305780638d62d949146200063a57620002a4565b80636d43542114620005525780636ef8d66d1462000583578063715018a6146200058d5780637b056c1b14620005975780637b10399914620005c057620002a4565b806341eb24bb11620002195780634c063c1911620001d75780634c063c1914620004b95780635a16a41614620004e25780635c975abb146200050b5780635f112c6814620005155780635f40a349146200053e5780636c7ac9d8146200054857620002a4565b806341eb24bb14620003be5780634224ed6614620003e757806346fbf68e146200041e57806348c8577e14620004475780634a393149146200048057620002a4565b80633e832e1d11620002675780633e832e1d14620003225780633f4ba83a14620003485780634123196f1462000352578063412c6d50146200035c57806341813020146200039557620002a4565b8063180975d314620002a95780631cc4789014620002c557806332053c9914620002cf578063359c4d5914620002d957806338bf3cfa14620002f7575b600080fd5b620002b36200076d565b60408051918252519081900360200190f35b620002b362000772565b620002b362000779565b620002e36200077f565b604080519115158252519081900360200190f35b62000320600480360360208110156200030f57600080fd5b50356001600160a01b031662000cb1565b005b6200032c62000d54565b604080516001600160a01b039092168252519081900360200190f35b6200032062000d63565b620002b362000e1a565b620002e3600480360360608110156200037457600080fd5b506001600160a01b0381358116916020810135909116906040013562000e29565b6200032060048036036020811015620003ad57600080fd5b50356001600160a01b03166200104b565b6200032060048036036020811015620003d657600080fd5b50356001600160a01b0316620010b8565b620002e360048036036060811015620003ff57600080fd5b506001600160a01b03813516906020810135906040013515156200113f565b620002e3600480360360208110156200043657600080fd5b50356001600160a01b0316620012bf565b620002b3600480360360608110156200045f57600080fd5b506001600160a01b03813581169160208101359091169060400135620012db565b620002e3600480360360608110156200049857600080fd5b506001600160a01b03813581169160208101359091169060400135620012f4565b6200032c60048036036020811015620004d157600080fd5b50356001600160a01b03166200137d565b620002e360048036036020811015620004fa57600080fd5b50356001600160a01b03166200139b565b620002e3620013b9565b62000320600480360360208110156200052d57600080fd5b50356001600160a01b0316620013c9565b620002b362001450565b6200032c62001456565b62000320600480360360408110156200056a57600080fd5b506001600160a01b038135811691602001351662001465565b6200032062001526565b620003206200153a565b620002b360048036036020811015620005af57600080fd5b50356001600160a01b0316620015cf565b6200032c620015ea565b620002b3620015f9565b6200032060048036036020811015620005ec57600080fd5b50356001600160a01b0316620015fe565b620002e3600480360360208110156200061557600080fd5b50356001600160a01b031662001657565b620003206200179f565b620002b36200184b565b6200032c6200185a565b6200032c62001869565b620002e362001878565b6200032c620018a0565b620002b3620018af565b620002b3600480360360208110156200068457600080fd5b50356001600160a01b0316620018be565b6200032c620018d9565b620002b360048036036040811015620006b757600080fd5b506001600160a01b0381358116916020013516620018e8565b6200032060048036036020811015620006e857600080fd5b50356001600160a01b03166200197a565b620002b3620019d0565b620002e3600480360360608110156200071b57600080fd5b506001600160a01b03813581169160208101359091169060400135620019d6565b620002b3600480360360408110156200075457600080fd5b506001600160a01b038135811691602001351662001d03565b600581565b600f545b90565b600e5490565b336000818152600860205260408120549091906001600160a01b0316620007d85760405162461bcd60e51b815260040180806020018281038252602e81526020018062005067602e913960400191505060405180910390fd5b620007e2620013b9565b15620007f2576001915062000cad565b620007fc62001fd8565b50336000908152600b60209081526040808320439055600882528083205481516318160ddd60e01b815291516001600160a01b03909116939284926318160ddd9260048083019392829003018186803b1580156200085957600080fd5b505afa1580156200086e573d6000803e3d6000fd5b505050506040513d60208110156200088557600080fd5b5051600754604080516370a0823160e01b815233600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015620008d957600080fd5b505afa158015620008ee573d6000803e3d6000fd5b505050506040513d60208110156200090557600080fd5b50519050808210620009495760405133907f521cc65179761533a7c8d7a973291dd7baebb99a67edf5ef78e9c2b61a533d9590600090a26001945050505062000cad565b600082820390506000336001600160a01b031663570ca7356040518163ffffffff1660e01b815260040160206040518083038186803b1580156200098c57600080fd5b505afa158015620009a1573d6000803e3d6000fd5b505050506040513d6020811015620009b857600080fd5b5051336000908152600a60205260408120549192509060ff16620009e08787868487620026fb565b8093508196505050866001600160a01b031663817e9d3162000a6b88888b6001600160a01b03166354f703f86040518163ffffffff1660e01b815260040160206040518083038186803b15801562000a3757600080fd5b505afa15801562000a4c573d6000803e3d6000fd5b505050506040513d602081101562000a6357600080fd5b5051620028a1565b6040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801562000aa257600080fd5b505af115801562000ab7573d6000803e3d6000fd5b505050506040513d602081101562000ace57600080fd5b5050811562000bee57801562000b5e57866001600160a01b03166379cc679084846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801562000b3f57600080fd5b505af115801562000b54573d6000803e3d6000fd5b5050505062000bee565b866001600160a01b03166340c10f1984846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801562000bbf57600080fd5b505af115801562000bd4573d6000803e3d6000fd5b505050506040513d602081101562000beb57600080fd5b50505b600654600354604080516340c10f1960e01b81526001600160a01b03928316600482015260248101889052905191909216916340c10f199160448083019260209291908290030181600087803b15801562000c4857600080fd5b505af115801562000c5d573d6000803e3d6000fd5b505050506040513d602081101562000c7457600080fd5b505060405133907f521cc65179761533a7c8d7a973291dd7baebb99a67edf5ef78e9c2b61a533d9590600090a260019850505050505050505b5090565b62000cbb62001878565b62000cfc576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000d3857600080fd5b505af115801562000d4d573d6000803e3d6000fd5b5050505050565b6004546001600160a01b031690565b62000d7762000d71620028ba565b620012bf565b62000db45760405162461bcd60e51b8152600401808060200182810382526030815260200180620050116030913960400191505060405180910390fd5b600154600160a01b900460ff1662000e0a576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b43600f5562000e18620028be565b565b676765c793fa10079d601b1b81565b6003546000906001600160a01b0316331462000e4457600080fd5b6001600160a01b0380851660009081526008602052604090205485911662000e9e5760405162461bcd60e51b815260040180806020018281038252602e81526020018062005067602e913960400191505060405180910390fd5b600754604080516340c10f1960e01b81526001600160a01b03888116600483015260248201879052915191909216916340c10f199160448083019260209291908290030181600087803b15801562000ef557600080fd5b505af115801562000f0a573d6000803e3d6000fd5b505050506040513d602081101562000f2157600080fd5b50506001600160a01b0380861660009081526008602090815260408083205481516340c10f1960e01b815289861660048201526024810189905291519416936340c10f1993604480840194938390030190829087803b15801562000f8457600080fd5b505af115801562000f99573d6000803e3d6000fd5b505050506040513d602081101562000fb057600080fd5b50506004546001600160a01b03161562001040576004805460408051630412c6d560e41b81526001600160a01b03898116948201949094528784166024820152604481018790529051929091169163412c6d509160648082019260009290919082900301818387803b1580156200102657600080fd5b505af11580156200103b573d6000803e3d6000fd5b505050505b506001949350505050565b6200105562001878565b62001096576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b620010c262001878565b62001103576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b806001600160a01b0316636ef8d66d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000d3857600080fd5b60025460009084906001600160a01b0316331480620011cd5750806001600160a01b031663570ca7356040518163ffffffff1660e01b815260040160206040518083038186803b1580156200119357600080fd5b505afa158015620011a8573d6000803e3d6000fd5b505050506040513d6020811015620011bf57600080fd5b50516001600160a01b031633145b620011d757600080fd5b831580620012075750836a084595161401484a00000011158015620012075750676765c793fa10079d601b1b8411155b620012445760405162461bcd60e51b8152600401808060200182810382526044815260200180620051196044913960600191505060405180910390fd5b6001600160a01b0385166000818152600960209081526040808320805490899055600a835292819020805460ff1916881515179055805183815291820188905280519293927f11841078e38c91feada06e1f8ded3697ab2dadc2583c52b14109b82ccd4f77d79281900390910190a250600195945050505050565b6000620012d3818363ffffffff620029b416565b90505b919050565b6000620012ea84848462002a1d565b90505b9392505050565b6005546000906001600160a01b03163314806200131b57506006546001600160a01b031633145b620013585760405162461bcd60e51b81526004018080602001828103825260318152602001806200515d6031913960400191505060405180910390fd5b62001362620013b9565b62001373576200137162001fd8565b505b5060019392505050565b6001600160a01b039081166000908152600860205260409020541690565b6001600160a01b03166000908152600a602052604090205460ff1690565b600154600160a01b900460ff1690565b620013d362001878565b62001414576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b806001600160a01b031663986502756040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000d3857600080fd5b600c5490565b6003546001600160a01b031690565b6200146f62001878565b620014b0576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b816001600160a01b031663f2fde38b826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156200150957600080fd5b505af11580156200151e573d6000803e3d6000fd5b505050505050565b62000e1862001534620028ba565b62002b79565b6200154462001878565b62001585576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001600160a01b031660009081526009602052604090205490565b6002546001600160a01b031690565b600a81565b6200160c62000d71620028ba565b620016495760405162461bcd60e51b8152600401808060200182810382526030815260200180620050116030913960400191505060405180910390fd5b620016548162002bc3565b50565b6002546000906001600160a01b031633146200167257600080fd5b6001600160a01b0382811660009081526008602052604090205416156200169c57506000620012d6565b6001600160a01b03828116600090815260086020526040902054166200179757676765c793fa10079d601b1b6000604051620016d89062003173565b60408082019390935290151560608201526080808252600090820181905260c06020830181905282018190529151908190036101000191f08015801562001723573d6000803e3d6000fd5b506001600160a01b03838116600081815260086020818152604080842080546001600160a01b031916978716979097178755600b82529283902043905590815293548151931683525190927f124cac1e701d08d642237ad795ddd275670e12f2cd956a26709721c68084c2b2928290030190a25b506001919050565b620017ad62000d71620028ba565b620017ea5760405162461bcd60e51b8152600401808060200182810382526030815260200180620050116030913960400191505060405180910390fd5b600154600160a01b900460ff16156200183d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b43600e5562000e1862002c0d565b676765c793fa10079d601b1b90565b6006546001600160a01b031690565b6001546001600160a01b031690565b6001546000906001600160a01b031662001891620028ba565b6001600160a01b031614905090565b6007546001600160a01b031690565b6a084595161401484a00000081565b6001600160a01b03166000908152600b602052604090205490565b6005546001600160a01b031690565b6001600160a01b0380831660009081526008602090815260408083205481516370a0823160e01b815286861660048201529151939416926370a0823192602480840193919291829003018186803b1580156200194357600080fd5b505afa15801562001958573d6000803e3d6000fd5b505050506040513d60208110156200196f57600080fd5b505190505b92915050565b6200198462001878565b620019c5576040805162461bcd60e51b81526020600482018190526024820152600080516020620050d7833981519152604482015290519081900360640190fd5b620016548162002ce9565b600d5490565b6003546000906001600160a01b03163314620019f157600080fd5b6001600160a01b0380851660009081526008602052604090205485911662001a4b5760405162461bcd60e51b815260040180806020018281038252602e81526020018062005067602e913960400191505060405180910390fd5b6001600160a01b038086166000908152600860209081526040918290205482516370a0823160e01b815288851660048201529251879491909116926370a08231926024808301939192829003018186803b15801562001aa957600080fd5b505afa15801562001abe573d6000803e3d6000fd5b505050506040513d602081101562001ad557600080fd5b5051101562001b165760405162461bcd60e51b815260040180806020018281038252602c8152602001806200518e602c913960400191505060405180910390fd5b600062001b2586868662002a1d565b6007549091506001600160a01b03166379cc67908762001b4c878563ffffffff62002d8c16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801562001b9c57600080fd5b505af115801562001bb1573d6000803e3d6000fd5b5050506001600160a01b0380881660009081526008602052604080822054815163079cc67960e41b81528a85166004820152602481018a90529151931693506379cc6790926044808301939282900301818387803b15801562001c1357600080fd5b505af115801562001c28573d6000803e3d6000fd5b50506004546001600160a01b031615915062001cbc9050576004805460408051637c287fd560e11b81526001600160a01b038a8116948201949094528884166024820152604481018890529051929091169163f850ffaa9160648082019260009290919082900301818387803b15801562001ca257600080fd5b505af115801562001cb7573d6000803e3d6000fd5b505050505b604080518581526020810183905281517f650f673bb96a43afff4620ecc3f3e38e0cbfddebde9894e951ba2ceff7472f60929181900390910190a150600195945050505050565b6001600160a01b038083166000908152600860209081526040808320548151630a9ee07f60e31b8152915193941692849284926354f703f89260048083019392829003018186803b15801562001d5857600080fd5b505afa15801562001d6d573d6000803e3d6000fd5b505050506040513d602081101562001d8457600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038516916318160ddd916004808301926020929190829003018186803b15801562001dcd57600080fd5b505afa15801562001de2573d6000803e3d6000fd5b505050506040513d602081101562001df957600080fd5b5051600754604080516370a0823160e01b81526001600160a01b038a81166004830152915193945060009391909216916370a08231916024808301926020929190829003018186803b15801562001e4f57600080fd5b505afa15801562001e64573d6000803e3d6000fd5b505050506040513d602081101562001e7b57600080fd5b50519050600062001e8e838386620028a1565b9050600062001f2d62001f26876001600160a01b03166370a082318b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801562001ef157600080fd5b505afa15801562001f06573d6000803e3d6000fd5b505050506040513d602081101562001f1d57600080fd5b50518762002de7565b8362002e20565b6001600160a01b03808b166000908152600860209081526040918290205482516370a0823160e01b81528d85166004820152925194955062001fcb949316926370a08231926024808201939291829003018186803b15801562001f8f57600080fd5b505afa15801562001fa4573d6000803e3d6000fd5b505050506040513d602081101562001fbb57600080fd5b5051829063ffffffff62002e5216565b9998505050505050505050565b6000600d5443141562001fee5750600062000776565b600760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200203d57600080fd5b505afa15801562002052573d6000803e3d6000fd5b505050506040513d60208110156200206957600080fd5b50516200207d575043600d55600062000776565b600080600760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015620020cf57600080fd5b505afa158015620020e4573d6000803e3d6000fd5b505050506040513d6020811015620020fb57600080fd5b5051600c5490925060009062002122906200211562002e96565b9063ffffffff62002ed516565b90506000620023bc600660009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200217957600080fd5b505afa1580156200218e573d6000803e3d6000fd5b505050506040513d6020811015620021a557600080fd5b5051600754604080516318160ddd60e01b81529051620023af926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015620021ef57600080fd5b505afa15801562002204573d6000803e3d6000fd5b505050506040513d60208110156200221b57600080fd5b5051600654604080516318160ddd60e01b81529051620023a2926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156200226557600080fd5b505afa1580156200227a573d6000803e3d6000fd5b505050506040513d60208110156200229157600080fd5b5051600554600654604080516370a0823160e01b81526001600160a01b0392831660048201529051620023a293633b9aca009362002115939116916370a0823191602480820192602092909190829003018186803b158015620022f357600080fd5b505afa15801562002308573d6000803e3d6000fd5b505050506040513d60208110156200231f57600080fd5b5051600554604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b1580156200236757600080fd5b505afa1580156200237c573d6000803e3d6000fd5b505050506040513d60208110156200239357600080fd5b50519063ffffffff62002e5216565b9063ffffffff62002d8c16565b9063ffffffff62002e5216565b90506000620024536200244c84600760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200241857600080fd5b505afa1580156200242d573d6000803e3d6000fd5b505050506040513d60208110156200244457600080fd5b505162002e20565b8362002de7565b905062002467858263ffffffff62002d8c16565b43600d5560075460408051630a9ee07f60e31b815290519296506001600160a01b039091169163817e9d3191620024c4918991899186916354f703f8916004808301926020929190829003018186803b15801562000a3757600080fd5b6040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015620024fb57600080fd5b505af115801562002510573d6000803e3d6000fd5b505050506040513d60208110156200252757600080fd5b5050600754604080516318160ddd60e01b815290517f41a79a497d1457df24c25ab99f22349ae9aef4468429f0a781216e8dcf80c628926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156200258e57600080fd5b505afa158015620025a3573d6000803e3d6000fd5b505050506040513d6020811015620025ba57600080fd5b5051604080519182526020820185905281810188905260608201879052519081900360800190a16000620025f5848363ffffffff62002e5216565b6004549091506000906001600160a01b031615620026a3575060065460048054604080516340c10f1960e01b81526001600160a01b0392831693810193909352600a6005860204602484018190529051909391909116916340c10f199160448083019260209291908290030181600087803b1580156200267457600080fd5b505af115801562002689573d6000803e3d6000fd5b505050506040513d6020811015620026a057600080fd5b50505b604080518681526020810185905280820184905260608101839052905133917f73600b95c31a4ed411c84c32eaa15178c77fdcd9d5c8123118e76c03b3dcd63b919081900360800190a2600197505050505050505090565b336000908152600960205260408120548585019190806200271d575062002897565b846200274d576200272f868262002e20565b915062002743838363ffffffff62002e5216565b9250620028979050565b866200275a575062002897565b6000886001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015620027b357600080fd5b505afa158015620027c8573d6000803e3d6000fd5b505050506040513d6020811015620027df57600080fd5b5051905080620027f25750620028979050565b600062002800828a62002de7565b90506200281962002812898362002e20565b8462002e20565b93506000676765c793fa10079d601b1b82146200284f57620028498583676765c793fa10079d601b1b0362002de7565b62002851565b845b9050676765c793fa10079d601b1b82146200287a5762002872818362002e20565b85016200287c565b845b945062002890868263ffffffff62002d8c16565b9550505050505b9550959350505050565b6000620012ea620028b3848462002e20565b8562002de7565b3390565b620028cc62000d71620028ba565b620029095760405162461bcd60e51b8152600401808060200182810382526030815260200180620050116030913960400191505060405180910390fd5b600154600160a01b900460ff166200295f576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa62002997620028ba565b604080516001600160a01b039092168252519081900360200190a1565b60006001600160a01b038216620029fd5760405162461bcd60e51b8152600401808060200182810382526022815260200180620050f76022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0380841660009081526008602090815260408083205481516318160ddd60e01b81529151939485949116926318160ddd9260048082019391829003018186803b15801562002a7157600080fd5b505afa15801562002a86573d6000803e3d6000fd5b505050506040513d602081101562002a9d57600080fd5b5051600754604080516370a0823160e01b81526001600160a01b038981166004830152915193945060009391909216916370a08231916024808301926020929190829003018186803b15801562002af357600080fd5b505afa15801562002b08573d6000803e3d6000fd5b505050506040513d602081101562002b1f57600080fd5b50519050808211801562002b3c5750670de0b6b3a7640000818303105b1562002b4e57600092505050620012ed565b62002b6f6200244c62002b68838563ffffffff62002e5216565b8662002e20565b9695505050505050565b62002b8c60008263ffffffff62002f3316565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b62002bd660008263ffffffff62002f9e16565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b62002c1b62000d71620028ba565b62002c585760405162461bcd60e51b8152600401808060200182810382526030815260200180620050116030913960400191505060405180910390fd5b600154600160a01b900460ff161562002cab576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25862002997620028ba565b6001600160a01b03811662002d305760405162461bcd60e51b8152600401808060200182810382526026815260200180620050416026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015620012ed576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008162002e1062002e0585676765c793fa10079d601b1b62003022565b6002855b0462003088565b8162002e1857fe5b049392505050565b6000676765c793fa10079d601b1b62002e1062002e3e858562003022565b6002676765c793fa10079d601b1b62002e09565b6000620012ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620030d8565b600062002ea2620013b9565b1562002ead57600080fd5b600d54600f544382900391111562002ec757905062000776565b600e54600f54039003905090565b60008262002ee65750600062001974565b8282028284828162002ef457fe5b0414620012ed5760405162461bcd60e51b8152600401808060200182810382526021815260200180620050b66021913960400191505060405180910390fd5b62002f3f8282620029b4565b62002f7c5760405162461bcd60e51b8152600401808060200182810382526021815260200180620050956021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b62002faa8282620029b4565b1562002ffd576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008115806200303f575050808202828282816200303c57fe5b04145b62001974576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101562001974576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600081848411156200316b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200312f57818101518382015260200162003115565b50505050905090810190601f1680156200315d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b611e8f80620031828339019056fe60806040523480156200001157600080fd5b5060405162001e8f38038062001e8f833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208201519101519092509050838383838383836000848484601b620001df620001d06001600160e01b03620002ad16565b6001600160e01b03620002b216565b620001f26001600160e01b03620002ad16565b600480546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620002539060059060208601906200042e565b508151620002699060069060208501906200042e565b506007805460ff90921660ff19928316179055600b959095555050600c9190915543600d55600e80549115159190921617905550620004d098505050505050505050565b335b90565b620002cd8160036200030460201b6200148b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200031982826001600160e01b03620003ab16565b156200038657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200040e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001e6d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047157805160ff1916838001178555620004a1565b82800160010185558215620004a1579182015b82811115620004a157825182559160200191906001019062000484565b50620004af929150620004b3565b5090565b620002af91905b80821115620004af5760008155600101620004ba565b61198d80620004e06000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063817e9d31116100f9578063a9059cbb11610097578063d4132ee211610071578063d4132ee2146104bf578063dd62ed3e146104c7578063f2fde38b146104f5578063f41e60c51461051b576101a9565b8063a9059cbb14610465578063aa271e1a14610491578063bef97c87146104b7576101a9565b806395d89b41116100d357806395d89b4114610403578063983b2d561461040b5780639865027514610431578063a457c2d714610439576101a9565b8063817e9d31146103ba5780638da5cb5b146103d75780638f32d59b146103fb576101a9565b806340c10f191161016657806370a082311161014057806370a0823114610358578063715018a61461037e57806379cc679014610386578063806b984f146103b2576101a9565b806340c10f191461030557806342966c681461033157806354f703f814610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063313ce567146102bb57806339509351146102d9575b600080fd5b6101b661053a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105d0565b604080519115158252519081900360200190f35b6102736105ee565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610600565b6102c36106f1565b6040805160ff9092168252519081900360200190f35b610257600480360360408110156102ef57600080fd5b506001600160a01b0381351690602001356106fa565b6102576004803603604081101561031b57600080fd5b506001600160a01b03813516906020013561074e565b61034e6004803603602081101561034757600080fd5b50356107a5565b005b6102736107b9565b6102736004803603602081101561036e57600080fd5b50356001600160a01b03166107bf565b61034e6107e9565b61034e6004803603604081101561039c57600080fd5b506001600160a01b03813516906020013561087a565b610273610888565b610257600480360360208110156103d057600080fd5b503561088e565b6103df610920565b604080516001600160a01b039092168252519081900360200190f35b61025761092f565b6101b6610955565b61034e6004803603602081101561042157600080fd5b50356001600160a01b03166109b6565b61034e610a05565b6102576004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610a17565b6102576004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610a85565b610257600480360360208110156104a757600080fd5b50356001600160a01b0316610afd565b610257610b10565b610273610b19565b610273600480360360408110156104dd57600080fd5b506001600160a01b0381358116916020013516610b1f565b61034e6004803603602081101561050b57600080fd5b50356001600160a01b0316610b4a565b61034e6004803603602081101561053157600080fd5b50351515610b9a565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105e46105dd610bf4565b8484610bf8565b5060015b92915050565b60006105fb600a54610cec565b905090565b600061060a610920565b6001600160a01b0316336001600160a01b0316148061062b5750600e5460ff165b6106665760405162461bcd60e51b815260040180806020018281038252602a815260200180611864602a913960400191505060405180910390fd5b610671848484610d32565b6106e78461067d610bf4565b6106e2856040518060600160405280603781526020016118be603791396001600160a01b038a166000908152600960205260408120906106bb610bf4565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610ea916565b610bf8565b5060019392505050565b60075460ff1690565b60006105e4610707610bf4565b846106e28560096000610718610bf4565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610f4016565b600061076061075b610bf4565b610afd565b61079b5760405162461bcd60e51b815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b6105e48383610f9a565b6107b66107b0610bf4565b82611091565b50565b600b5490565b6001600160a01b0381166000908152600860205260408120546107e190610cec565b90505b919050565b6107f161092f565b610830576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b6108848282611193565b5050565b600d5490565b600061089861092f565b6108d7576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b600b805490839055604080518281526020810185905281517fafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430929181900390910190a150919050565b6004546001600160a01b031690565b6004546000906001600160a01b0316610946610bf4565b6001600160a01b031614905090565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105c65780601f1061059b576101008083540402835291602001916105c6565b6109c161075b610bf4565b6109fc5760405162461bcd60e51b815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b6107b6816111fb565b610a15610a10610bf4565b611243565b565b60006105e4610a24610bf4565b846106e2856040518060600160405280603481526020016116706034913960096000610a4e610bf4565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610ea916565b6000610a8f610920565b6001600160a01b0316336001600160a01b03161480610ab05750600e5460ff165b610aeb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611864602a913960400191505060405180910390fd5b6105e4610af6610bf4565b8484610d32565b60006107e160038363ffffffff61128b16565b600e5460ff1690565b600c5490565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610b5261092f565b610b91576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b6107b6816112f2565b610ba261092f565b610be1576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b600e805460ff1916911515919091179055565b3390565b610c00611393565b6001600160a01b038316610c455760405162461bcd60e51b81526004018080602001828103825260338152602001806116d86033913960400191505060405180910390fd5b6001600160a01b038216610c8a5760405162461bcd60e51b815260040180806020018281038252603181526020018061170b6031913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610cfb575060006107e4565b600d54430380610d1957610d1183600b546113e5565b9150506107e4565b610d2b83610d2683611426565b6113e5565b9392505050565b610d3a611393565b6001600160a01b038316610d7f5760405162461bcd60e51b81526004018080602001828103825260348152602001806116a46034913960400191505060405180910390fd5b6001600160a01b038216610dc45760405162461bcd60e51b81526004018080602001828103825260328152602001806117fd6032913960400191505060405180910390fd5b6000610dcf8261142d565b9050610e148160405180606001604052806035815260200161182f603591396001600160a01b038716600090815260086020526040902054919063ffffffff610ea916565b6001600160a01b038086166000908152600860205260408082209390935590851681522054610e49908263ffffffff610f4016565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e928461143b565b60408051918252519081900360200190a350505050565b60008184841115610f385760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610efd578181015183820152602001610ee5565b50505050905090810190601f168015610f2a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610d2b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610fa2611393565b6001600160a01b038216610fe75760405162461bcd60e51b815260040180806020018281038252602e81526020018061178d602e913960400191505060405180910390fd5b6000610ff28261142d565b600a54909150611008908263ffffffff610f4016565b600a556001600160a01b038316600090815260086020526040902054611034908263ffffffff610f4016565b6001600160a01b038416600081815260086020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107b8461143b565b60408051918252519081900360200190a3505050565b611099611393565b6001600160a01b0382166110de5760405162461bcd60e51b815260040180806020018281038252603081526020018061188e6030913960400191505060405180910390fd5b60006110e98261142d565b905061112e816040518060600160405280603181526020016118f5603191396001600160a01b038616600090815260086020526040902054919063ffffffff610ea916565b6001600160a01b038416600090815260086020526040902055600a5461115a908263ffffffff61144916565b600a5560006001600160a01b0384167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107b8461143b565b61119b611393565b6111a58282611091565b6111ad61092f565b61088457610884826111bd610bf4565b6106e284604051806060016040528060338152602001611926603391396001600160a01b0388166000908152600960205260408120906106bb610bf4565b61120c60038263ffffffff61148b16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61125460038263ffffffff61150c16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b0382166112d25760405162461bcd60e51b81526004018080602001828103825260228152602001806117db6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0381166113375760405162461bcd60e51b815260040180806020018281038252602681526020018061164a6026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600d54430380156107b6576113a781611426565b600b81905543600d5560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce80000006114176114018585611573565b60026b033b2e3c9fd0803ce80000005b046115d6565b8161141e57fe5b049392505050565b50600b5490565b60006107e182600b54611625565b60006107e182600b546113e5565b6000610d2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea9565b611495828261128b565b156114e7576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b611516828261128b565b6115515760405162461bcd60e51b815260040180806020018281038252602181526020018061176c6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081158061158e5750508082028282828161158b57fe5b04145b6105e8576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b808201828110156105e8576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600081611417611641856b033b2e3c9fd0803ce8000000611573565b60028561141156fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654175746f496e6372656d656e74436f696e6167653a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a206275726e2066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a72315820d5764adea31fbf3839fbc0cff7afda966ec63b8d0db737591e85afc150358bc364736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536569674d616e616765723a20636f696e61676520686173206e6f74206265656e206465706c6f79656420796574526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373536569674d616e616765723a20636f6d6d697373696f6e2072617465206d7573742062652030206f72206265747765656e20312052415920616e6420302e303120524159536569674d616e616765723a206f6e6c7920544f4e206f722057544f4e2063616e2063616c6c206f6e5472616e73666572536569674d616e616765723a20696e73756666696369616e742062616c616e636520746f20756e7374616b65a265627a7a7231582028ef6263dd103794352a5972737c726688070a3fb4377d97b76e6cdba349d67064736f6c634300050c003260806040523480156200001157600080fd5b5060405162001e8f38038062001e8f833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208201519101519092509050838383838383836000848484601b620001df620001d06001600160e01b03620002ad16565b6001600160e01b03620002b216565b620001f26001600160e01b03620002ad16565b600480546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620002539060059060208601906200042e565b508151620002699060069060208501906200042e565b506007805460ff90921660ff19928316179055600b959095555050600c9190915543600d55600e80549115159190921617905550620004d098505050505050505050565b335b90565b620002cd8160036200030460201b6200148b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200031982826001600160e01b03620003ab16565b156200038657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200040e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001e6d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047157805160ff1916838001178555620004a1565b82800160010185558215620004a1579182015b82811115620004a157825182559160200191906001019062000484565b50620004af929150620004b3565b5090565b620002af91905b80821115620004af5760008155600101620004ba565b61198d80620004e06000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063817e9d31116100f9578063a9059cbb11610097578063d4132ee211610071578063d4132ee2146104bf578063dd62ed3e146104c7578063f2fde38b146104f5578063f41e60c51461051b576101a9565b8063a9059cbb14610465578063aa271e1a14610491578063bef97c87146104b7576101a9565b806395d89b41116100d357806395d89b4114610403578063983b2d561461040b5780639865027514610431578063a457c2d714610439576101a9565b8063817e9d31146103ba5780638da5cb5b146103d75780638f32d59b146103fb576101a9565b806340c10f191161016657806370a082311161014057806370a0823114610358578063715018a61461037e57806379cc679014610386578063806b984f146103b2576101a9565b806340c10f191461030557806342966c681461033157806354f703f814610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063313ce567146102bb57806339509351146102d9575b600080fd5b6101b661053a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105d0565b604080519115158252519081900360200190f35b6102736105ee565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610600565b6102c36106f1565b6040805160ff9092168252519081900360200190f35b610257600480360360408110156102ef57600080fd5b506001600160a01b0381351690602001356106fa565b6102576004803603604081101561031b57600080fd5b506001600160a01b03813516906020013561074e565b61034e6004803603602081101561034757600080fd5b50356107a5565b005b6102736107b9565b6102736004803603602081101561036e57600080fd5b50356001600160a01b03166107bf565b61034e6107e9565b61034e6004803603604081101561039c57600080fd5b506001600160a01b03813516906020013561087a565b610273610888565b610257600480360360208110156103d057600080fd5b503561088e565b6103df610920565b604080516001600160a01b039092168252519081900360200190f35b61025761092f565b6101b6610955565b61034e6004803603602081101561042157600080fd5b50356001600160a01b03166109b6565b61034e610a05565b6102576004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610a17565b6102576004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610a85565b610257600480360360208110156104a757600080fd5b50356001600160a01b0316610afd565b610257610b10565b610273610b19565b610273600480360360408110156104dd57600080fd5b506001600160a01b0381358116916020013516610b1f565b61034e6004803603602081101561050b57600080fd5b50356001600160a01b0316610b4a565b61034e6004803603602081101561053157600080fd5b50351515610b9a565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105e46105dd610bf4565b8484610bf8565b5060015b92915050565b60006105fb600a54610cec565b905090565b600061060a610920565b6001600160a01b0316336001600160a01b0316148061062b5750600e5460ff165b6106665760405162461bcd60e51b815260040180806020018281038252602a815260200180611864602a913960400191505060405180910390fd5b610671848484610d32565b6106e78461067d610bf4565b6106e2856040518060600160405280603781526020016118be603791396001600160a01b038a166000908152600960205260408120906106bb610bf4565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610ea916565b610bf8565b5060019392505050565b60075460ff1690565b60006105e4610707610bf4565b846106e28560096000610718610bf4565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610f4016565b600061076061075b610bf4565b610afd565b61079b5760405162461bcd60e51b815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b6105e48383610f9a565b6107b66107b0610bf4565b82611091565b50565b600b5490565b6001600160a01b0381166000908152600860205260408120546107e190610cec565b90505b919050565b6107f161092f565b610830576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b6108848282611193565b5050565b600d5490565b600061089861092f565b6108d7576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b600b805490839055604080518281526020810185905281517fafc9085bb15d79bc1e9d87807e2fc5f4c2b631088cb3e38c86cb627c12a0e430929181900390910190a150919050565b6004546001600160a01b031690565b6004546000906001600160a01b0316610946610bf4565b6001600160a01b031614905090565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105c65780601f1061059b576101008083540402835291602001916105c6565b6109c161075b610bf4565b6109fc5760405162461bcd60e51b815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b6107b6816111fb565b610a15610a10610bf4565b611243565b565b60006105e4610a24610bf4565b846106e2856040518060600160405280603481526020016116706034913960096000610a4e610bf4565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610ea916565b6000610a8f610920565b6001600160a01b0316336001600160a01b03161480610ab05750600e5460ff165b610aeb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611864602a913960400191505060405180910390fd5b6105e4610af6610bf4565b8484610d32565b60006107e160038363ffffffff61128b16565b600e5460ff1690565b600c5490565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610b5261092f565b610b91576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b6107b6816112f2565b610ba261092f565b610be1576040805162461bcd60e51b815260206004820181905260248201526000805160206117bb833981519152604482015290519081900360640190fd5b600e805460ff1916911515919091179055565b3390565b610c00611393565b6001600160a01b038316610c455760405162461bcd60e51b81526004018080602001828103825260338152602001806116d86033913960400191505060405180910390fd5b6001600160a01b038216610c8a5760405162461bcd60e51b815260040180806020018281038252603181526020018061170b6031913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600081610cfb575060006107e4565b600d54430380610d1957610d1183600b546113e5565b9150506107e4565b610d2b83610d2683611426565b6113e5565b9392505050565b610d3a611393565b6001600160a01b038316610d7f5760405162461bcd60e51b81526004018080602001828103825260348152602001806116a46034913960400191505060405180910390fd5b6001600160a01b038216610dc45760405162461bcd60e51b81526004018080602001828103825260328152602001806117fd6032913960400191505060405180910390fd5b6000610dcf8261142d565b9050610e148160405180606001604052806035815260200161182f603591396001600160a01b038716600090815260086020526040902054919063ffffffff610ea916565b6001600160a01b038086166000908152600860205260408082209390935590851681522054610e49908263ffffffff610f4016565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e928461143b565b60408051918252519081900360200190a350505050565b60008184841115610f385760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610efd578181015183820152602001610ee5565b50505050905090810190601f168015610f2a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610d2b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610fa2611393565b6001600160a01b038216610fe75760405162461bcd60e51b815260040180806020018281038252602e81526020018061178d602e913960400191505060405180910390fd5b6000610ff28261142d565b600a54909150611008908263ffffffff610f4016565b600a556001600160a01b038316600090815260086020526040902054611034908263ffffffff610f4016565b6001600160a01b038416600081815260086020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107b8461143b565b60408051918252519081900360200190a3505050565b611099611393565b6001600160a01b0382166110de5760405162461bcd60e51b815260040180806020018281038252603081526020018061188e6030913960400191505060405180910390fd5b60006110e98261142d565b905061112e816040518060600160405280603181526020016118f5603191396001600160a01b038616600090815260086020526040902054919063ffffffff610ea916565b6001600160a01b038416600090815260086020526040902055600a5461115a908263ffffffff61144916565b600a5560006001600160a01b0384167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61107b8461143b565b61119b611393565b6111a58282611091565b6111ad61092f565b61088457610884826111bd610bf4565b6106e284604051806060016040528060338152602001611926603391396001600160a01b0388166000908152600960205260408120906106bb610bf4565b61120c60038263ffffffff61148b16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61125460038263ffffffff61150c16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b0382166112d25760405162461bcd60e51b81526004018080602001828103825260228152602001806117db6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0381166113375760405162461bcd60e51b815260040180806020018281038252602681526020018061164a6026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600d54430380156107b6576113a781611426565b600b81905543600d5560408051918252517fe26ee4870433319e6f01f123f37f6f6823ff4084f5651912025d24930b01bcb69181900360200190a150565b60006b033b2e3c9fd0803ce80000006114176114018585611573565b60026b033b2e3c9fd0803ce80000005b046115d6565b8161141e57fe5b049392505050565b50600b5490565b60006107e182600b54611625565b60006107e182600b546113e5565b6000610d2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea9565b611495828261128b565b156114e7576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b611516828261128b565b6115515760405162461bcd60e51b815260040180806020018281038252602181526020018061176c6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081158061158e5750508082028282828161158b57fe5b04145b6105e8576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b808201828110156105e8576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b600081611417611641856b033b2e3c9fd0803ce8000000611573565b60028561141156fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4175746f496e6372656d656e74436f696e6167653a207472616e736665722066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f76652066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654175746f496e6372656d656e74436f696e6167653a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220746f20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a207472616e73666572206e6f7420616c6c6f7765644175746f496e6372656d656e74436f696e6167653a206275726e2066726f6d20746865207a65726f20616464726573734175746f496e6372656d656e74436f696e6167653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e7420657863656564732062616c616e63654175746f496e6372656d656e74436f696e6167653a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365a265627a7a72315820d5764adea31fbf3839fbc0cff7afda966ec63b8d0db737591e85afc150358bc364736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373"
 23685  
 23686  // DeploySeigManager deploys a new Ethereum contract, binding an instance of SeigManager to it.
 23687  func DeploySeigManager(auth *bind.TransactOpts, backend bind.ContractBackend, ton common.Address, wton common.Address, registry common.Address, depositManager common.Address, seigPerBlock *big.Int) (common.Address, *types.Transaction, *SeigManager, error) {
 23688  	parsed, err := abi.JSON(strings.NewReader(SeigManagerABI))
 23689  	if err != nil {
 23690  		return common.Address{}, nil, nil, err
 23691  	}
 23692  
 23693  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SeigManagerBin), backend, ton, wton, registry, depositManager, seigPerBlock)
 23694  	if err != nil {
 23695  		return common.Address{}, nil, nil, err
 23696  	}
 23697  	return address, tx, &SeigManager{SeigManagerCaller: SeigManagerCaller{contract: contract}, SeigManagerTransactor: SeigManagerTransactor{contract: contract}, SeigManagerFilterer: SeigManagerFilterer{contract: contract}}, nil
 23698  }
 23699  
 23700  // SeigManager is an auto generated Go binding around an Ethereum contract.
 23701  type SeigManager struct {
 23702  	SeigManagerCaller     // Read-only binding to the contract
 23703  	SeigManagerTransactor // Write-only binding to the contract
 23704  	SeigManagerFilterer   // Log filterer for contract events
 23705  }
 23706  
 23707  // SeigManagerCaller is an auto generated read-only Go binding around an Ethereum contract.
 23708  type SeigManagerCaller struct {
 23709  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23710  }
 23711  
 23712  // SeigManagerTransactor is an auto generated write-only Go binding around an Ethereum contract.
 23713  type SeigManagerTransactor struct {
 23714  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23715  }
 23716  
 23717  // SeigManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 23718  type SeigManagerFilterer struct {
 23719  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23720  }
 23721  
 23722  // SeigManagerSession is an auto generated Go binding around an Ethereum contract,
 23723  // with pre-set call and transact options.
 23724  type SeigManagerSession struct {
 23725  	Contract     *SeigManager      // Generic contract binding to set the session for
 23726  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 23727  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 23728  }
 23729  
 23730  // SeigManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 23731  // with pre-set call options.
 23732  type SeigManagerCallerSession struct {
 23733  	Contract *SeigManagerCaller // Generic contract caller binding to set the session for
 23734  	CallOpts bind.CallOpts      // Call options to use throughout this session
 23735  }
 23736  
 23737  // SeigManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 23738  // with pre-set transact options.
 23739  type SeigManagerTransactorSession struct {
 23740  	Contract     *SeigManagerTransactor // Generic contract transactor binding to set the session for
 23741  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
 23742  }
 23743  
 23744  // SeigManagerRaw is an auto generated low-level Go binding around an Ethereum contract.
 23745  type SeigManagerRaw struct {
 23746  	Contract *SeigManager // Generic contract binding to access the raw methods on
 23747  }
 23748  
 23749  // SeigManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 23750  type SeigManagerCallerRaw struct {
 23751  	Contract *SeigManagerCaller // Generic read-only contract binding to access the raw methods on
 23752  }
 23753  
 23754  // SeigManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 23755  type SeigManagerTransactorRaw struct {
 23756  	Contract *SeigManagerTransactor // Generic write-only contract binding to access the raw methods on
 23757  }
 23758  
 23759  // NewSeigManager creates a new instance of SeigManager, bound to a specific deployed contract.
 23760  func NewSeigManager(address common.Address, backend bind.ContractBackend) (*SeigManager, error) {
 23761  	contract, err := bindSeigManager(address, backend, backend, backend)
 23762  	if err != nil {
 23763  		return nil, err
 23764  	}
 23765  	return &SeigManager{SeigManagerCaller: SeigManagerCaller{contract: contract}, SeigManagerTransactor: SeigManagerTransactor{contract: contract}, SeigManagerFilterer: SeigManagerFilterer{contract: contract}}, nil
 23766  }
 23767  
 23768  // NewSeigManagerCaller creates a new read-only instance of SeigManager, bound to a specific deployed contract.
 23769  func NewSeigManagerCaller(address common.Address, caller bind.ContractCaller) (*SeigManagerCaller, error) {
 23770  	contract, err := bindSeigManager(address, caller, nil, nil)
 23771  	if err != nil {
 23772  		return nil, err
 23773  	}
 23774  	return &SeigManagerCaller{contract: contract}, nil
 23775  }
 23776  
 23777  // NewSeigManagerTransactor creates a new write-only instance of SeigManager, bound to a specific deployed contract.
 23778  func NewSeigManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*SeigManagerTransactor, error) {
 23779  	contract, err := bindSeigManager(address, nil, transactor, nil)
 23780  	if err != nil {
 23781  		return nil, err
 23782  	}
 23783  	return &SeigManagerTransactor{contract: contract}, nil
 23784  }
 23785  
 23786  // NewSeigManagerFilterer creates a new log filterer instance of SeigManager, bound to a specific deployed contract.
 23787  func NewSeigManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*SeigManagerFilterer, error) {
 23788  	contract, err := bindSeigManager(address, nil, nil, filterer)
 23789  	if err != nil {
 23790  		return nil, err
 23791  	}
 23792  	return &SeigManagerFilterer{contract: contract}, nil
 23793  }
 23794  
 23795  // bindSeigManager binds a generic wrapper to an already deployed contract.
 23796  func bindSeigManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23797  	parsed, err := abi.JSON(strings.NewReader(SeigManagerABI))
 23798  	if err != nil {
 23799  		return nil, err
 23800  	}
 23801  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 23802  }
 23803  
 23804  // Call invokes the (constant) contract method with params as input values and
 23805  // sets the output to result. The result type might be a single field for simple
 23806  // returns, a slice of interfaces for anonymous returns and a struct for named
 23807  // returns.
 23808  func (_SeigManager *SeigManagerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23809  	return _SeigManager.Contract.SeigManagerCaller.contract.Call(opts, result, method, params...)
 23810  }
 23811  
 23812  // Transfer initiates a plain transaction to move funds to the contract, calling
 23813  // its default method if one is available.
 23814  func (_SeigManager *SeigManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23815  	return _SeigManager.Contract.SeigManagerTransactor.contract.Transfer(opts)
 23816  }
 23817  
 23818  // Transact invokes the (paid) contract method with params as input values.
 23819  func (_SeigManager *SeigManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23820  	return _SeigManager.Contract.SeigManagerTransactor.contract.Transact(opts, method, params...)
 23821  }
 23822  
 23823  // Call invokes the (constant) contract method with params as input values and
 23824  // sets the output to result. The result type might be a single field for simple
 23825  // returns, a slice of interfaces for anonymous returns and a struct for named
 23826  // returns.
 23827  func (_SeigManager *SeigManagerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 23828  	return _SeigManager.Contract.contract.Call(opts, result, method, params...)
 23829  }
 23830  
 23831  // Transfer initiates a plain transaction to move funds to the contract, calling
 23832  // its default method if one is available.
 23833  func (_SeigManager *SeigManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23834  	return _SeigManager.Contract.contract.Transfer(opts)
 23835  }
 23836  
 23837  // Transact invokes the (paid) contract method with params as input values.
 23838  func (_SeigManager *SeigManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23839  	return _SeigManager.Contract.contract.Transact(opts, method, params...)
 23840  }
 23841  
 23842  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
 23843  //
 23844  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
 23845  func (_SeigManager *SeigManagerCaller) DEFAULTFACTOR(opts *bind.CallOpts) (*big.Int, error) {
 23846  	var (
 23847  		ret0 = new(*big.Int)
 23848  	)
 23849  	out := ret0
 23850  	err := _SeigManager.contract.Call(opts, out, "DEFAULT_FACTOR")
 23851  	return *ret0, err
 23852  }
 23853  
 23854  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
 23855  //
 23856  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
 23857  func (_SeigManager *SeigManagerSession) DEFAULTFACTOR() (*big.Int, error) {
 23858  	return _SeigManager.Contract.DEFAULTFACTOR(&_SeigManager.CallOpts)
 23859  }
 23860  
 23861  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
 23862  //
 23863  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
 23864  func (_SeigManager *SeigManagerCallerSession) DEFAULTFACTOR() (*big.Int, error) {
 23865  	return _SeigManager.Contract.DEFAULTFACTOR(&_SeigManager.CallOpts)
 23866  }
 23867  
 23868  // MAXVALIDCOMMISSION is a free data retrieval call binding the contract method 0x4123196f.
 23869  //
 23870  // Solidity: function MAX_VALID_COMMISSION() constant returns(uint256)
 23871  func (_SeigManager *SeigManagerCaller) MAXVALIDCOMMISSION(opts *bind.CallOpts) (*big.Int, error) {
 23872  	var (
 23873  		ret0 = new(*big.Int)
 23874  	)
 23875  	out := ret0
 23876  	err := _SeigManager.contract.Call(opts, out, "MAX_VALID_COMMISSION")
 23877  	return *ret0, err
 23878  }
 23879  
 23880  // MAXVALIDCOMMISSION is a free data retrieval call binding the contract method 0x4123196f.
 23881  //
 23882  // Solidity: function MAX_VALID_COMMISSION() constant returns(uint256)
 23883  func (_SeigManager *SeigManagerSession) MAXVALIDCOMMISSION() (*big.Int, error) {
 23884  	return _SeigManager.Contract.MAXVALIDCOMMISSION(&_SeigManager.CallOpts)
 23885  }
 23886  
 23887  // MAXVALIDCOMMISSION is a free data retrieval call binding the contract method 0x4123196f.
 23888  //
 23889  // Solidity: function MAX_VALID_COMMISSION() constant returns(uint256)
 23890  func (_SeigManager *SeigManagerCallerSession) MAXVALIDCOMMISSION() (*big.Int, error) {
 23891  	return _SeigManager.Contract.MAXVALIDCOMMISSION(&_SeigManager.CallOpts)
 23892  }
 23893  
 23894  // MINVALIDCOMMISSION is a free data retrieval call binding the contract method 0xa7dcc850.
 23895  //
 23896  // Solidity: function MIN_VALID_COMMISSION() constant returns(uint256)
 23897  func (_SeigManager *SeigManagerCaller) MINVALIDCOMMISSION(opts *bind.CallOpts) (*big.Int, error) {
 23898  	var (
 23899  		ret0 = new(*big.Int)
 23900  	)
 23901  	out := ret0
 23902  	err := _SeigManager.contract.Call(opts, out, "MIN_VALID_COMMISSION")
 23903  	return *ret0, err
 23904  }
 23905  
 23906  // MINVALIDCOMMISSION is a free data retrieval call binding the contract method 0xa7dcc850.
 23907  //
 23908  // Solidity: function MIN_VALID_COMMISSION() constant returns(uint256)
 23909  func (_SeigManager *SeigManagerSession) MINVALIDCOMMISSION() (*big.Int, error) {
 23910  	return _SeigManager.Contract.MINVALIDCOMMISSION(&_SeigManager.CallOpts)
 23911  }
 23912  
 23913  // MINVALIDCOMMISSION is a free data retrieval call binding the contract method 0xa7dcc850.
 23914  //
 23915  // Solidity: function MIN_VALID_COMMISSION() constant returns(uint256)
 23916  func (_SeigManager *SeigManagerCallerSession) MINVALIDCOMMISSION() (*big.Int, error) {
 23917  	return _SeigManager.Contract.MINVALIDCOMMISSION(&_SeigManager.CallOpts)
 23918  }
 23919  
 23920  // POWERTONDENOMINATOR is a free data retrieval call binding the contract method 0x7bf8ae5b.
 23921  //
 23922  // Solidity: function POWER_TON_DENOMINATOR() constant returns(uint256)
 23923  func (_SeigManager *SeigManagerCaller) POWERTONDENOMINATOR(opts *bind.CallOpts) (*big.Int, error) {
 23924  	var (
 23925  		ret0 = new(*big.Int)
 23926  	)
 23927  	out := ret0
 23928  	err := _SeigManager.contract.Call(opts, out, "POWER_TON_DENOMINATOR")
 23929  	return *ret0, err
 23930  }
 23931  
 23932  // POWERTONDENOMINATOR is a free data retrieval call binding the contract method 0x7bf8ae5b.
 23933  //
 23934  // Solidity: function POWER_TON_DENOMINATOR() constant returns(uint256)
 23935  func (_SeigManager *SeigManagerSession) POWERTONDENOMINATOR() (*big.Int, error) {
 23936  	return _SeigManager.Contract.POWERTONDENOMINATOR(&_SeigManager.CallOpts)
 23937  }
 23938  
 23939  // POWERTONDENOMINATOR is a free data retrieval call binding the contract method 0x7bf8ae5b.
 23940  //
 23941  // Solidity: function POWER_TON_DENOMINATOR() constant returns(uint256)
 23942  func (_SeigManager *SeigManagerCallerSession) POWERTONDENOMINATOR() (*big.Int, error) {
 23943  	return _SeigManager.Contract.POWERTONDENOMINATOR(&_SeigManager.CallOpts)
 23944  }
 23945  
 23946  // POWERTONNUMERATOR is a free data retrieval call binding the contract method 0x180975d3.
 23947  //
 23948  // Solidity: function POWER_TON_NUMERATOR() constant returns(uint256)
 23949  func (_SeigManager *SeigManagerCaller) POWERTONNUMERATOR(opts *bind.CallOpts) (*big.Int, error) {
 23950  	var (
 23951  		ret0 = new(*big.Int)
 23952  	)
 23953  	out := ret0
 23954  	err := _SeigManager.contract.Call(opts, out, "POWER_TON_NUMERATOR")
 23955  	return *ret0, err
 23956  }
 23957  
 23958  // POWERTONNUMERATOR is a free data retrieval call binding the contract method 0x180975d3.
 23959  //
 23960  // Solidity: function POWER_TON_NUMERATOR() constant returns(uint256)
 23961  func (_SeigManager *SeigManagerSession) POWERTONNUMERATOR() (*big.Int, error) {
 23962  	return _SeigManager.Contract.POWERTONNUMERATOR(&_SeigManager.CallOpts)
 23963  }
 23964  
 23965  // POWERTONNUMERATOR is a free data retrieval call binding the contract method 0x180975d3.
 23966  //
 23967  // Solidity: function POWER_TON_NUMERATOR() constant returns(uint256)
 23968  func (_SeigManager *SeigManagerCallerSession) POWERTONNUMERATOR() (*big.Int, error) {
 23969  	return _SeigManager.Contract.POWERTONNUMERATOR(&_SeigManager.CallOpts)
 23970  }
 23971  
 23972  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
 23973  //
 23974  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
 23975  func (_SeigManager *SeigManagerCaller) AdditionalTotBurnAmount(opts *bind.CallOpts, rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
 23976  	var (
 23977  		ret0 = new(*big.Int)
 23978  	)
 23979  	out := ret0
 23980  	err := _SeigManager.contract.Call(opts, out, "additionalTotBurnAmount", rootchain, account, amount)
 23981  	return *ret0, err
 23982  }
 23983  
 23984  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
 23985  //
 23986  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
 23987  func (_SeigManager *SeigManagerSession) AdditionalTotBurnAmount(rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
 23988  	return _SeigManager.Contract.AdditionalTotBurnAmount(&_SeigManager.CallOpts, rootchain, account, amount)
 23989  }
 23990  
 23991  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
 23992  //
 23993  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
 23994  func (_SeigManager *SeigManagerCallerSession) AdditionalTotBurnAmount(rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
 23995  	return _SeigManager.Contract.AdditionalTotBurnAmount(&_SeigManager.CallOpts, rootchain, account, amount)
 23996  }
 23997  
 23998  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
 23999  //
 24000  // Solidity: function coinages(address rootchain) constant returns(address)
 24001  func (_SeigManager *SeigManagerCaller) Coinages(opts *bind.CallOpts, rootchain common.Address) (common.Address, error) {
 24002  	var (
 24003  		ret0 = new(common.Address)
 24004  	)
 24005  	out := ret0
 24006  	err := _SeigManager.contract.Call(opts, out, "coinages", rootchain)
 24007  	return *ret0, err
 24008  }
 24009  
 24010  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
 24011  //
 24012  // Solidity: function coinages(address rootchain) constant returns(address)
 24013  func (_SeigManager *SeigManagerSession) Coinages(rootchain common.Address) (common.Address, error) {
 24014  	return _SeigManager.Contract.Coinages(&_SeigManager.CallOpts, rootchain)
 24015  }
 24016  
 24017  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
 24018  //
 24019  // Solidity: function coinages(address rootchain) constant returns(address)
 24020  func (_SeigManager *SeigManagerCallerSession) Coinages(rootchain common.Address) (common.Address, error) {
 24021  	return _SeigManager.Contract.Coinages(&_SeigManager.CallOpts, rootchain)
 24022  }
 24023  
 24024  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
 24025  //
 24026  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
 24027  func (_SeigManager *SeigManagerCaller) CommissionRates(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
 24028  	var (
 24029  		ret0 = new(*big.Int)
 24030  	)
 24031  	out := ret0
 24032  	err := _SeigManager.contract.Call(opts, out, "commissionRates", rootchain)
 24033  	return *ret0, err
 24034  }
 24035  
 24036  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
 24037  //
 24038  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
 24039  func (_SeigManager *SeigManagerSession) CommissionRates(rootchain common.Address) (*big.Int, error) {
 24040  	return _SeigManager.Contract.CommissionRates(&_SeigManager.CallOpts, rootchain)
 24041  }
 24042  
 24043  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
 24044  //
 24045  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
 24046  func (_SeigManager *SeigManagerCallerSession) CommissionRates(rootchain common.Address) (*big.Int, error) {
 24047  	return _SeigManager.Contract.CommissionRates(&_SeigManager.CallOpts, rootchain)
 24048  }
 24049  
 24050  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
 24051  //
 24052  // Solidity: function depositManager() constant returns(address)
 24053  func (_SeigManager *SeigManagerCaller) DepositManager(opts *bind.CallOpts) (common.Address, error) {
 24054  	var (
 24055  		ret0 = new(common.Address)
 24056  	)
 24057  	out := ret0
 24058  	err := _SeigManager.contract.Call(opts, out, "depositManager")
 24059  	return *ret0, err
 24060  }
 24061  
 24062  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
 24063  //
 24064  // Solidity: function depositManager() constant returns(address)
 24065  func (_SeigManager *SeigManagerSession) DepositManager() (common.Address, error) {
 24066  	return _SeigManager.Contract.DepositManager(&_SeigManager.CallOpts)
 24067  }
 24068  
 24069  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
 24070  //
 24071  // Solidity: function depositManager() constant returns(address)
 24072  func (_SeigManager *SeigManagerCallerSession) DepositManager() (common.Address, error) {
 24073  	return _SeigManager.Contract.DepositManager(&_SeigManager.CallOpts)
 24074  }
 24075  
 24076  // IsCommissionRateNegative is a free data retrieval call binding the contract method 0x5a16a416.
 24077  //
 24078  // Solidity: function isCommissionRateNegative(address rootchain) constant returns(bool)
 24079  func (_SeigManager *SeigManagerCaller) IsCommissionRateNegative(opts *bind.CallOpts, rootchain common.Address) (bool, error) {
 24080  	var (
 24081  		ret0 = new(bool)
 24082  	)
 24083  	out := ret0
 24084  	err := _SeigManager.contract.Call(opts, out, "isCommissionRateNegative", rootchain)
 24085  	return *ret0, err
 24086  }
 24087  
 24088  // IsCommissionRateNegative is a free data retrieval call binding the contract method 0x5a16a416.
 24089  //
 24090  // Solidity: function isCommissionRateNegative(address rootchain) constant returns(bool)
 24091  func (_SeigManager *SeigManagerSession) IsCommissionRateNegative(rootchain common.Address) (bool, error) {
 24092  	return _SeigManager.Contract.IsCommissionRateNegative(&_SeigManager.CallOpts, rootchain)
 24093  }
 24094  
 24095  // IsCommissionRateNegative is a free data retrieval call binding the contract method 0x5a16a416.
 24096  //
 24097  // Solidity: function isCommissionRateNegative(address rootchain) constant returns(bool)
 24098  func (_SeigManager *SeigManagerCallerSession) IsCommissionRateNegative(rootchain common.Address) (bool, error) {
 24099  	return _SeigManager.Contract.IsCommissionRateNegative(&_SeigManager.CallOpts, rootchain)
 24100  }
 24101  
 24102  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 24103  //
 24104  // Solidity: function isOwner() constant returns(bool)
 24105  func (_SeigManager *SeigManagerCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 24106  	var (
 24107  		ret0 = new(bool)
 24108  	)
 24109  	out := ret0
 24110  	err := _SeigManager.contract.Call(opts, out, "isOwner")
 24111  	return *ret0, err
 24112  }
 24113  
 24114  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 24115  //
 24116  // Solidity: function isOwner() constant returns(bool)
 24117  func (_SeigManager *SeigManagerSession) IsOwner() (bool, error) {
 24118  	return _SeigManager.Contract.IsOwner(&_SeigManager.CallOpts)
 24119  }
 24120  
 24121  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 24122  //
 24123  // Solidity: function isOwner() constant returns(bool)
 24124  func (_SeigManager *SeigManagerCallerSession) IsOwner() (bool, error) {
 24125  	return _SeigManager.Contract.IsOwner(&_SeigManager.CallOpts)
 24126  }
 24127  
 24128  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 24129  //
 24130  // Solidity: function isPauser(address account) constant returns(bool)
 24131  func (_SeigManager *SeigManagerCaller) IsPauser(opts *bind.CallOpts, account common.Address) (bool, error) {
 24132  	var (
 24133  		ret0 = new(bool)
 24134  	)
 24135  	out := ret0
 24136  	err := _SeigManager.contract.Call(opts, out, "isPauser", account)
 24137  	return *ret0, err
 24138  }
 24139  
 24140  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 24141  //
 24142  // Solidity: function isPauser(address account) constant returns(bool)
 24143  func (_SeigManager *SeigManagerSession) IsPauser(account common.Address) (bool, error) {
 24144  	return _SeigManager.Contract.IsPauser(&_SeigManager.CallOpts, account)
 24145  }
 24146  
 24147  // IsPauser is a free data retrieval call binding the contract method 0x46fbf68e.
 24148  //
 24149  // Solidity: function isPauser(address account) constant returns(bool)
 24150  func (_SeigManager *SeigManagerCallerSession) IsPauser(account common.Address) (bool, error) {
 24151  	return _SeigManager.Contract.IsPauser(&_SeigManager.CallOpts, account)
 24152  }
 24153  
 24154  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
 24155  //
 24156  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
 24157  func (_SeigManager *SeigManagerCaller) LastCommitBlock(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
 24158  	var (
 24159  		ret0 = new(*big.Int)
 24160  	)
 24161  	out := ret0
 24162  	err := _SeigManager.contract.Call(opts, out, "lastCommitBlock", rootchain)
 24163  	return *ret0, err
 24164  }
 24165  
 24166  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
 24167  //
 24168  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
 24169  func (_SeigManager *SeigManagerSession) LastCommitBlock(rootchain common.Address) (*big.Int, error) {
 24170  	return _SeigManager.Contract.LastCommitBlock(&_SeigManager.CallOpts, rootchain)
 24171  }
 24172  
 24173  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
 24174  //
 24175  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
 24176  func (_SeigManager *SeigManagerCallerSession) LastCommitBlock(rootchain common.Address) (*big.Int, error) {
 24177  	return _SeigManager.Contract.LastCommitBlock(&_SeigManager.CallOpts, rootchain)
 24178  }
 24179  
 24180  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
 24181  //
 24182  // Solidity: function lastSeigBlock() constant returns(uint256)
 24183  func (_SeigManager *SeigManagerCaller) LastSeigBlock(opts *bind.CallOpts) (*big.Int, error) {
 24184  	var (
 24185  		ret0 = new(*big.Int)
 24186  	)
 24187  	out := ret0
 24188  	err := _SeigManager.contract.Call(opts, out, "lastSeigBlock")
 24189  	return *ret0, err
 24190  }
 24191  
 24192  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
 24193  //
 24194  // Solidity: function lastSeigBlock() constant returns(uint256)
 24195  func (_SeigManager *SeigManagerSession) LastSeigBlock() (*big.Int, error) {
 24196  	return _SeigManager.Contract.LastSeigBlock(&_SeigManager.CallOpts)
 24197  }
 24198  
 24199  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
 24200  //
 24201  // Solidity: function lastSeigBlock() constant returns(uint256)
 24202  func (_SeigManager *SeigManagerCallerSession) LastSeigBlock() (*big.Int, error) {
 24203  	return _SeigManager.Contract.LastSeigBlock(&_SeigManager.CallOpts)
 24204  }
 24205  
 24206  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 24207  //
 24208  // Solidity: function owner() constant returns(address)
 24209  func (_SeigManager *SeigManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 24210  	var (
 24211  		ret0 = new(common.Address)
 24212  	)
 24213  	out := ret0
 24214  	err := _SeigManager.contract.Call(opts, out, "owner")
 24215  	return *ret0, err
 24216  }
 24217  
 24218  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 24219  //
 24220  // Solidity: function owner() constant returns(address)
 24221  func (_SeigManager *SeigManagerSession) Owner() (common.Address, error) {
 24222  	return _SeigManager.Contract.Owner(&_SeigManager.CallOpts)
 24223  }
 24224  
 24225  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 24226  //
 24227  // Solidity: function owner() constant returns(address)
 24228  func (_SeigManager *SeigManagerCallerSession) Owner() (common.Address, error) {
 24229  	return _SeigManager.Contract.Owner(&_SeigManager.CallOpts)
 24230  }
 24231  
 24232  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 24233  //
 24234  // Solidity: function paused() constant returns(bool)
 24235  func (_SeigManager *SeigManagerCaller) Paused(opts *bind.CallOpts) (bool, error) {
 24236  	var (
 24237  		ret0 = new(bool)
 24238  	)
 24239  	out := ret0
 24240  	err := _SeigManager.contract.Call(opts, out, "paused")
 24241  	return *ret0, err
 24242  }
 24243  
 24244  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 24245  //
 24246  // Solidity: function paused() constant returns(bool)
 24247  func (_SeigManager *SeigManagerSession) Paused() (bool, error) {
 24248  	return _SeigManager.Contract.Paused(&_SeigManager.CallOpts)
 24249  }
 24250  
 24251  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 24252  //
 24253  // Solidity: function paused() constant returns(bool)
 24254  func (_SeigManager *SeigManagerCallerSession) Paused() (bool, error) {
 24255  	return _SeigManager.Contract.Paused(&_SeigManager.CallOpts)
 24256  }
 24257  
 24258  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
 24259  //
 24260  // Solidity: function pausedBlock() constant returns(uint256)
 24261  func (_SeigManager *SeigManagerCaller) PausedBlock(opts *bind.CallOpts) (*big.Int, error) {
 24262  	var (
 24263  		ret0 = new(*big.Int)
 24264  	)
 24265  	out := ret0
 24266  	err := _SeigManager.contract.Call(opts, out, "pausedBlock")
 24267  	return *ret0, err
 24268  }
 24269  
 24270  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
 24271  //
 24272  // Solidity: function pausedBlock() constant returns(uint256)
 24273  func (_SeigManager *SeigManagerSession) PausedBlock() (*big.Int, error) {
 24274  	return _SeigManager.Contract.PausedBlock(&_SeigManager.CallOpts)
 24275  }
 24276  
 24277  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
 24278  //
 24279  // Solidity: function pausedBlock() constant returns(uint256)
 24280  func (_SeigManager *SeigManagerCallerSession) PausedBlock() (*big.Int, error) {
 24281  	return _SeigManager.Contract.PausedBlock(&_SeigManager.CallOpts)
 24282  }
 24283  
 24284  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
 24285  //
 24286  // Solidity: function powerton() constant returns(address)
 24287  func (_SeigManager *SeigManagerCaller) Powerton(opts *bind.CallOpts) (common.Address, error) {
 24288  	var (
 24289  		ret0 = new(common.Address)
 24290  	)
 24291  	out := ret0
 24292  	err := _SeigManager.contract.Call(opts, out, "powerton")
 24293  	return *ret0, err
 24294  }
 24295  
 24296  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
 24297  //
 24298  // Solidity: function powerton() constant returns(address)
 24299  func (_SeigManager *SeigManagerSession) Powerton() (common.Address, error) {
 24300  	return _SeigManager.Contract.Powerton(&_SeigManager.CallOpts)
 24301  }
 24302  
 24303  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
 24304  //
 24305  // Solidity: function powerton() constant returns(address)
 24306  func (_SeigManager *SeigManagerCallerSession) Powerton() (common.Address, error) {
 24307  	return _SeigManager.Contract.Powerton(&_SeigManager.CallOpts)
 24308  }
 24309  
 24310  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 24311  //
 24312  // Solidity: function registry() constant returns(address)
 24313  func (_SeigManager *SeigManagerCaller) Registry(opts *bind.CallOpts) (common.Address, error) {
 24314  	var (
 24315  		ret0 = new(common.Address)
 24316  	)
 24317  	out := ret0
 24318  	err := _SeigManager.contract.Call(opts, out, "registry")
 24319  	return *ret0, err
 24320  }
 24321  
 24322  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 24323  //
 24324  // Solidity: function registry() constant returns(address)
 24325  func (_SeigManager *SeigManagerSession) Registry() (common.Address, error) {
 24326  	return _SeigManager.Contract.Registry(&_SeigManager.CallOpts)
 24327  }
 24328  
 24329  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 24330  //
 24331  // Solidity: function registry() constant returns(address)
 24332  func (_SeigManager *SeigManagerCallerSession) Registry() (common.Address, error) {
 24333  	return _SeigManager.Contract.Registry(&_SeigManager.CallOpts)
 24334  }
 24335  
 24336  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 24337  //
 24338  // Solidity: function seigPerBlock() constant returns(uint256)
 24339  func (_SeigManager *SeigManagerCaller) SeigPerBlock(opts *bind.CallOpts) (*big.Int, error) {
 24340  	var (
 24341  		ret0 = new(*big.Int)
 24342  	)
 24343  	out := ret0
 24344  	err := _SeigManager.contract.Call(opts, out, "seigPerBlock")
 24345  	return *ret0, err
 24346  }
 24347  
 24348  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 24349  //
 24350  // Solidity: function seigPerBlock() constant returns(uint256)
 24351  func (_SeigManager *SeigManagerSession) SeigPerBlock() (*big.Int, error) {
 24352  	return _SeigManager.Contract.SeigPerBlock(&_SeigManager.CallOpts)
 24353  }
 24354  
 24355  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 24356  //
 24357  // Solidity: function seigPerBlock() constant returns(uint256)
 24358  func (_SeigManager *SeigManagerCallerSession) SeigPerBlock() (*big.Int, error) {
 24359  	return _SeigManager.Contract.SeigPerBlock(&_SeigManager.CallOpts)
 24360  }
 24361  
 24362  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
 24363  //
 24364  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
 24365  func (_SeigManager *SeigManagerCaller) StakeOf(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 24366  	var (
 24367  		ret0 = new(*big.Int)
 24368  	)
 24369  	out := ret0
 24370  	err := _SeigManager.contract.Call(opts, out, "stakeOf", rootchain, account)
 24371  	return *ret0, err
 24372  }
 24373  
 24374  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
 24375  //
 24376  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
 24377  func (_SeigManager *SeigManagerSession) StakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 24378  	return _SeigManager.Contract.StakeOf(&_SeigManager.CallOpts, rootchain, account)
 24379  }
 24380  
 24381  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
 24382  //
 24383  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
 24384  func (_SeigManager *SeigManagerCallerSession) StakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 24385  	return _SeigManager.Contract.StakeOf(&_SeigManager.CallOpts, rootchain, account)
 24386  }
 24387  
 24388  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
 24389  //
 24390  // Solidity: function ton() constant returns(address)
 24391  func (_SeigManager *SeigManagerCaller) Ton(opts *bind.CallOpts) (common.Address, error) {
 24392  	var (
 24393  		ret0 = new(common.Address)
 24394  	)
 24395  	out := ret0
 24396  	err := _SeigManager.contract.Call(opts, out, "ton")
 24397  	return *ret0, err
 24398  }
 24399  
 24400  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
 24401  //
 24402  // Solidity: function ton() constant returns(address)
 24403  func (_SeigManager *SeigManagerSession) Ton() (common.Address, error) {
 24404  	return _SeigManager.Contract.Ton(&_SeigManager.CallOpts)
 24405  }
 24406  
 24407  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
 24408  //
 24409  // Solidity: function ton() constant returns(address)
 24410  func (_SeigManager *SeigManagerCallerSession) Ton() (common.Address, error) {
 24411  	return _SeigManager.Contract.Ton(&_SeigManager.CallOpts)
 24412  }
 24413  
 24414  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
 24415  //
 24416  // Solidity: function tot() constant returns(address)
 24417  func (_SeigManager *SeigManagerCaller) Tot(opts *bind.CallOpts) (common.Address, error) {
 24418  	var (
 24419  		ret0 = new(common.Address)
 24420  	)
 24421  	out := ret0
 24422  	err := _SeigManager.contract.Call(opts, out, "tot")
 24423  	return *ret0, err
 24424  }
 24425  
 24426  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
 24427  //
 24428  // Solidity: function tot() constant returns(address)
 24429  func (_SeigManager *SeigManagerSession) Tot() (common.Address, error) {
 24430  	return _SeigManager.Contract.Tot(&_SeigManager.CallOpts)
 24431  }
 24432  
 24433  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
 24434  //
 24435  // Solidity: function tot() constant returns(address)
 24436  func (_SeigManager *SeigManagerCallerSession) Tot() (common.Address, error) {
 24437  	return _SeigManager.Contract.Tot(&_SeigManager.CallOpts)
 24438  }
 24439  
 24440  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
 24441  //
 24442  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
 24443  func (_SeigManager *SeigManagerCaller) UncomittedStakeOf(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 24444  	var (
 24445  		ret0 = new(*big.Int)
 24446  	)
 24447  	out := ret0
 24448  	err := _SeigManager.contract.Call(opts, out, "uncomittedStakeOf", rootchain, account)
 24449  	return *ret0, err
 24450  }
 24451  
 24452  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
 24453  //
 24454  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
 24455  func (_SeigManager *SeigManagerSession) UncomittedStakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 24456  	return _SeigManager.Contract.UncomittedStakeOf(&_SeigManager.CallOpts, rootchain, account)
 24457  }
 24458  
 24459  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
 24460  //
 24461  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
 24462  func (_SeigManager *SeigManagerCallerSession) UncomittedStakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 24463  	return _SeigManager.Contract.UncomittedStakeOf(&_SeigManager.CallOpts, rootchain, account)
 24464  }
 24465  
 24466  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
 24467  //
 24468  // Solidity: function unpausedBlock() constant returns(uint256)
 24469  func (_SeigManager *SeigManagerCaller) UnpausedBlock(opts *bind.CallOpts) (*big.Int, error) {
 24470  	var (
 24471  		ret0 = new(*big.Int)
 24472  	)
 24473  	out := ret0
 24474  	err := _SeigManager.contract.Call(opts, out, "unpausedBlock")
 24475  	return *ret0, err
 24476  }
 24477  
 24478  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
 24479  //
 24480  // Solidity: function unpausedBlock() constant returns(uint256)
 24481  func (_SeigManager *SeigManagerSession) UnpausedBlock() (*big.Int, error) {
 24482  	return _SeigManager.Contract.UnpausedBlock(&_SeigManager.CallOpts)
 24483  }
 24484  
 24485  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
 24486  //
 24487  // Solidity: function unpausedBlock() constant returns(uint256)
 24488  func (_SeigManager *SeigManagerCallerSession) UnpausedBlock() (*big.Int, error) {
 24489  	return _SeigManager.Contract.UnpausedBlock(&_SeigManager.CallOpts)
 24490  }
 24491  
 24492  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 24493  //
 24494  // Solidity: function wton() constant returns(address)
 24495  func (_SeigManager *SeigManagerCaller) Wton(opts *bind.CallOpts) (common.Address, error) {
 24496  	var (
 24497  		ret0 = new(common.Address)
 24498  	)
 24499  	out := ret0
 24500  	err := _SeigManager.contract.Call(opts, out, "wton")
 24501  	return *ret0, err
 24502  }
 24503  
 24504  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 24505  //
 24506  // Solidity: function wton() constant returns(address)
 24507  func (_SeigManager *SeigManagerSession) Wton() (common.Address, error) {
 24508  	return _SeigManager.Contract.Wton(&_SeigManager.CallOpts)
 24509  }
 24510  
 24511  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 24512  //
 24513  // Solidity: function wton() constant returns(address)
 24514  func (_SeigManager *SeigManagerCallerSession) Wton() (common.Address, error) {
 24515  	return _SeigManager.Contract.Wton(&_SeigManager.CallOpts)
 24516  }
 24517  
 24518  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 24519  //
 24520  // Solidity: function addPauser(address account) returns()
 24521  func (_SeigManager *SeigManagerTransactor) AddPauser(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 24522  	return _SeigManager.contract.Transact(opts, "addPauser", account)
 24523  }
 24524  
 24525  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 24526  //
 24527  // Solidity: function addPauser(address account) returns()
 24528  func (_SeigManager *SeigManagerSession) AddPauser(account common.Address) (*types.Transaction, error) {
 24529  	return _SeigManager.Contract.AddPauser(&_SeigManager.TransactOpts, account)
 24530  }
 24531  
 24532  // AddPauser is a paid mutator transaction binding the contract method 0x82dc1ec4.
 24533  //
 24534  // Solidity: function addPauser(address account) returns()
 24535  func (_SeigManager *SeigManagerTransactorSession) AddPauser(account common.Address) (*types.Transaction, error) {
 24536  	return _SeigManager.Contract.AddPauser(&_SeigManager.TransactOpts, account)
 24537  }
 24538  
 24539  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
 24540  //
 24541  // Solidity: function deployCoinage(address rootchain) returns(bool)
 24542  func (_SeigManager *SeigManagerTransactor) DeployCoinage(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
 24543  	return _SeigManager.contract.Transact(opts, "deployCoinage", rootchain)
 24544  }
 24545  
 24546  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
 24547  //
 24548  // Solidity: function deployCoinage(address rootchain) returns(bool)
 24549  func (_SeigManager *SeigManagerSession) DeployCoinage(rootchain common.Address) (*types.Transaction, error) {
 24550  	return _SeigManager.Contract.DeployCoinage(&_SeigManager.TransactOpts, rootchain)
 24551  }
 24552  
 24553  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
 24554  //
 24555  // Solidity: function deployCoinage(address rootchain) returns(bool)
 24556  func (_SeigManager *SeigManagerTransactorSession) DeployCoinage(rootchain common.Address) (*types.Transaction, error) {
 24557  	return _SeigManager.Contract.DeployCoinage(&_SeigManager.TransactOpts, rootchain)
 24558  }
 24559  
 24560  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
 24561  //
 24562  // Solidity: function onCommit() returns(bool)
 24563  func (_SeigManager *SeigManagerTransactor) OnCommit(opts *bind.TransactOpts) (*types.Transaction, error) {
 24564  	return _SeigManager.contract.Transact(opts, "onCommit")
 24565  }
 24566  
 24567  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
 24568  //
 24569  // Solidity: function onCommit() returns(bool)
 24570  func (_SeigManager *SeigManagerSession) OnCommit() (*types.Transaction, error) {
 24571  	return _SeigManager.Contract.OnCommit(&_SeigManager.TransactOpts)
 24572  }
 24573  
 24574  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
 24575  //
 24576  // Solidity: function onCommit() returns(bool)
 24577  func (_SeigManager *SeigManagerTransactorSession) OnCommit() (*types.Transaction, error) {
 24578  	return _SeigManager.Contract.OnCommit(&_SeigManager.TransactOpts)
 24579  }
 24580  
 24581  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 24582  //
 24583  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
 24584  func (_SeigManager *SeigManagerTransactor) OnDeposit(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 24585  	return _SeigManager.contract.Transact(opts, "onDeposit", rootchain, account, amount)
 24586  }
 24587  
 24588  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 24589  //
 24590  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
 24591  func (_SeigManager *SeigManagerSession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 24592  	return _SeigManager.Contract.OnDeposit(&_SeigManager.TransactOpts, rootchain, account, amount)
 24593  }
 24594  
 24595  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 24596  //
 24597  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
 24598  func (_SeigManager *SeigManagerTransactorSession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 24599  	return _SeigManager.Contract.OnDeposit(&_SeigManager.TransactOpts, rootchain, account, amount)
 24600  }
 24601  
 24602  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 24603  //
 24604  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
 24605  func (_SeigManager *SeigManagerTransactor) OnTransfer(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 24606  	return _SeigManager.contract.Transact(opts, "onTransfer", sender, recipient, amount)
 24607  }
 24608  
 24609  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 24610  //
 24611  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
 24612  func (_SeigManager *SeigManagerSession) OnTransfer(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 24613  	return _SeigManager.Contract.OnTransfer(&_SeigManager.TransactOpts, sender, recipient, amount)
 24614  }
 24615  
 24616  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 24617  //
 24618  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
 24619  func (_SeigManager *SeigManagerTransactorSession) OnTransfer(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 24620  	return _SeigManager.Contract.OnTransfer(&_SeigManager.TransactOpts, sender, recipient, amount)
 24621  }
 24622  
 24623  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 24624  //
 24625  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
 24626  func (_SeigManager *SeigManagerTransactor) OnWithdraw(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 24627  	return _SeigManager.contract.Transact(opts, "onWithdraw", rootchain, account, amount)
 24628  }
 24629  
 24630  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 24631  //
 24632  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
 24633  func (_SeigManager *SeigManagerSession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 24634  	return _SeigManager.Contract.OnWithdraw(&_SeigManager.TransactOpts, rootchain, account, amount)
 24635  }
 24636  
 24637  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 24638  //
 24639  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
 24640  func (_SeigManager *SeigManagerTransactorSession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 24641  	return _SeigManager.Contract.OnWithdraw(&_SeigManager.TransactOpts, rootchain, account, amount)
 24642  }
 24643  
 24644  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 24645  //
 24646  // Solidity: function pause() returns()
 24647  func (_SeigManager *SeigManagerTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 24648  	return _SeigManager.contract.Transact(opts, "pause")
 24649  }
 24650  
 24651  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 24652  //
 24653  // Solidity: function pause() returns()
 24654  func (_SeigManager *SeigManagerSession) Pause() (*types.Transaction, error) {
 24655  	return _SeigManager.Contract.Pause(&_SeigManager.TransactOpts)
 24656  }
 24657  
 24658  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 24659  //
 24660  // Solidity: function pause() returns()
 24661  func (_SeigManager *SeigManagerTransactorSession) Pause() (*types.Transaction, error) {
 24662  	return _SeigManager.Contract.Pause(&_SeigManager.TransactOpts)
 24663  }
 24664  
 24665  // RenounceMinter is a paid mutator transaction binding the contract method 0x5f112c68.
 24666  //
 24667  // Solidity: function renounceMinter(address target) returns()
 24668  func (_SeigManager *SeigManagerTransactor) RenounceMinter(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) {
 24669  	return _SeigManager.contract.Transact(opts, "renounceMinter", target)
 24670  }
 24671  
 24672  // RenounceMinter is a paid mutator transaction binding the contract method 0x5f112c68.
 24673  //
 24674  // Solidity: function renounceMinter(address target) returns()
 24675  func (_SeigManager *SeigManagerSession) RenounceMinter(target common.Address) (*types.Transaction, error) {
 24676  	return _SeigManager.Contract.RenounceMinter(&_SeigManager.TransactOpts, target)
 24677  }
 24678  
 24679  // RenounceMinter is a paid mutator transaction binding the contract method 0x5f112c68.
 24680  //
 24681  // Solidity: function renounceMinter(address target) returns()
 24682  func (_SeigManager *SeigManagerTransactorSession) RenounceMinter(target common.Address) (*types.Transaction, error) {
 24683  	return _SeigManager.Contract.RenounceMinter(&_SeigManager.TransactOpts, target)
 24684  }
 24685  
 24686  // RenounceOwnership is a paid mutator transaction binding the contract method 0x38bf3cfa.
 24687  //
 24688  // Solidity: function renounceOwnership(address target) returns()
 24689  func (_SeigManager *SeigManagerTransactor) RenounceOwnership(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) {
 24690  	return _SeigManager.contract.Transact(opts, "renounceOwnership", target)
 24691  }
 24692  
 24693  // RenounceOwnership is a paid mutator transaction binding the contract method 0x38bf3cfa.
 24694  //
 24695  // Solidity: function renounceOwnership(address target) returns()
 24696  func (_SeigManager *SeigManagerSession) RenounceOwnership(target common.Address) (*types.Transaction, error) {
 24697  	return _SeigManager.Contract.RenounceOwnership(&_SeigManager.TransactOpts, target)
 24698  }
 24699  
 24700  // RenounceOwnership is a paid mutator transaction binding the contract method 0x38bf3cfa.
 24701  //
 24702  // Solidity: function renounceOwnership(address target) returns()
 24703  func (_SeigManager *SeigManagerTransactorSession) RenounceOwnership(target common.Address) (*types.Transaction, error) {
 24704  	return _SeigManager.Contract.RenounceOwnership(&_SeigManager.TransactOpts, target)
 24705  }
 24706  
 24707  // RenounceOwnership0 is a paid mutator transaction binding the contract method 0x715018a6.
 24708  //
 24709  // Solidity: function renounceOwnership() returns()
 24710  func (_SeigManager *SeigManagerTransactor) RenounceOwnership0(opts *bind.TransactOpts) (*types.Transaction, error) {
 24711  	return _SeigManager.contract.Transact(opts, "renounceOwnership0")
 24712  }
 24713  
 24714  // RenounceOwnership0 is a paid mutator transaction binding the contract method 0x715018a6.
 24715  //
 24716  // Solidity: function renounceOwnership() returns()
 24717  func (_SeigManager *SeigManagerSession) RenounceOwnership0() (*types.Transaction, error) {
 24718  	return _SeigManager.Contract.RenounceOwnership0(&_SeigManager.TransactOpts)
 24719  }
 24720  
 24721  // RenounceOwnership0 is a paid mutator transaction binding the contract method 0x715018a6.
 24722  //
 24723  // Solidity: function renounceOwnership() returns()
 24724  func (_SeigManager *SeigManagerTransactorSession) RenounceOwnership0() (*types.Transaction, error) {
 24725  	return _SeigManager.Contract.RenounceOwnership0(&_SeigManager.TransactOpts)
 24726  }
 24727  
 24728  // RenouncePauser is a paid mutator transaction binding the contract method 0x41eb24bb.
 24729  //
 24730  // Solidity: function renouncePauser(address target) returns()
 24731  func (_SeigManager *SeigManagerTransactor) RenouncePauser(opts *bind.TransactOpts, target common.Address) (*types.Transaction, error) {
 24732  	return _SeigManager.contract.Transact(opts, "renouncePauser", target)
 24733  }
 24734  
 24735  // RenouncePauser is a paid mutator transaction binding the contract method 0x41eb24bb.
 24736  //
 24737  // Solidity: function renouncePauser(address target) returns()
 24738  func (_SeigManager *SeigManagerSession) RenouncePauser(target common.Address) (*types.Transaction, error) {
 24739  	return _SeigManager.Contract.RenouncePauser(&_SeigManager.TransactOpts, target)
 24740  }
 24741  
 24742  // RenouncePauser is a paid mutator transaction binding the contract method 0x41eb24bb.
 24743  //
 24744  // Solidity: function renouncePauser(address target) returns()
 24745  func (_SeigManager *SeigManagerTransactorSession) RenouncePauser(target common.Address) (*types.Transaction, error) {
 24746  	return _SeigManager.Contract.RenouncePauser(&_SeigManager.TransactOpts, target)
 24747  }
 24748  
 24749  // RenouncePauser0 is a paid mutator transaction binding the contract method 0x6ef8d66d.
 24750  //
 24751  // Solidity: function renouncePauser() returns()
 24752  func (_SeigManager *SeigManagerTransactor) RenouncePauser0(opts *bind.TransactOpts) (*types.Transaction, error) {
 24753  	return _SeigManager.contract.Transact(opts, "renouncePauser0")
 24754  }
 24755  
 24756  // RenouncePauser0 is a paid mutator transaction binding the contract method 0x6ef8d66d.
 24757  //
 24758  // Solidity: function renouncePauser() returns()
 24759  func (_SeigManager *SeigManagerSession) RenouncePauser0() (*types.Transaction, error) {
 24760  	return _SeigManager.Contract.RenouncePauser0(&_SeigManager.TransactOpts)
 24761  }
 24762  
 24763  // RenouncePauser0 is a paid mutator transaction binding the contract method 0x6ef8d66d.
 24764  //
 24765  // Solidity: function renouncePauser() returns()
 24766  func (_SeigManager *SeigManagerTransactorSession) RenouncePauser0() (*types.Transaction, error) {
 24767  	return _SeigManager.Contract.RenouncePauser0(&_SeigManager.TransactOpts)
 24768  }
 24769  
 24770  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
 24771  //
 24772  // Solidity: function setCommissionRate(address rootchain, uint256 commissionRate, bool isCommissionRateNegative) returns(bool)
 24773  func (_SeigManager *SeigManagerTransactor) SetCommissionRate(opts *bind.TransactOpts, rootchain common.Address, commissionRate *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
 24774  	return _SeigManager.contract.Transact(opts, "setCommissionRate", rootchain, commissionRate, isCommissionRateNegative)
 24775  }
 24776  
 24777  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
 24778  //
 24779  // Solidity: function setCommissionRate(address rootchain, uint256 commissionRate, bool isCommissionRateNegative) returns(bool)
 24780  func (_SeigManager *SeigManagerSession) SetCommissionRate(rootchain common.Address, commissionRate *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
 24781  	return _SeigManager.Contract.SetCommissionRate(&_SeigManager.TransactOpts, rootchain, commissionRate, isCommissionRateNegative)
 24782  }
 24783  
 24784  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
 24785  //
 24786  // Solidity: function setCommissionRate(address rootchain, uint256 commissionRate, bool isCommissionRateNegative) returns(bool)
 24787  func (_SeigManager *SeigManagerTransactorSession) SetCommissionRate(rootchain common.Address, commissionRate *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
 24788  	return _SeigManager.Contract.SetCommissionRate(&_SeigManager.TransactOpts, rootchain, commissionRate, isCommissionRateNegative)
 24789  }
 24790  
 24791  // SetPowerTON is a paid mutator transaction binding the contract method 0x41813020.
 24792  //
 24793  // Solidity: function setPowerTON(address powerton) returns()
 24794  func (_SeigManager *SeigManagerTransactor) SetPowerTON(opts *bind.TransactOpts, powerton common.Address) (*types.Transaction, error) {
 24795  	return _SeigManager.contract.Transact(opts, "setPowerTON", powerton)
 24796  }
 24797  
 24798  // SetPowerTON is a paid mutator transaction binding the contract method 0x41813020.
 24799  //
 24800  // Solidity: function setPowerTON(address powerton) returns()
 24801  func (_SeigManager *SeigManagerSession) SetPowerTON(powerton common.Address) (*types.Transaction, error) {
 24802  	return _SeigManager.Contract.SetPowerTON(&_SeigManager.TransactOpts, powerton)
 24803  }
 24804  
 24805  // SetPowerTON is a paid mutator transaction binding the contract method 0x41813020.
 24806  //
 24807  // Solidity: function setPowerTON(address powerton) returns()
 24808  func (_SeigManager *SeigManagerTransactorSession) SetPowerTON(powerton common.Address) (*types.Transaction, error) {
 24809  	return _SeigManager.Contract.SetPowerTON(&_SeigManager.TransactOpts, powerton)
 24810  }
 24811  
 24812  // TransferOwnership is a paid mutator transaction binding the contract method 0x6d435421.
 24813  //
 24814  // Solidity: function transferOwnership(address target, address newOwner) returns()
 24815  func (_SeigManager *SeigManagerTransactor) TransferOwnership(opts *bind.TransactOpts, target common.Address, newOwner common.Address) (*types.Transaction, error) {
 24816  	return _SeigManager.contract.Transact(opts, "transferOwnership", target, newOwner)
 24817  }
 24818  
 24819  // TransferOwnership is a paid mutator transaction binding the contract method 0x6d435421.
 24820  //
 24821  // Solidity: function transferOwnership(address target, address newOwner) returns()
 24822  func (_SeigManager *SeigManagerSession) TransferOwnership(target common.Address, newOwner common.Address) (*types.Transaction, error) {
 24823  	return _SeigManager.Contract.TransferOwnership(&_SeigManager.TransactOpts, target, newOwner)
 24824  }
 24825  
 24826  // TransferOwnership is a paid mutator transaction binding the contract method 0x6d435421.
 24827  //
 24828  // Solidity: function transferOwnership(address target, address newOwner) returns()
 24829  func (_SeigManager *SeigManagerTransactorSession) TransferOwnership(target common.Address, newOwner common.Address) (*types.Transaction, error) {
 24830  	return _SeigManager.Contract.TransferOwnership(&_SeigManager.TransactOpts, target, newOwner)
 24831  }
 24832  
 24833  // TransferOwnership0 is a paid mutator transaction binding the contract method 0xf2fde38b.
 24834  //
 24835  // Solidity: function transferOwnership(address newOwner) returns()
 24836  func (_SeigManager *SeigManagerTransactor) TransferOwnership0(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 24837  	return _SeigManager.contract.Transact(opts, "transferOwnership0", newOwner)
 24838  }
 24839  
 24840  // TransferOwnership0 is a paid mutator transaction binding the contract method 0xf2fde38b.
 24841  //
 24842  // Solidity: function transferOwnership(address newOwner) returns()
 24843  func (_SeigManager *SeigManagerSession) TransferOwnership0(newOwner common.Address) (*types.Transaction, error) {
 24844  	return _SeigManager.Contract.TransferOwnership0(&_SeigManager.TransactOpts, newOwner)
 24845  }
 24846  
 24847  // TransferOwnership0 is a paid mutator transaction binding the contract method 0xf2fde38b.
 24848  //
 24849  // Solidity: function transferOwnership(address newOwner) returns()
 24850  func (_SeigManager *SeigManagerTransactorSession) TransferOwnership0(newOwner common.Address) (*types.Transaction, error) {
 24851  	return _SeigManager.Contract.TransferOwnership0(&_SeigManager.TransactOpts, newOwner)
 24852  }
 24853  
 24854  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 24855  //
 24856  // Solidity: function unpause() returns()
 24857  func (_SeigManager *SeigManagerTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 24858  	return _SeigManager.contract.Transact(opts, "unpause")
 24859  }
 24860  
 24861  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 24862  //
 24863  // Solidity: function unpause() returns()
 24864  func (_SeigManager *SeigManagerSession) Unpause() (*types.Transaction, error) {
 24865  	return _SeigManager.Contract.Unpause(&_SeigManager.TransactOpts)
 24866  }
 24867  
 24868  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 24869  //
 24870  // Solidity: function unpause() returns()
 24871  func (_SeigManager *SeigManagerTransactorSession) Unpause() (*types.Transaction, error) {
 24872  	return _SeigManager.Contract.Unpause(&_SeigManager.TransactOpts)
 24873  }
 24874  
 24875  // SeigManagerCoinageCreatedIterator is returned from FilterCoinageCreated and is used to iterate over the raw logs and unpacked data for CoinageCreated events raised by the SeigManager contract.
 24876  type SeigManagerCoinageCreatedIterator struct {
 24877  	Event *SeigManagerCoinageCreated // Event containing the contract specifics and raw log
 24878  
 24879  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24880  	event    string              // Event name to use for unpacking event data
 24881  
 24882  	logs chan types.Log        // Log channel receiving the found contract events
 24883  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 24884  	done bool                  // Whether the subscription completed delivering logs
 24885  	fail error                 // Occurred error to stop iteration
 24886  }
 24887  
 24888  // Next advances the iterator to the subsequent event, returning whether there
 24889  // are any more events found. In case of a retrieval or parsing error, false is
 24890  // returned and Error() can be queried for the exact failure.
 24891  func (it *SeigManagerCoinageCreatedIterator) Next() bool {
 24892  	// If the iterator failed, stop iterating
 24893  	if it.fail != nil {
 24894  		return false
 24895  	}
 24896  	// If the iterator completed, deliver directly whatever's available
 24897  	if it.done {
 24898  		select {
 24899  		case log := <-it.logs:
 24900  			it.Event = new(SeigManagerCoinageCreated)
 24901  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24902  				it.fail = err
 24903  				return false
 24904  			}
 24905  			it.Event.Raw = log
 24906  			return true
 24907  
 24908  		default:
 24909  			return false
 24910  		}
 24911  	}
 24912  	// Iterator still in progress, wait for either a data or an error event
 24913  	select {
 24914  	case log := <-it.logs:
 24915  		it.Event = new(SeigManagerCoinageCreated)
 24916  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24917  			it.fail = err
 24918  			return false
 24919  		}
 24920  		it.Event.Raw = log
 24921  		return true
 24922  
 24923  	case err := <-it.sub.Err():
 24924  		it.done = true
 24925  		it.fail = err
 24926  		return it.Next()
 24927  	}
 24928  }
 24929  
 24930  // Error returns any retrieval or parsing error occurred during filtering.
 24931  func (it *SeigManagerCoinageCreatedIterator) Error() error {
 24932  	return it.fail
 24933  }
 24934  
 24935  // Close terminates the iteration process, releasing any pending underlying
 24936  // resources.
 24937  func (it *SeigManagerCoinageCreatedIterator) Close() error {
 24938  	it.sub.Unsubscribe()
 24939  	return nil
 24940  }
 24941  
 24942  // SeigManagerCoinageCreated represents a CoinageCreated event raised by the SeigManager contract.
 24943  type SeigManagerCoinageCreated struct {
 24944  	Rootchain common.Address
 24945  	Coinage   common.Address
 24946  	Raw       types.Log // Blockchain specific contextual infos
 24947  }
 24948  
 24949  // FilterCoinageCreated is a free log retrieval operation binding the contract event 0x124cac1e701d08d642237ad795ddd275670e12f2cd956a26709721c68084c2b2.
 24950  //
 24951  // Solidity: event CoinageCreated(address indexed rootchain, address coinage)
 24952  func (_SeigManager *SeigManagerFilterer) FilterCoinageCreated(opts *bind.FilterOpts, rootchain []common.Address) (*SeigManagerCoinageCreatedIterator, error) {
 24953  
 24954  	var rootchainRule []interface{}
 24955  	for _, rootchainItem := range rootchain {
 24956  		rootchainRule = append(rootchainRule, rootchainItem)
 24957  	}
 24958  
 24959  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "CoinageCreated", rootchainRule)
 24960  	if err != nil {
 24961  		return nil, err
 24962  	}
 24963  	return &SeigManagerCoinageCreatedIterator{contract: _SeigManager.contract, event: "CoinageCreated", logs: logs, sub: sub}, nil
 24964  }
 24965  
 24966  // WatchCoinageCreated is a free log subscription operation binding the contract event 0x124cac1e701d08d642237ad795ddd275670e12f2cd956a26709721c68084c2b2.
 24967  //
 24968  // Solidity: event CoinageCreated(address indexed rootchain, address coinage)
 24969  func (_SeigManager *SeigManagerFilterer) WatchCoinageCreated(opts *bind.WatchOpts, sink chan<- *SeigManagerCoinageCreated, rootchain []common.Address) (event.Subscription, error) {
 24970  
 24971  	var rootchainRule []interface{}
 24972  	for _, rootchainItem := range rootchain {
 24973  		rootchainRule = append(rootchainRule, rootchainItem)
 24974  	}
 24975  
 24976  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "CoinageCreated", rootchainRule)
 24977  	if err != nil {
 24978  		return nil, err
 24979  	}
 24980  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24981  		defer sub.Unsubscribe()
 24982  		for {
 24983  			select {
 24984  			case log := <-logs:
 24985  				// New log arrived, parse the event and forward to the user
 24986  				event := new(SeigManagerCoinageCreated)
 24987  				if err := _SeigManager.contract.UnpackLog(event, "CoinageCreated", log); err != nil {
 24988  					return err
 24989  				}
 24990  				event.Raw = log
 24991  
 24992  				select {
 24993  				case sink <- event:
 24994  				case err := <-sub.Err():
 24995  					return err
 24996  				case <-quit:
 24997  					return nil
 24998  				}
 24999  			case err := <-sub.Err():
 25000  				return err
 25001  			case <-quit:
 25002  				return nil
 25003  			}
 25004  		}
 25005  	}), nil
 25006  }
 25007  
 25008  // ParseCoinageCreated is a log parse operation binding the contract event 0x124cac1e701d08d642237ad795ddd275670e12f2cd956a26709721c68084c2b2.
 25009  //
 25010  // Solidity: event CoinageCreated(address indexed rootchain, address coinage)
 25011  func (_SeigManager *SeigManagerFilterer) ParseCoinageCreated(log types.Log) (*SeigManagerCoinageCreated, error) {
 25012  	event := new(SeigManagerCoinageCreated)
 25013  	if err := _SeigManager.contract.UnpackLog(event, "CoinageCreated", log); err != nil {
 25014  		return nil, err
 25015  	}
 25016  	return event, nil
 25017  }
 25018  
 25019  // SeigManagerComittedIterator is returned from FilterComitted and is used to iterate over the raw logs and unpacked data for Comitted events raised by the SeigManager contract.
 25020  type SeigManagerComittedIterator struct {
 25021  	Event *SeigManagerComitted // Event containing the contract specifics and raw log
 25022  
 25023  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25024  	event    string              // Event name to use for unpacking event data
 25025  
 25026  	logs chan types.Log        // Log channel receiving the found contract events
 25027  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25028  	done bool                  // Whether the subscription completed delivering logs
 25029  	fail error                 // Occurred error to stop iteration
 25030  }
 25031  
 25032  // Next advances the iterator to the subsequent event, returning whether there
 25033  // are any more events found. In case of a retrieval or parsing error, false is
 25034  // returned and Error() can be queried for the exact failure.
 25035  func (it *SeigManagerComittedIterator) Next() bool {
 25036  	// If the iterator failed, stop iterating
 25037  	if it.fail != nil {
 25038  		return false
 25039  	}
 25040  	// If the iterator completed, deliver directly whatever's available
 25041  	if it.done {
 25042  		select {
 25043  		case log := <-it.logs:
 25044  			it.Event = new(SeigManagerComitted)
 25045  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25046  				it.fail = err
 25047  				return false
 25048  			}
 25049  			it.Event.Raw = log
 25050  			return true
 25051  
 25052  		default:
 25053  			return false
 25054  		}
 25055  	}
 25056  	// Iterator still in progress, wait for either a data or an error event
 25057  	select {
 25058  	case log := <-it.logs:
 25059  		it.Event = new(SeigManagerComitted)
 25060  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25061  			it.fail = err
 25062  			return false
 25063  		}
 25064  		it.Event.Raw = log
 25065  		return true
 25066  
 25067  	case err := <-it.sub.Err():
 25068  		it.done = true
 25069  		it.fail = err
 25070  		return it.Next()
 25071  	}
 25072  }
 25073  
 25074  // Error returns any retrieval or parsing error occurred during filtering.
 25075  func (it *SeigManagerComittedIterator) Error() error {
 25076  	return it.fail
 25077  }
 25078  
 25079  // Close terminates the iteration process, releasing any pending underlying
 25080  // resources.
 25081  func (it *SeigManagerComittedIterator) Close() error {
 25082  	it.sub.Unsubscribe()
 25083  	return nil
 25084  }
 25085  
 25086  // SeigManagerComitted represents a Comitted event raised by the SeigManager contract.
 25087  type SeigManagerComitted struct {
 25088  	Rootchain common.Address
 25089  	Raw       types.Log // Blockchain specific contextual infos
 25090  }
 25091  
 25092  // FilterComitted is a free log retrieval operation binding the contract event 0x521cc65179761533a7c8d7a973291dd7baebb99a67edf5ef78e9c2b61a533d95.
 25093  //
 25094  // Solidity: event Comitted(address indexed rootchain)
 25095  func (_SeigManager *SeigManagerFilterer) FilterComitted(opts *bind.FilterOpts, rootchain []common.Address) (*SeigManagerComittedIterator, error) {
 25096  
 25097  	var rootchainRule []interface{}
 25098  	for _, rootchainItem := range rootchain {
 25099  		rootchainRule = append(rootchainRule, rootchainItem)
 25100  	}
 25101  
 25102  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "Comitted", rootchainRule)
 25103  	if err != nil {
 25104  		return nil, err
 25105  	}
 25106  	return &SeigManagerComittedIterator{contract: _SeigManager.contract, event: "Comitted", logs: logs, sub: sub}, nil
 25107  }
 25108  
 25109  // WatchComitted is a free log subscription operation binding the contract event 0x521cc65179761533a7c8d7a973291dd7baebb99a67edf5ef78e9c2b61a533d95.
 25110  //
 25111  // Solidity: event Comitted(address indexed rootchain)
 25112  func (_SeigManager *SeigManagerFilterer) WatchComitted(opts *bind.WatchOpts, sink chan<- *SeigManagerComitted, rootchain []common.Address) (event.Subscription, error) {
 25113  
 25114  	var rootchainRule []interface{}
 25115  	for _, rootchainItem := range rootchain {
 25116  		rootchainRule = append(rootchainRule, rootchainItem)
 25117  	}
 25118  
 25119  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "Comitted", rootchainRule)
 25120  	if err != nil {
 25121  		return nil, err
 25122  	}
 25123  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25124  		defer sub.Unsubscribe()
 25125  		for {
 25126  			select {
 25127  			case log := <-logs:
 25128  				// New log arrived, parse the event and forward to the user
 25129  				event := new(SeigManagerComitted)
 25130  				if err := _SeigManager.contract.UnpackLog(event, "Comitted", log); err != nil {
 25131  					return err
 25132  				}
 25133  				event.Raw = log
 25134  
 25135  				select {
 25136  				case sink <- event:
 25137  				case err := <-sub.Err():
 25138  					return err
 25139  				case <-quit:
 25140  					return nil
 25141  				}
 25142  			case err := <-sub.Err():
 25143  				return err
 25144  			case <-quit:
 25145  				return nil
 25146  			}
 25147  		}
 25148  	}), nil
 25149  }
 25150  
 25151  // ParseComitted is a log parse operation binding the contract event 0x521cc65179761533a7c8d7a973291dd7baebb99a67edf5ef78e9c2b61a533d95.
 25152  //
 25153  // Solidity: event Comitted(address indexed rootchain)
 25154  func (_SeigManager *SeigManagerFilterer) ParseComitted(log types.Log) (*SeigManagerComitted, error) {
 25155  	event := new(SeigManagerComitted)
 25156  	if err := _SeigManager.contract.UnpackLog(event, "Comitted", log); err != nil {
 25157  		return nil, err
 25158  	}
 25159  	return event, nil
 25160  }
 25161  
 25162  // SeigManagerCommissionRateSetIterator is returned from FilterCommissionRateSet and is used to iterate over the raw logs and unpacked data for CommissionRateSet events raised by the SeigManager contract.
 25163  type SeigManagerCommissionRateSetIterator struct {
 25164  	Event *SeigManagerCommissionRateSet // Event containing the contract specifics and raw log
 25165  
 25166  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25167  	event    string              // Event name to use for unpacking event data
 25168  
 25169  	logs chan types.Log        // Log channel receiving the found contract events
 25170  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25171  	done bool                  // Whether the subscription completed delivering logs
 25172  	fail error                 // Occurred error to stop iteration
 25173  }
 25174  
 25175  // Next advances the iterator to the subsequent event, returning whether there
 25176  // are any more events found. In case of a retrieval or parsing error, false is
 25177  // returned and Error() can be queried for the exact failure.
 25178  func (it *SeigManagerCommissionRateSetIterator) Next() bool {
 25179  	// If the iterator failed, stop iterating
 25180  	if it.fail != nil {
 25181  		return false
 25182  	}
 25183  	// If the iterator completed, deliver directly whatever's available
 25184  	if it.done {
 25185  		select {
 25186  		case log := <-it.logs:
 25187  			it.Event = new(SeigManagerCommissionRateSet)
 25188  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25189  				it.fail = err
 25190  				return false
 25191  			}
 25192  			it.Event.Raw = log
 25193  			return true
 25194  
 25195  		default:
 25196  			return false
 25197  		}
 25198  	}
 25199  	// Iterator still in progress, wait for either a data or an error event
 25200  	select {
 25201  	case log := <-it.logs:
 25202  		it.Event = new(SeigManagerCommissionRateSet)
 25203  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25204  			it.fail = err
 25205  			return false
 25206  		}
 25207  		it.Event.Raw = log
 25208  		return true
 25209  
 25210  	case err := <-it.sub.Err():
 25211  		it.done = true
 25212  		it.fail = err
 25213  		return it.Next()
 25214  	}
 25215  }
 25216  
 25217  // Error returns any retrieval or parsing error occurred during filtering.
 25218  func (it *SeigManagerCommissionRateSetIterator) Error() error {
 25219  	return it.fail
 25220  }
 25221  
 25222  // Close terminates the iteration process, releasing any pending underlying
 25223  // resources.
 25224  func (it *SeigManagerCommissionRateSetIterator) Close() error {
 25225  	it.sub.Unsubscribe()
 25226  	return nil
 25227  }
 25228  
 25229  // SeigManagerCommissionRateSet represents a CommissionRateSet event raised by the SeigManager contract.
 25230  type SeigManagerCommissionRateSet struct {
 25231  	Rootchain    common.Address
 25232  	PreviousRate *big.Int
 25233  	NewRate      *big.Int
 25234  	Raw          types.Log // Blockchain specific contextual infos
 25235  }
 25236  
 25237  // FilterCommissionRateSet is a free log retrieval operation binding the contract event 0x11841078e38c91feada06e1f8ded3697ab2dadc2583c52b14109b82ccd4f77d7.
 25238  //
 25239  // Solidity: event CommissionRateSet(address indexed rootchain, uint256 previousRate, uint256 newRate)
 25240  func (_SeigManager *SeigManagerFilterer) FilterCommissionRateSet(opts *bind.FilterOpts, rootchain []common.Address) (*SeigManagerCommissionRateSetIterator, error) {
 25241  
 25242  	var rootchainRule []interface{}
 25243  	for _, rootchainItem := range rootchain {
 25244  		rootchainRule = append(rootchainRule, rootchainItem)
 25245  	}
 25246  
 25247  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "CommissionRateSet", rootchainRule)
 25248  	if err != nil {
 25249  		return nil, err
 25250  	}
 25251  	return &SeigManagerCommissionRateSetIterator{contract: _SeigManager.contract, event: "CommissionRateSet", logs: logs, sub: sub}, nil
 25252  }
 25253  
 25254  // WatchCommissionRateSet is a free log subscription operation binding the contract event 0x11841078e38c91feada06e1f8ded3697ab2dadc2583c52b14109b82ccd4f77d7.
 25255  //
 25256  // Solidity: event CommissionRateSet(address indexed rootchain, uint256 previousRate, uint256 newRate)
 25257  func (_SeigManager *SeigManagerFilterer) WatchCommissionRateSet(opts *bind.WatchOpts, sink chan<- *SeigManagerCommissionRateSet, rootchain []common.Address) (event.Subscription, error) {
 25258  
 25259  	var rootchainRule []interface{}
 25260  	for _, rootchainItem := range rootchain {
 25261  		rootchainRule = append(rootchainRule, rootchainItem)
 25262  	}
 25263  
 25264  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "CommissionRateSet", rootchainRule)
 25265  	if err != nil {
 25266  		return nil, err
 25267  	}
 25268  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25269  		defer sub.Unsubscribe()
 25270  		for {
 25271  			select {
 25272  			case log := <-logs:
 25273  				// New log arrived, parse the event and forward to the user
 25274  				event := new(SeigManagerCommissionRateSet)
 25275  				if err := _SeigManager.contract.UnpackLog(event, "CommissionRateSet", log); err != nil {
 25276  					return err
 25277  				}
 25278  				event.Raw = log
 25279  
 25280  				select {
 25281  				case sink <- event:
 25282  				case err := <-sub.Err():
 25283  					return err
 25284  				case <-quit:
 25285  					return nil
 25286  				}
 25287  			case err := <-sub.Err():
 25288  				return err
 25289  			case <-quit:
 25290  				return nil
 25291  			}
 25292  		}
 25293  	}), nil
 25294  }
 25295  
 25296  // ParseCommissionRateSet is a log parse operation binding the contract event 0x11841078e38c91feada06e1f8ded3697ab2dadc2583c52b14109b82ccd4f77d7.
 25297  //
 25298  // Solidity: event CommissionRateSet(address indexed rootchain, uint256 previousRate, uint256 newRate)
 25299  func (_SeigManager *SeigManagerFilterer) ParseCommissionRateSet(log types.Log) (*SeigManagerCommissionRateSet, error) {
 25300  	event := new(SeigManagerCommissionRateSet)
 25301  	if err := _SeigManager.contract.UnpackLog(event, "CommissionRateSet", log); err != nil {
 25302  		return nil, err
 25303  	}
 25304  	return event, nil
 25305  }
 25306  
 25307  // SeigManagerCommitLog1Iterator is returned from FilterCommitLog1 and is used to iterate over the raw logs and unpacked data for CommitLog1 events raised by the SeigManager contract.
 25308  type SeigManagerCommitLog1Iterator struct {
 25309  	Event *SeigManagerCommitLog1 // Event containing the contract specifics and raw log
 25310  
 25311  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25312  	event    string              // Event name to use for unpacking event data
 25313  
 25314  	logs chan types.Log        // Log channel receiving the found contract events
 25315  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25316  	done bool                  // Whether the subscription completed delivering logs
 25317  	fail error                 // Occurred error to stop iteration
 25318  }
 25319  
 25320  // Next advances the iterator to the subsequent event, returning whether there
 25321  // are any more events found. In case of a retrieval or parsing error, false is
 25322  // returned and Error() can be queried for the exact failure.
 25323  func (it *SeigManagerCommitLog1Iterator) Next() bool {
 25324  	// If the iterator failed, stop iterating
 25325  	if it.fail != nil {
 25326  		return false
 25327  	}
 25328  	// If the iterator completed, deliver directly whatever's available
 25329  	if it.done {
 25330  		select {
 25331  		case log := <-it.logs:
 25332  			it.Event = new(SeigManagerCommitLog1)
 25333  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25334  				it.fail = err
 25335  				return false
 25336  			}
 25337  			it.Event.Raw = log
 25338  			return true
 25339  
 25340  		default:
 25341  			return false
 25342  		}
 25343  	}
 25344  	// Iterator still in progress, wait for either a data or an error event
 25345  	select {
 25346  	case log := <-it.logs:
 25347  		it.Event = new(SeigManagerCommitLog1)
 25348  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25349  			it.fail = err
 25350  			return false
 25351  		}
 25352  		it.Event.Raw = log
 25353  		return true
 25354  
 25355  	case err := <-it.sub.Err():
 25356  		it.done = true
 25357  		it.fail = err
 25358  		return it.Next()
 25359  	}
 25360  }
 25361  
 25362  // Error returns any retrieval or parsing error occurred during filtering.
 25363  func (it *SeigManagerCommitLog1Iterator) Error() error {
 25364  	return it.fail
 25365  }
 25366  
 25367  // Close terminates the iteration process, releasing any pending underlying
 25368  // resources.
 25369  func (it *SeigManagerCommitLog1Iterator) Close() error {
 25370  	it.sub.Unsubscribe()
 25371  	return nil
 25372  }
 25373  
 25374  // SeigManagerCommitLog1 represents a CommitLog1 event raised by the SeigManager contract.
 25375  type SeigManagerCommitLog1 struct {
 25376  	TotalStakedAmount *big.Int
 25377  	TotalSupplyOfWTON *big.Int
 25378  	PrevTotalSupply   *big.Int
 25379  	NextTotalSupply   *big.Int
 25380  	Raw               types.Log // Blockchain specific contextual infos
 25381  }
 25382  
 25383  // FilterCommitLog1 is a free log retrieval operation binding the contract event 0x41a79a497d1457df24c25ab99f22349ae9aef4468429f0a781216e8dcf80c628.
 25384  //
 25385  // Solidity: event CommitLog1(uint256 totalStakedAmount, uint256 totalSupplyOfWTON, uint256 prevTotalSupply, uint256 nextTotalSupply)
 25386  func (_SeigManager *SeigManagerFilterer) FilterCommitLog1(opts *bind.FilterOpts) (*SeigManagerCommitLog1Iterator, error) {
 25387  
 25388  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "CommitLog1")
 25389  	if err != nil {
 25390  		return nil, err
 25391  	}
 25392  	return &SeigManagerCommitLog1Iterator{contract: _SeigManager.contract, event: "CommitLog1", logs: logs, sub: sub}, nil
 25393  }
 25394  
 25395  // WatchCommitLog1 is a free log subscription operation binding the contract event 0x41a79a497d1457df24c25ab99f22349ae9aef4468429f0a781216e8dcf80c628.
 25396  //
 25397  // Solidity: event CommitLog1(uint256 totalStakedAmount, uint256 totalSupplyOfWTON, uint256 prevTotalSupply, uint256 nextTotalSupply)
 25398  func (_SeigManager *SeigManagerFilterer) WatchCommitLog1(opts *bind.WatchOpts, sink chan<- *SeigManagerCommitLog1) (event.Subscription, error) {
 25399  
 25400  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "CommitLog1")
 25401  	if err != nil {
 25402  		return nil, err
 25403  	}
 25404  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25405  		defer sub.Unsubscribe()
 25406  		for {
 25407  			select {
 25408  			case log := <-logs:
 25409  				// New log arrived, parse the event and forward to the user
 25410  				event := new(SeigManagerCommitLog1)
 25411  				if err := _SeigManager.contract.UnpackLog(event, "CommitLog1", log); err != nil {
 25412  					return err
 25413  				}
 25414  				event.Raw = log
 25415  
 25416  				select {
 25417  				case sink <- event:
 25418  				case err := <-sub.Err():
 25419  					return err
 25420  				case <-quit:
 25421  					return nil
 25422  				}
 25423  			case err := <-sub.Err():
 25424  				return err
 25425  			case <-quit:
 25426  				return nil
 25427  			}
 25428  		}
 25429  	}), nil
 25430  }
 25431  
 25432  // ParseCommitLog1 is a log parse operation binding the contract event 0x41a79a497d1457df24c25ab99f22349ae9aef4468429f0a781216e8dcf80c628.
 25433  //
 25434  // Solidity: event CommitLog1(uint256 totalStakedAmount, uint256 totalSupplyOfWTON, uint256 prevTotalSupply, uint256 nextTotalSupply)
 25435  func (_SeigManager *SeigManagerFilterer) ParseCommitLog1(log types.Log) (*SeigManagerCommitLog1, error) {
 25436  	event := new(SeigManagerCommitLog1)
 25437  	if err := _SeigManager.contract.UnpackLog(event, "CommitLog1", log); err != nil {
 25438  		return nil, err
 25439  	}
 25440  	return event, nil
 25441  }
 25442  
 25443  // SeigManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the SeigManager contract.
 25444  type SeigManagerOwnershipTransferredIterator struct {
 25445  	Event *SeigManagerOwnershipTransferred // Event containing the contract specifics and raw log
 25446  
 25447  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25448  	event    string              // Event name to use for unpacking event data
 25449  
 25450  	logs chan types.Log        // Log channel receiving the found contract events
 25451  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25452  	done bool                  // Whether the subscription completed delivering logs
 25453  	fail error                 // Occurred error to stop iteration
 25454  }
 25455  
 25456  // Next advances the iterator to the subsequent event, returning whether there
 25457  // are any more events found. In case of a retrieval or parsing error, false is
 25458  // returned and Error() can be queried for the exact failure.
 25459  func (it *SeigManagerOwnershipTransferredIterator) Next() bool {
 25460  	// If the iterator failed, stop iterating
 25461  	if it.fail != nil {
 25462  		return false
 25463  	}
 25464  	// If the iterator completed, deliver directly whatever's available
 25465  	if it.done {
 25466  		select {
 25467  		case log := <-it.logs:
 25468  			it.Event = new(SeigManagerOwnershipTransferred)
 25469  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25470  				it.fail = err
 25471  				return false
 25472  			}
 25473  			it.Event.Raw = log
 25474  			return true
 25475  
 25476  		default:
 25477  			return false
 25478  		}
 25479  	}
 25480  	// Iterator still in progress, wait for either a data or an error event
 25481  	select {
 25482  	case log := <-it.logs:
 25483  		it.Event = new(SeigManagerOwnershipTransferred)
 25484  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25485  			it.fail = err
 25486  			return false
 25487  		}
 25488  		it.Event.Raw = log
 25489  		return true
 25490  
 25491  	case err := <-it.sub.Err():
 25492  		it.done = true
 25493  		it.fail = err
 25494  		return it.Next()
 25495  	}
 25496  }
 25497  
 25498  // Error returns any retrieval or parsing error occurred during filtering.
 25499  func (it *SeigManagerOwnershipTransferredIterator) Error() error {
 25500  	return it.fail
 25501  }
 25502  
 25503  // Close terminates the iteration process, releasing any pending underlying
 25504  // resources.
 25505  func (it *SeigManagerOwnershipTransferredIterator) Close() error {
 25506  	it.sub.Unsubscribe()
 25507  	return nil
 25508  }
 25509  
 25510  // SeigManagerOwnershipTransferred represents a OwnershipTransferred event raised by the SeigManager contract.
 25511  type SeigManagerOwnershipTransferred struct {
 25512  	PreviousOwner common.Address
 25513  	NewOwner      common.Address
 25514  	Raw           types.Log // Blockchain specific contextual infos
 25515  }
 25516  
 25517  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 25518  //
 25519  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 25520  func (_SeigManager *SeigManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*SeigManagerOwnershipTransferredIterator, error) {
 25521  
 25522  	var previousOwnerRule []interface{}
 25523  	for _, previousOwnerItem := range previousOwner {
 25524  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 25525  	}
 25526  	var newOwnerRule []interface{}
 25527  	for _, newOwnerItem := range newOwner {
 25528  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 25529  	}
 25530  
 25531  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 25532  	if err != nil {
 25533  		return nil, err
 25534  	}
 25535  	return &SeigManagerOwnershipTransferredIterator{contract: _SeigManager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 25536  }
 25537  
 25538  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 25539  //
 25540  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 25541  func (_SeigManager *SeigManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *SeigManagerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 25542  
 25543  	var previousOwnerRule []interface{}
 25544  	for _, previousOwnerItem := range previousOwner {
 25545  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 25546  	}
 25547  	var newOwnerRule []interface{}
 25548  	for _, newOwnerItem := range newOwner {
 25549  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 25550  	}
 25551  
 25552  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 25553  	if err != nil {
 25554  		return nil, err
 25555  	}
 25556  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25557  		defer sub.Unsubscribe()
 25558  		for {
 25559  			select {
 25560  			case log := <-logs:
 25561  				// New log arrived, parse the event and forward to the user
 25562  				event := new(SeigManagerOwnershipTransferred)
 25563  				if err := _SeigManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 25564  					return err
 25565  				}
 25566  				event.Raw = log
 25567  
 25568  				select {
 25569  				case sink <- event:
 25570  				case err := <-sub.Err():
 25571  					return err
 25572  				case <-quit:
 25573  					return nil
 25574  				}
 25575  			case err := <-sub.Err():
 25576  				return err
 25577  			case <-quit:
 25578  				return nil
 25579  			}
 25580  		}
 25581  	}), nil
 25582  }
 25583  
 25584  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 25585  //
 25586  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 25587  func (_SeigManager *SeigManagerFilterer) ParseOwnershipTransferred(log types.Log) (*SeigManagerOwnershipTransferred, error) {
 25588  	event := new(SeigManagerOwnershipTransferred)
 25589  	if err := _SeigManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 25590  		return nil, err
 25591  	}
 25592  	return event, nil
 25593  }
 25594  
 25595  // SeigManagerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the SeigManager contract.
 25596  type SeigManagerPausedIterator struct {
 25597  	Event *SeigManagerPaused // Event containing the contract specifics and raw log
 25598  
 25599  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25600  	event    string              // Event name to use for unpacking event data
 25601  
 25602  	logs chan types.Log        // Log channel receiving the found contract events
 25603  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25604  	done bool                  // Whether the subscription completed delivering logs
 25605  	fail error                 // Occurred error to stop iteration
 25606  }
 25607  
 25608  // Next advances the iterator to the subsequent event, returning whether there
 25609  // are any more events found. In case of a retrieval or parsing error, false is
 25610  // returned and Error() can be queried for the exact failure.
 25611  func (it *SeigManagerPausedIterator) Next() bool {
 25612  	// If the iterator failed, stop iterating
 25613  	if it.fail != nil {
 25614  		return false
 25615  	}
 25616  	// If the iterator completed, deliver directly whatever's available
 25617  	if it.done {
 25618  		select {
 25619  		case log := <-it.logs:
 25620  			it.Event = new(SeigManagerPaused)
 25621  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25622  				it.fail = err
 25623  				return false
 25624  			}
 25625  			it.Event.Raw = log
 25626  			return true
 25627  
 25628  		default:
 25629  			return false
 25630  		}
 25631  	}
 25632  	// Iterator still in progress, wait for either a data or an error event
 25633  	select {
 25634  	case log := <-it.logs:
 25635  		it.Event = new(SeigManagerPaused)
 25636  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25637  			it.fail = err
 25638  			return false
 25639  		}
 25640  		it.Event.Raw = log
 25641  		return true
 25642  
 25643  	case err := <-it.sub.Err():
 25644  		it.done = true
 25645  		it.fail = err
 25646  		return it.Next()
 25647  	}
 25648  }
 25649  
 25650  // Error returns any retrieval or parsing error occurred during filtering.
 25651  func (it *SeigManagerPausedIterator) Error() error {
 25652  	return it.fail
 25653  }
 25654  
 25655  // Close terminates the iteration process, releasing any pending underlying
 25656  // resources.
 25657  func (it *SeigManagerPausedIterator) Close() error {
 25658  	it.sub.Unsubscribe()
 25659  	return nil
 25660  }
 25661  
 25662  // SeigManagerPaused represents a Paused event raised by the SeigManager contract.
 25663  type SeigManagerPaused struct {
 25664  	Account common.Address
 25665  	Raw     types.Log // Blockchain specific contextual infos
 25666  }
 25667  
 25668  // FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
 25669  //
 25670  // Solidity: event Paused(address account)
 25671  func (_SeigManager *SeigManagerFilterer) FilterPaused(opts *bind.FilterOpts) (*SeigManagerPausedIterator, error) {
 25672  
 25673  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "Paused")
 25674  	if err != nil {
 25675  		return nil, err
 25676  	}
 25677  	return &SeigManagerPausedIterator{contract: _SeigManager.contract, event: "Paused", logs: logs, sub: sub}, nil
 25678  }
 25679  
 25680  // WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
 25681  //
 25682  // Solidity: event Paused(address account)
 25683  func (_SeigManager *SeigManagerFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *SeigManagerPaused) (event.Subscription, error) {
 25684  
 25685  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "Paused")
 25686  	if err != nil {
 25687  		return nil, err
 25688  	}
 25689  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25690  		defer sub.Unsubscribe()
 25691  		for {
 25692  			select {
 25693  			case log := <-logs:
 25694  				// New log arrived, parse the event and forward to the user
 25695  				event := new(SeigManagerPaused)
 25696  				if err := _SeigManager.contract.UnpackLog(event, "Paused", log); err != nil {
 25697  					return err
 25698  				}
 25699  				event.Raw = log
 25700  
 25701  				select {
 25702  				case sink <- event:
 25703  				case err := <-sub.Err():
 25704  					return err
 25705  				case <-quit:
 25706  					return nil
 25707  				}
 25708  			case err := <-sub.Err():
 25709  				return err
 25710  			case <-quit:
 25711  				return nil
 25712  			}
 25713  		}
 25714  	}), nil
 25715  }
 25716  
 25717  // ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
 25718  //
 25719  // Solidity: event Paused(address account)
 25720  func (_SeigManager *SeigManagerFilterer) ParsePaused(log types.Log) (*SeigManagerPaused, error) {
 25721  	event := new(SeigManagerPaused)
 25722  	if err := _SeigManager.contract.UnpackLog(event, "Paused", log); err != nil {
 25723  		return nil, err
 25724  	}
 25725  	return event, nil
 25726  }
 25727  
 25728  // SeigManagerPauserAddedIterator is returned from FilterPauserAdded and is used to iterate over the raw logs and unpacked data for PauserAdded events raised by the SeigManager contract.
 25729  type SeigManagerPauserAddedIterator struct {
 25730  	Event *SeigManagerPauserAdded // Event containing the contract specifics and raw log
 25731  
 25732  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25733  	event    string              // Event name to use for unpacking event data
 25734  
 25735  	logs chan types.Log        // Log channel receiving the found contract events
 25736  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25737  	done bool                  // Whether the subscription completed delivering logs
 25738  	fail error                 // Occurred error to stop iteration
 25739  }
 25740  
 25741  // Next advances the iterator to the subsequent event, returning whether there
 25742  // are any more events found. In case of a retrieval or parsing error, false is
 25743  // returned and Error() can be queried for the exact failure.
 25744  func (it *SeigManagerPauserAddedIterator) Next() bool {
 25745  	// If the iterator failed, stop iterating
 25746  	if it.fail != nil {
 25747  		return false
 25748  	}
 25749  	// If the iterator completed, deliver directly whatever's available
 25750  	if it.done {
 25751  		select {
 25752  		case log := <-it.logs:
 25753  			it.Event = new(SeigManagerPauserAdded)
 25754  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25755  				it.fail = err
 25756  				return false
 25757  			}
 25758  			it.Event.Raw = log
 25759  			return true
 25760  
 25761  		default:
 25762  			return false
 25763  		}
 25764  	}
 25765  	// Iterator still in progress, wait for either a data or an error event
 25766  	select {
 25767  	case log := <-it.logs:
 25768  		it.Event = new(SeigManagerPauserAdded)
 25769  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25770  			it.fail = err
 25771  			return false
 25772  		}
 25773  		it.Event.Raw = log
 25774  		return true
 25775  
 25776  	case err := <-it.sub.Err():
 25777  		it.done = true
 25778  		it.fail = err
 25779  		return it.Next()
 25780  	}
 25781  }
 25782  
 25783  // Error returns any retrieval or parsing error occurred during filtering.
 25784  func (it *SeigManagerPauserAddedIterator) Error() error {
 25785  	return it.fail
 25786  }
 25787  
 25788  // Close terminates the iteration process, releasing any pending underlying
 25789  // resources.
 25790  func (it *SeigManagerPauserAddedIterator) Close() error {
 25791  	it.sub.Unsubscribe()
 25792  	return nil
 25793  }
 25794  
 25795  // SeigManagerPauserAdded represents a PauserAdded event raised by the SeigManager contract.
 25796  type SeigManagerPauserAdded struct {
 25797  	Account common.Address
 25798  	Raw     types.Log // Blockchain specific contextual infos
 25799  }
 25800  
 25801  // FilterPauserAdded is a free log retrieval operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 25802  //
 25803  // Solidity: event PauserAdded(address indexed account)
 25804  func (_SeigManager *SeigManagerFilterer) FilterPauserAdded(opts *bind.FilterOpts, account []common.Address) (*SeigManagerPauserAddedIterator, error) {
 25805  
 25806  	var accountRule []interface{}
 25807  	for _, accountItem := range account {
 25808  		accountRule = append(accountRule, accountItem)
 25809  	}
 25810  
 25811  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "PauserAdded", accountRule)
 25812  	if err != nil {
 25813  		return nil, err
 25814  	}
 25815  	return &SeigManagerPauserAddedIterator{contract: _SeigManager.contract, event: "PauserAdded", logs: logs, sub: sub}, nil
 25816  }
 25817  
 25818  // WatchPauserAdded is a free log subscription operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 25819  //
 25820  // Solidity: event PauserAdded(address indexed account)
 25821  func (_SeigManager *SeigManagerFilterer) WatchPauserAdded(opts *bind.WatchOpts, sink chan<- *SeigManagerPauserAdded, account []common.Address) (event.Subscription, error) {
 25822  
 25823  	var accountRule []interface{}
 25824  	for _, accountItem := range account {
 25825  		accountRule = append(accountRule, accountItem)
 25826  	}
 25827  
 25828  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "PauserAdded", accountRule)
 25829  	if err != nil {
 25830  		return nil, err
 25831  	}
 25832  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25833  		defer sub.Unsubscribe()
 25834  		for {
 25835  			select {
 25836  			case log := <-logs:
 25837  				// New log arrived, parse the event and forward to the user
 25838  				event := new(SeigManagerPauserAdded)
 25839  				if err := _SeigManager.contract.UnpackLog(event, "PauserAdded", log); err != nil {
 25840  					return err
 25841  				}
 25842  				event.Raw = log
 25843  
 25844  				select {
 25845  				case sink <- event:
 25846  				case err := <-sub.Err():
 25847  					return err
 25848  				case <-quit:
 25849  					return nil
 25850  				}
 25851  			case err := <-sub.Err():
 25852  				return err
 25853  			case <-quit:
 25854  				return nil
 25855  			}
 25856  		}
 25857  	}), nil
 25858  }
 25859  
 25860  // ParsePauserAdded is a log parse operation binding the contract event 0x6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8.
 25861  //
 25862  // Solidity: event PauserAdded(address indexed account)
 25863  func (_SeigManager *SeigManagerFilterer) ParsePauserAdded(log types.Log) (*SeigManagerPauserAdded, error) {
 25864  	event := new(SeigManagerPauserAdded)
 25865  	if err := _SeigManager.contract.UnpackLog(event, "PauserAdded", log); err != nil {
 25866  		return nil, err
 25867  	}
 25868  	return event, nil
 25869  }
 25870  
 25871  // SeigManagerPauserRemovedIterator is returned from FilterPauserRemoved and is used to iterate over the raw logs and unpacked data for PauserRemoved events raised by the SeigManager contract.
 25872  type SeigManagerPauserRemovedIterator struct {
 25873  	Event *SeigManagerPauserRemoved // Event containing the contract specifics and raw log
 25874  
 25875  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25876  	event    string              // Event name to use for unpacking event data
 25877  
 25878  	logs chan types.Log        // Log channel receiving the found contract events
 25879  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 25880  	done bool                  // Whether the subscription completed delivering logs
 25881  	fail error                 // Occurred error to stop iteration
 25882  }
 25883  
 25884  // Next advances the iterator to the subsequent event, returning whether there
 25885  // are any more events found. In case of a retrieval or parsing error, false is
 25886  // returned and Error() can be queried for the exact failure.
 25887  func (it *SeigManagerPauserRemovedIterator) Next() bool {
 25888  	// If the iterator failed, stop iterating
 25889  	if it.fail != nil {
 25890  		return false
 25891  	}
 25892  	// If the iterator completed, deliver directly whatever's available
 25893  	if it.done {
 25894  		select {
 25895  		case log := <-it.logs:
 25896  			it.Event = new(SeigManagerPauserRemoved)
 25897  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25898  				it.fail = err
 25899  				return false
 25900  			}
 25901  			it.Event.Raw = log
 25902  			return true
 25903  
 25904  		default:
 25905  			return false
 25906  		}
 25907  	}
 25908  	// Iterator still in progress, wait for either a data or an error event
 25909  	select {
 25910  	case log := <-it.logs:
 25911  		it.Event = new(SeigManagerPauserRemoved)
 25912  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25913  			it.fail = err
 25914  			return false
 25915  		}
 25916  		it.Event.Raw = log
 25917  		return true
 25918  
 25919  	case err := <-it.sub.Err():
 25920  		it.done = true
 25921  		it.fail = err
 25922  		return it.Next()
 25923  	}
 25924  }
 25925  
 25926  // Error returns any retrieval or parsing error occurred during filtering.
 25927  func (it *SeigManagerPauserRemovedIterator) Error() error {
 25928  	return it.fail
 25929  }
 25930  
 25931  // Close terminates the iteration process, releasing any pending underlying
 25932  // resources.
 25933  func (it *SeigManagerPauserRemovedIterator) Close() error {
 25934  	it.sub.Unsubscribe()
 25935  	return nil
 25936  }
 25937  
 25938  // SeigManagerPauserRemoved represents a PauserRemoved event raised by the SeigManager contract.
 25939  type SeigManagerPauserRemoved struct {
 25940  	Account common.Address
 25941  	Raw     types.Log // Blockchain specific contextual infos
 25942  }
 25943  
 25944  // FilterPauserRemoved is a free log retrieval operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 25945  //
 25946  // Solidity: event PauserRemoved(address indexed account)
 25947  func (_SeigManager *SeigManagerFilterer) FilterPauserRemoved(opts *bind.FilterOpts, account []common.Address) (*SeigManagerPauserRemovedIterator, error) {
 25948  
 25949  	var accountRule []interface{}
 25950  	for _, accountItem := range account {
 25951  		accountRule = append(accountRule, accountItem)
 25952  	}
 25953  
 25954  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "PauserRemoved", accountRule)
 25955  	if err != nil {
 25956  		return nil, err
 25957  	}
 25958  	return &SeigManagerPauserRemovedIterator{contract: _SeigManager.contract, event: "PauserRemoved", logs: logs, sub: sub}, nil
 25959  }
 25960  
 25961  // WatchPauserRemoved is a free log subscription operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 25962  //
 25963  // Solidity: event PauserRemoved(address indexed account)
 25964  func (_SeigManager *SeigManagerFilterer) WatchPauserRemoved(opts *bind.WatchOpts, sink chan<- *SeigManagerPauserRemoved, account []common.Address) (event.Subscription, error) {
 25965  
 25966  	var accountRule []interface{}
 25967  	for _, accountItem := range account {
 25968  		accountRule = append(accountRule, accountItem)
 25969  	}
 25970  
 25971  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "PauserRemoved", accountRule)
 25972  	if err != nil {
 25973  		return nil, err
 25974  	}
 25975  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25976  		defer sub.Unsubscribe()
 25977  		for {
 25978  			select {
 25979  			case log := <-logs:
 25980  				// New log arrived, parse the event and forward to the user
 25981  				event := new(SeigManagerPauserRemoved)
 25982  				if err := _SeigManager.contract.UnpackLog(event, "PauserRemoved", log); err != nil {
 25983  					return err
 25984  				}
 25985  				event.Raw = log
 25986  
 25987  				select {
 25988  				case sink <- event:
 25989  				case err := <-sub.Err():
 25990  					return err
 25991  				case <-quit:
 25992  					return nil
 25993  				}
 25994  			case err := <-sub.Err():
 25995  				return err
 25996  			case <-quit:
 25997  				return nil
 25998  			}
 25999  		}
 26000  	}), nil
 26001  }
 26002  
 26003  // ParsePauserRemoved is a log parse operation binding the contract event 0xcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e.
 26004  //
 26005  // Solidity: event PauserRemoved(address indexed account)
 26006  func (_SeigManager *SeigManagerFilterer) ParsePauserRemoved(log types.Log) (*SeigManagerPauserRemoved, error) {
 26007  	event := new(SeigManagerPauserRemoved)
 26008  	if err := _SeigManager.contract.UnpackLog(event, "PauserRemoved", log); err != nil {
 26009  		return nil, err
 26010  	}
 26011  	return event, nil
 26012  }
 26013  
 26014  // SeigManagerSeigGivenIterator is returned from FilterSeigGiven and is used to iterate over the raw logs and unpacked data for SeigGiven events raised by the SeigManager contract.
 26015  type SeigManagerSeigGivenIterator struct {
 26016  	Event *SeigManagerSeigGiven // Event containing the contract specifics and raw log
 26017  
 26018  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 26019  	event    string              // Event name to use for unpacking event data
 26020  
 26021  	logs chan types.Log        // Log channel receiving the found contract events
 26022  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 26023  	done bool                  // Whether the subscription completed delivering logs
 26024  	fail error                 // Occurred error to stop iteration
 26025  }
 26026  
 26027  // Next advances the iterator to the subsequent event, returning whether there
 26028  // are any more events found. In case of a retrieval or parsing error, false is
 26029  // returned and Error() can be queried for the exact failure.
 26030  func (it *SeigManagerSeigGivenIterator) Next() bool {
 26031  	// If the iterator failed, stop iterating
 26032  	if it.fail != nil {
 26033  		return false
 26034  	}
 26035  	// If the iterator completed, deliver directly whatever's available
 26036  	if it.done {
 26037  		select {
 26038  		case log := <-it.logs:
 26039  			it.Event = new(SeigManagerSeigGiven)
 26040  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26041  				it.fail = err
 26042  				return false
 26043  			}
 26044  			it.Event.Raw = log
 26045  			return true
 26046  
 26047  		default:
 26048  			return false
 26049  		}
 26050  	}
 26051  	// Iterator still in progress, wait for either a data or an error event
 26052  	select {
 26053  	case log := <-it.logs:
 26054  		it.Event = new(SeigManagerSeigGiven)
 26055  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26056  			it.fail = err
 26057  			return false
 26058  		}
 26059  		it.Event.Raw = log
 26060  		return true
 26061  
 26062  	case err := <-it.sub.Err():
 26063  		it.done = true
 26064  		it.fail = err
 26065  		return it.Next()
 26066  	}
 26067  }
 26068  
 26069  // Error returns any retrieval or parsing error occurred during filtering.
 26070  func (it *SeigManagerSeigGivenIterator) Error() error {
 26071  	return it.fail
 26072  }
 26073  
 26074  // Close terminates the iteration process, releasing any pending underlying
 26075  // resources.
 26076  func (it *SeigManagerSeigGivenIterator) Close() error {
 26077  	it.sub.Unsubscribe()
 26078  	return nil
 26079  }
 26080  
 26081  // SeigManagerSeigGiven represents a SeigGiven event raised by the SeigManager contract.
 26082  type SeigManagerSeigGiven struct {
 26083  	Rootchain    common.Address
 26084  	TotalSeig    *big.Int
 26085  	StakedSeig   *big.Int
 26086  	UnstakedSeig *big.Int
 26087  	PowertonSeig *big.Int
 26088  	Raw          types.Log // Blockchain specific contextual infos
 26089  }
 26090  
 26091  // FilterSeigGiven is a free log retrieval operation binding the contract event 0x73600b95c31a4ed411c84c32eaa15178c77fdcd9d5c8123118e76c03b3dcd63b.
 26092  //
 26093  // Solidity: event SeigGiven(address indexed rootchain, uint256 totalSeig, uint256 stakedSeig, uint256 unstakedSeig, uint256 powertonSeig)
 26094  func (_SeigManager *SeigManagerFilterer) FilterSeigGiven(opts *bind.FilterOpts, rootchain []common.Address) (*SeigManagerSeigGivenIterator, error) {
 26095  
 26096  	var rootchainRule []interface{}
 26097  	for _, rootchainItem := range rootchain {
 26098  		rootchainRule = append(rootchainRule, rootchainItem)
 26099  	}
 26100  
 26101  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "SeigGiven", rootchainRule)
 26102  	if err != nil {
 26103  		return nil, err
 26104  	}
 26105  	return &SeigManagerSeigGivenIterator{contract: _SeigManager.contract, event: "SeigGiven", logs: logs, sub: sub}, nil
 26106  }
 26107  
 26108  // WatchSeigGiven is a free log subscription operation binding the contract event 0x73600b95c31a4ed411c84c32eaa15178c77fdcd9d5c8123118e76c03b3dcd63b.
 26109  //
 26110  // Solidity: event SeigGiven(address indexed rootchain, uint256 totalSeig, uint256 stakedSeig, uint256 unstakedSeig, uint256 powertonSeig)
 26111  func (_SeigManager *SeigManagerFilterer) WatchSeigGiven(opts *bind.WatchOpts, sink chan<- *SeigManagerSeigGiven, rootchain []common.Address) (event.Subscription, error) {
 26112  
 26113  	var rootchainRule []interface{}
 26114  	for _, rootchainItem := range rootchain {
 26115  		rootchainRule = append(rootchainRule, rootchainItem)
 26116  	}
 26117  
 26118  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "SeigGiven", rootchainRule)
 26119  	if err != nil {
 26120  		return nil, err
 26121  	}
 26122  	return event.NewSubscription(func(quit <-chan struct{}) error {
 26123  		defer sub.Unsubscribe()
 26124  		for {
 26125  			select {
 26126  			case log := <-logs:
 26127  				// New log arrived, parse the event and forward to the user
 26128  				event := new(SeigManagerSeigGiven)
 26129  				if err := _SeigManager.contract.UnpackLog(event, "SeigGiven", log); err != nil {
 26130  					return err
 26131  				}
 26132  				event.Raw = log
 26133  
 26134  				select {
 26135  				case sink <- event:
 26136  				case err := <-sub.Err():
 26137  					return err
 26138  				case <-quit:
 26139  					return nil
 26140  				}
 26141  			case err := <-sub.Err():
 26142  				return err
 26143  			case <-quit:
 26144  				return nil
 26145  			}
 26146  		}
 26147  	}), nil
 26148  }
 26149  
 26150  // ParseSeigGiven is a log parse operation binding the contract event 0x73600b95c31a4ed411c84c32eaa15178c77fdcd9d5c8123118e76c03b3dcd63b.
 26151  //
 26152  // Solidity: event SeigGiven(address indexed rootchain, uint256 totalSeig, uint256 stakedSeig, uint256 unstakedSeig, uint256 powertonSeig)
 26153  func (_SeigManager *SeigManagerFilterer) ParseSeigGiven(log types.Log) (*SeigManagerSeigGiven, error) {
 26154  	event := new(SeigManagerSeigGiven)
 26155  	if err := _SeigManager.contract.UnpackLog(event, "SeigGiven", log); err != nil {
 26156  		return nil, err
 26157  	}
 26158  	return event, nil
 26159  }
 26160  
 26161  // SeigManagerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the SeigManager contract.
 26162  type SeigManagerUnpausedIterator struct {
 26163  	Event *SeigManagerUnpaused // Event containing the contract specifics and raw log
 26164  
 26165  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 26166  	event    string              // Event name to use for unpacking event data
 26167  
 26168  	logs chan types.Log        // Log channel receiving the found contract events
 26169  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 26170  	done bool                  // Whether the subscription completed delivering logs
 26171  	fail error                 // Occurred error to stop iteration
 26172  }
 26173  
 26174  // Next advances the iterator to the subsequent event, returning whether there
 26175  // are any more events found. In case of a retrieval or parsing error, false is
 26176  // returned and Error() can be queried for the exact failure.
 26177  func (it *SeigManagerUnpausedIterator) Next() bool {
 26178  	// If the iterator failed, stop iterating
 26179  	if it.fail != nil {
 26180  		return false
 26181  	}
 26182  	// If the iterator completed, deliver directly whatever's available
 26183  	if it.done {
 26184  		select {
 26185  		case log := <-it.logs:
 26186  			it.Event = new(SeigManagerUnpaused)
 26187  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26188  				it.fail = err
 26189  				return false
 26190  			}
 26191  			it.Event.Raw = log
 26192  			return true
 26193  
 26194  		default:
 26195  			return false
 26196  		}
 26197  	}
 26198  	// Iterator still in progress, wait for either a data or an error event
 26199  	select {
 26200  	case log := <-it.logs:
 26201  		it.Event = new(SeigManagerUnpaused)
 26202  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26203  			it.fail = err
 26204  			return false
 26205  		}
 26206  		it.Event.Raw = log
 26207  		return true
 26208  
 26209  	case err := <-it.sub.Err():
 26210  		it.done = true
 26211  		it.fail = err
 26212  		return it.Next()
 26213  	}
 26214  }
 26215  
 26216  // Error returns any retrieval or parsing error occurred during filtering.
 26217  func (it *SeigManagerUnpausedIterator) Error() error {
 26218  	return it.fail
 26219  }
 26220  
 26221  // Close terminates the iteration process, releasing any pending underlying
 26222  // resources.
 26223  func (it *SeigManagerUnpausedIterator) Close() error {
 26224  	it.sub.Unsubscribe()
 26225  	return nil
 26226  }
 26227  
 26228  // SeigManagerUnpaused represents a Unpaused event raised by the SeigManager contract.
 26229  type SeigManagerUnpaused struct {
 26230  	Account common.Address
 26231  	Raw     types.Log // Blockchain specific contextual infos
 26232  }
 26233  
 26234  // FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
 26235  //
 26236  // Solidity: event Unpaused(address account)
 26237  func (_SeigManager *SeigManagerFilterer) FilterUnpaused(opts *bind.FilterOpts) (*SeigManagerUnpausedIterator, error) {
 26238  
 26239  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "Unpaused")
 26240  	if err != nil {
 26241  		return nil, err
 26242  	}
 26243  	return &SeigManagerUnpausedIterator{contract: _SeigManager.contract, event: "Unpaused", logs: logs, sub: sub}, nil
 26244  }
 26245  
 26246  // WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
 26247  //
 26248  // Solidity: event Unpaused(address account)
 26249  func (_SeigManager *SeigManagerFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *SeigManagerUnpaused) (event.Subscription, error) {
 26250  
 26251  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "Unpaused")
 26252  	if err != nil {
 26253  		return nil, err
 26254  	}
 26255  	return event.NewSubscription(func(quit <-chan struct{}) error {
 26256  		defer sub.Unsubscribe()
 26257  		for {
 26258  			select {
 26259  			case log := <-logs:
 26260  				// New log arrived, parse the event and forward to the user
 26261  				event := new(SeigManagerUnpaused)
 26262  				if err := _SeigManager.contract.UnpackLog(event, "Unpaused", log); err != nil {
 26263  					return err
 26264  				}
 26265  				event.Raw = log
 26266  
 26267  				select {
 26268  				case sink <- event:
 26269  				case err := <-sub.Err():
 26270  					return err
 26271  				case <-quit:
 26272  					return nil
 26273  				}
 26274  			case err := <-sub.Err():
 26275  				return err
 26276  			case <-quit:
 26277  				return nil
 26278  			}
 26279  		}
 26280  	}), nil
 26281  }
 26282  
 26283  // ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
 26284  //
 26285  // Solidity: event Unpaused(address account)
 26286  func (_SeigManager *SeigManagerFilterer) ParseUnpaused(log types.Log) (*SeigManagerUnpaused, error) {
 26287  	event := new(SeigManagerUnpaused)
 26288  	if err := _SeigManager.contract.UnpackLog(event, "Unpaused", log); err != nil {
 26289  		return nil, err
 26290  	}
 26291  	return event, nil
 26292  }
 26293  
 26294  // SeigManagerUnstakeLogIterator is returned from FilterUnstakeLog and is used to iterate over the raw logs and unpacked data for UnstakeLog events raised by the SeigManager contract.
 26295  type SeigManagerUnstakeLogIterator struct {
 26296  	Event *SeigManagerUnstakeLog // Event containing the contract specifics and raw log
 26297  
 26298  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 26299  	event    string              // Event name to use for unpacking event data
 26300  
 26301  	logs chan types.Log        // Log channel receiving the found contract events
 26302  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 26303  	done bool                  // Whether the subscription completed delivering logs
 26304  	fail error                 // Occurred error to stop iteration
 26305  }
 26306  
 26307  // Next advances the iterator to the subsequent event, returning whether there
 26308  // are any more events found. In case of a retrieval or parsing error, false is
 26309  // returned and Error() can be queried for the exact failure.
 26310  func (it *SeigManagerUnstakeLogIterator) Next() bool {
 26311  	// If the iterator failed, stop iterating
 26312  	if it.fail != nil {
 26313  		return false
 26314  	}
 26315  	// If the iterator completed, deliver directly whatever's available
 26316  	if it.done {
 26317  		select {
 26318  		case log := <-it.logs:
 26319  			it.Event = new(SeigManagerUnstakeLog)
 26320  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26321  				it.fail = err
 26322  				return false
 26323  			}
 26324  			it.Event.Raw = log
 26325  			return true
 26326  
 26327  		default:
 26328  			return false
 26329  		}
 26330  	}
 26331  	// Iterator still in progress, wait for either a data or an error event
 26332  	select {
 26333  	case log := <-it.logs:
 26334  		it.Event = new(SeigManagerUnstakeLog)
 26335  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26336  			it.fail = err
 26337  			return false
 26338  		}
 26339  		it.Event.Raw = log
 26340  		return true
 26341  
 26342  	case err := <-it.sub.Err():
 26343  		it.done = true
 26344  		it.fail = err
 26345  		return it.Next()
 26346  	}
 26347  }
 26348  
 26349  // Error returns any retrieval or parsing error occurred during filtering.
 26350  func (it *SeigManagerUnstakeLogIterator) Error() error {
 26351  	return it.fail
 26352  }
 26353  
 26354  // Close terminates the iteration process, releasing any pending underlying
 26355  // resources.
 26356  func (it *SeigManagerUnstakeLogIterator) Close() error {
 26357  	it.sub.Unsubscribe()
 26358  	return nil
 26359  }
 26360  
 26361  // SeigManagerUnstakeLog represents a UnstakeLog event raised by the SeigManager contract.
 26362  type SeigManagerUnstakeLog struct {
 26363  	CoinageBurnAmount *big.Int
 26364  	TotBurnAmount     *big.Int
 26365  	Raw               types.Log // Blockchain specific contextual infos
 26366  }
 26367  
 26368  // FilterUnstakeLog is a free log retrieval operation binding the contract event 0x650f673bb96a43afff4620ecc3f3e38e0cbfddebde9894e951ba2ceff7472f60.
 26369  //
 26370  // Solidity: event UnstakeLog(uint256 coinageBurnAmount, uint256 totBurnAmount)
 26371  func (_SeigManager *SeigManagerFilterer) FilterUnstakeLog(opts *bind.FilterOpts) (*SeigManagerUnstakeLogIterator, error) {
 26372  
 26373  	logs, sub, err := _SeigManager.contract.FilterLogs(opts, "UnstakeLog")
 26374  	if err != nil {
 26375  		return nil, err
 26376  	}
 26377  	return &SeigManagerUnstakeLogIterator{contract: _SeigManager.contract, event: "UnstakeLog", logs: logs, sub: sub}, nil
 26378  }
 26379  
 26380  // WatchUnstakeLog is a free log subscription operation binding the contract event 0x650f673bb96a43afff4620ecc3f3e38e0cbfddebde9894e951ba2ceff7472f60.
 26381  //
 26382  // Solidity: event UnstakeLog(uint256 coinageBurnAmount, uint256 totBurnAmount)
 26383  func (_SeigManager *SeigManagerFilterer) WatchUnstakeLog(opts *bind.WatchOpts, sink chan<- *SeigManagerUnstakeLog) (event.Subscription, error) {
 26384  
 26385  	logs, sub, err := _SeigManager.contract.WatchLogs(opts, "UnstakeLog")
 26386  	if err != nil {
 26387  		return nil, err
 26388  	}
 26389  	return event.NewSubscription(func(quit <-chan struct{}) error {
 26390  		defer sub.Unsubscribe()
 26391  		for {
 26392  			select {
 26393  			case log := <-logs:
 26394  				// New log arrived, parse the event and forward to the user
 26395  				event := new(SeigManagerUnstakeLog)
 26396  				if err := _SeigManager.contract.UnpackLog(event, "UnstakeLog", log); err != nil {
 26397  					return err
 26398  				}
 26399  				event.Raw = log
 26400  
 26401  				select {
 26402  				case sink <- event:
 26403  				case err := <-sub.Err():
 26404  					return err
 26405  				case <-quit:
 26406  					return nil
 26407  				}
 26408  			case err := <-sub.Err():
 26409  				return err
 26410  			case <-quit:
 26411  				return nil
 26412  			}
 26413  		}
 26414  	}), nil
 26415  }
 26416  
 26417  // ParseUnstakeLog is a log parse operation binding the contract event 0x650f673bb96a43afff4620ecc3f3e38e0cbfddebde9894e951ba2ceff7472f60.
 26418  //
 26419  // Solidity: event UnstakeLog(uint256 coinageBurnAmount, uint256 totBurnAmount)
 26420  func (_SeigManager *SeigManagerFilterer) ParseUnstakeLog(log types.Log) (*SeigManagerUnstakeLog, error) {
 26421  	event := new(SeigManagerUnstakeLog)
 26422  	if err := _SeigManager.contract.UnpackLog(event, "UnstakeLog", log); err != nil {
 26423  		return nil, err
 26424  	}
 26425  	return event, nil
 26426  }
 26427  
 26428  // SeigManagerIABI is the input ABI used to generate the binding from.
 26429  const SeigManagerIABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"DEFAULT_FACTOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"additionalTotBurnAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"coinages\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"commissionRates\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"deployCoinage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"}],\"name\":\"lastCommitBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastSeigBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"onCommit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pausedBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"powerton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigPerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isCommissionRateNegative\",\"type\":\"bool\"}],\"name\":\"setCommissionRate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"stakeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tot\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"rootchain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"uncomittedStakeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"unpausedBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
 26430  
 26431  // SeigManagerIFuncSigs maps the 4-byte function signature to its string representation.
 26432  var SeigManagerIFuncSigs = map[string]string{
 26433  	"8bf91dc4": "DEFAULT_FACTOR()",
 26434  	"48c8577e": "additionalTotBurnAmount(address,address,uint256)",
 26435  	"4c063c19": "coinages(address)",
 26436  	"7b056c1b": "commissionRates(address)",
 26437  	"833a774f": "deployCoinage(address)",
 26438  	"6c7ac9d8": "depositManager()",
 26439  	"c59f1046": "lastCommitBlock(address)",
 26440  	"f35c89e8": "lastSeigBlock()",
 26441  	"359c4d59": "onCommit()",
 26442  	"412c6d50": "onDeposit(address,address,uint256)",
 26443  	"4a393149": "onTransfer(address,address,uint256)",
 26444  	"f850ffaa": "onWithdraw(address,address,uint256)",
 26445  	"32053c99": "pausedBlock()",
 26446  	"3e832e1d": "powerton()",
 26447  	"7b103999": "registry()",
 26448  	"5f40a349": "seigPerBlock()",
 26449  	"4224ed66": "setCommissionRate(address,uint256,bool)",
 26450  	"ce4cb876": "stakeOf(address,address)",
 26451  	"cc48b947": "ton()",
 26452  	"a16d6aa7": "tot()",
 26453  	"fa9789c8": "uncomittedStakeOf(address,address)",
 26454  	"1cc47890": "unpausedBlock()",
 26455  	"8d62d949": "wton()",
 26456  }
 26457  
 26458  // SeigManagerI is an auto generated Go binding around an Ethereum contract.
 26459  type SeigManagerI struct {
 26460  	SeigManagerICaller     // Read-only binding to the contract
 26461  	SeigManagerITransactor // Write-only binding to the contract
 26462  	SeigManagerIFilterer   // Log filterer for contract events
 26463  }
 26464  
 26465  // SeigManagerICaller is an auto generated read-only Go binding around an Ethereum contract.
 26466  type SeigManagerICaller struct {
 26467  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26468  }
 26469  
 26470  // SeigManagerITransactor is an auto generated write-only Go binding around an Ethereum contract.
 26471  type SeigManagerITransactor struct {
 26472  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26473  }
 26474  
 26475  // SeigManagerIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 26476  type SeigManagerIFilterer struct {
 26477  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26478  }
 26479  
 26480  // SeigManagerISession is an auto generated Go binding around an Ethereum contract,
 26481  // with pre-set call and transact options.
 26482  type SeigManagerISession struct {
 26483  	Contract     *SeigManagerI     // Generic contract binding to set the session for
 26484  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 26485  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 26486  }
 26487  
 26488  // SeigManagerICallerSession is an auto generated read-only Go binding around an Ethereum contract,
 26489  // with pre-set call options.
 26490  type SeigManagerICallerSession struct {
 26491  	Contract *SeigManagerICaller // Generic contract caller binding to set the session for
 26492  	CallOpts bind.CallOpts       // Call options to use throughout this session
 26493  }
 26494  
 26495  // SeigManagerITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 26496  // with pre-set transact options.
 26497  type SeigManagerITransactorSession struct {
 26498  	Contract     *SeigManagerITransactor // Generic contract transactor binding to set the session for
 26499  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
 26500  }
 26501  
 26502  // SeigManagerIRaw is an auto generated low-level Go binding around an Ethereum contract.
 26503  type SeigManagerIRaw struct {
 26504  	Contract *SeigManagerI // Generic contract binding to access the raw methods on
 26505  }
 26506  
 26507  // SeigManagerICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 26508  type SeigManagerICallerRaw struct {
 26509  	Contract *SeigManagerICaller // Generic read-only contract binding to access the raw methods on
 26510  }
 26511  
 26512  // SeigManagerITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 26513  type SeigManagerITransactorRaw struct {
 26514  	Contract *SeigManagerITransactor // Generic write-only contract binding to access the raw methods on
 26515  }
 26516  
 26517  // NewSeigManagerI creates a new instance of SeigManagerI, bound to a specific deployed contract.
 26518  func NewSeigManagerI(address common.Address, backend bind.ContractBackend) (*SeigManagerI, error) {
 26519  	contract, err := bindSeigManagerI(address, backend, backend, backend)
 26520  	if err != nil {
 26521  		return nil, err
 26522  	}
 26523  	return &SeigManagerI{SeigManagerICaller: SeigManagerICaller{contract: contract}, SeigManagerITransactor: SeigManagerITransactor{contract: contract}, SeigManagerIFilterer: SeigManagerIFilterer{contract: contract}}, nil
 26524  }
 26525  
 26526  // NewSeigManagerICaller creates a new read-only instance of SeigManagerI, bound to a specific deployed contract.
 26527  func NewSeigManagerICaller(address common.Address, caller bind.ContractCaller) (*SeigManagerICaller, error) {
 26528  	contract, err := bindSeigManagerI(address, caller, nil, nil)
 26529  	if err != nil {
 26530  		return nil, err
 26531  	}
 26532  	return &SeigManagerICaller{contract: contract}, nil
 26533  }
 26534  
 26535  // NewSeigManagerITransactor creates a new write-only instance of SeigManagerI, bound to a specific deployed contract.
 26536  func NewSeigManagerITransactor(address common.Address, transactor bind.ContractTransactor) (*SeigManagerITransactor, error) {
 26537  	contract, err := bindSeigManagerI(address, nil, transactor, nil)
 26538  	if err != nil {
 26539  		return nil, err
 26540  	}
 26541  	return &SeigManagerITransactor{contract: contract}, nil
 26542  }
 26543  
 26544  // NewSeigManagerIFilterer creates a new log filterer instance of SeigManagerI, bound to a specific deployed contract.
 26545  func NewSeigManagerIFilterer(address common.Address, filterer bind.ContractFilterer) (*SeigManagerIFilterer, error) {
 26546  	contract, err := bindSeigManagerI(address, nil, nil, filterer)
 26547  	if err != nil {
 26548  		return nil, err
 26549  	}
 26550  	return &SeigManagerIFilterer{contract: contract}, nil
 26551  }
 26552  
 26553  // bindSeigManagerI binds a generic wrapper to an already deployed contract.
 26554  func bindSeigManagerI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 26555  	parsed, err := abi.JSON(strings.NewReader(SeigManagerIABI))
 26556  	if err != nil {
 26557  		return nil, err
 26558  	}
 26559  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 26560  }
 26561  
 26562  // Call invokes the (constant) contract method with params as input values and
 26563  // sets the output to result. The result type might be a single field for simple
 26564  // returns, a slice of interfaces for anonymous returns and a struct for named
 26565  // returns.
 26566  func (_SeigManagerI *SeigManagerIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 26567  	return _SeigManagerI.Contract.SeigManagerICaller.contract.Call(opts, result, method, params...)
 26568  }
 26569  
 26570  // Transfer initiates a plain transaction to move funds to the contract, calling
 26571  // its default method if one is available.
 26572  func (_SeigManagerI *SeigManagerIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26573  	return _SeigManagerI.Contract.SeigManagerITransactor.contract.Transfer(opts)
 26574  }
 26575  
 26576  // Transact invokes the (paid) contract method with params as input values.
 26577  func (_SeigManagerI *SeigManagerIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26578  	return _SeigManagerI.Contract.SeigManagerITransactor.contract.Transact(opts, method, params...)
 26579  }
 26580  
 26581  // Call invokes the (constant) contract method with params as input values and
 26582  // sets the output to result. The result type might be a single field for simple
 26583  // returns, a slice of interfaces for anonymous returns and a struct for named
 26584  // returns.
 26585  func (_SeigManagerI *SeigManagerICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 26586  	return _SeigManagerI.Contract.contract.Call(opts, result, method, params...)
 26587  }
 26588  
 26589  // Transfer initiates a plain transaction to move funds to the contract, calling
 26590  // its default method if one is available.
 26591  func (_SeigManagerI *SeigManagerITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26592  	return _SeigManagerI.Contract.contract.Transfer(opts)
 26593  }
 26594  
 26595  // Transact invokes the (paid) contract method with params as input values.
 26596  func (_SeigManagerI *SeigManagerITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26597  	return _SeigManagerI.Contract.contract.Transact(opts, method, params...)
 26598  }
 26599  
 26600  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
 26601  //
 26602  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
 26603  func (_SeigManagerI *SeigManagerICaller) DEFAULTFACTOR(opts *bind.CallOpts) (*big.Int, error) {
 26604  	var (
 26605  		ret0 = new(*big.Int)
 26606  	)
 26607  	out := ret0
 26608  	err := _SeigManagerI.contract.Call(opts, out, "DEFAULT_FACTOR")
 26609  	return *ret0, err
 26610  }
 26611  
 26612  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
 26613  //
 26614  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
 26615  func (_SeigManagerI *SeigManagerISession) DEFAULTFACTOR() (*big.Int, error) {
 26616  	return _SeigManagerI.Contract.DEFAULTFACTOR(&_SeigManagerI.CallOpts)
 26617  }
 26618  
 26619  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
 26620  //
 26621  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
 26622  func (_SeigManagerI *SeigManagerICallerSession) DEFAULTFACTOR() (*big.Int, error) {
 26623  	return _SeigManagerI.Contract.DEFAULTFACTOR(&_SeigManagerI.CallOpts)
 26624  }
 26625  
 26626  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
 26627  //
 26628  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
 26629  func (_SeigManagerI *SeigManagerICaller) AdditionalTotBurnAmount(opts *bind.CallOpts, rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
 26630  	var (
 26631  		ret0 = new(*big.Int)
 26632  	)
 26633  	out := ret0
 26634  	err := _SeigManagerI.contract.Call(opts, out, "additionalTotBurnAmount", rootchain, account, amount)
 26635  	return *ret0, err
 26636  }
 26637  
 26638  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
 26639  //
 26640  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
 26641  func (_SeigManagerI *SeigManagerISession) AdditionalTotBurnAmount(rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
 26642  	return _SeigManagerI.Contract.AdditionalTotBurnAmount(&_SeigManagerI.CallOpts, rootchain, account, amount)
 26643  }
 26644  
 26645  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
 26646  //
 26647  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
 26648  func (_SeigManagerI *SeigManagerICallerSession) AdditionalTotBurnAmount(rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
 26649  	return _SeigManagerI.Contract.AdditionalTotBurnAmount(&_SeigManagerI.CallOpts, rootchain, account, amount)
 26650  }
 26651  
 26652  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
 26653  //
 26654  // Solidity: function coinages(address rootchain) constant returns(address)
 26655  func (_SeigManagerI *SeigManagerICaller) Coinages(opts *bind.CallOpts, rootchain common.Address) (common.Address, error) {
 26656  	var (
 26657  		ret0 = new(common.Address)
 26658  	)
 26659  	out := ret0
 26660  	err := _SeigManagerI.contract.Call(opts, out, "coinages", rootchain)
 26661  	return *ret0, err
 26662  }
 26663  
 26664  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
 26665  //
 26666  // Solidity: function coinages(address rootchain) constant returns(address)
 26667  func (_SeigManagerI *SeigManagerISession) Coinages(rootchain common.Address) (common.Address, error) {
 26668  	return _SeigManagerI.Contract.Coinages(&_SeigManagerI.CallOpts, rootchain)
 26669  }
 26670  
 26671  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
 26672  //
 26673  // Solidity: function coinages(address rootchain) constant returns(address)
 26674  func (_SeigManagerI *SeigManagerICallerSession) Coinages(rootchain common.Address) (common.Address, error) {
 26675  	return _SeigManagerI.Contract.Coinages(&_SeigManagerI.CallOpts, rootchain)
 26676  }
 26677  
 26678  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
 26679  //
 26680  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
 26681  func (_SeigManagerI *SeigManagerICaller) CommissionRates(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
 26682  	var (
 26683  		ret0 = new(*big.Int)
 26684  	)
 26685  	out := ret0
 26686  	err := _SeigManagerI.contract.Call(opts, out, "commissionRates", rootchain)
 26687  	return *ret0, err
 26688  }
 26689  
 26690  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
 26691  //
 26692  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
 26693  func (_SeigManagerI *SeigManagerISession) CommissionRates(rootchain common.Address) (*big.Int, error) {
 26694  	return _SeigManagerI.Contract.CommissionRates(&_SeigManagerI.CallOpts, rootchain)
 26695  }
 26696  
 26697  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
 26698  //
 26699  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
 26700  func (_SeigManagerI *SeigManagerICallerSession) CommissionRates(rootchain common.Address) (*big.Int, error) {
 26701  	return _SeigManagerI.Contract.CommissionRates(&_SeigManagerI.CallOpts, rootchain)
 26702  }
 26703  
 26704  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
 26705  //
 26706  // Solidity: function depositManager() constant returns(address)
 26707  func (_SeigManagerI *SeigManagerICaller) DepositManager(opts *bind.CallOpts) (common.Address, error) {
 26708  	var (
 26709  		ret0 = new(common.Address)
 26710  	)
 26711  	out := ret0
 26712  	err := _SeigManagerI.contract.Call(opts, out, "depositManager")
 26713  	return *ret0, err
 26714  }
 26715  
 26716  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
 26717  //
 26718  // Solidity: function depositManager() constant returns(address)
 26719  func (_SeigManagerI *SeigManagerISession) DepositManager() (common.Address, error) {
 26720  	return _SeigManagerI.Contract.DepositManager(&_SeigManagerI.CallOpts)
 26721  }
 26722  
 26723  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
 26724  //
 26725  // Solidity: function depositManager() constant returns(address)
 26726  func (_SeigManagerI *SeigManagerICallerSession) DepositManager() (common.Address, error) {
 26727  	return _SeigManagerI.Contract.DepositManager(&_SeigManagerI.CallOpts)
 26728  }
 26729  
 26730  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
 26731  //
 26732  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
 26733  func (_SeigManagerI *SeigManagerICaller) LastCommitBlock(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
 26734  	var (
 26735  		ret0 = new(*big.Int)
 26736  	)
 26737  	out := ret0
 26738  	err := _SeigManagerI.contract.Call(opts, out, "lastCommitBlock", rootchain)
 26739  	return *ret0, err
 26740  }
 26741  
 26742  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
 26743  //
 26744  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
 26745  func (_SeigManagerI *SeigManagerISession) LastCommitBlock(rootchain common.Address) (*big.Int, error) {
 26746  	return _SeigManagerI.Contract.LastCommitBlock(&_SeigManagerI.CallOpts, rootchain)
 26747  }
 26748  
 26749  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
 26750  //
 26751  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
 26752  func (_SeigManagerI *SeigManagerICallerSession) LastCommitBlock(rootchain common.Address) (*big.Int, error) {
 26753  	return _SeigManagerI.Contract.LastCommitBlock(&_SeigManagerI.CallOpts, rootchain)
 26754  }
 26755  
 26756  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
 26757  //
 26758  // Solidity: function lastSeigBlock() constant returns(uint256)
 26759  func (_SeigManagerI *SeigManagerICaller) LastSeigBlock(opts *bind.CallOpts) (*big.Int, error) {
 26760  	var (
 26761  		ret0 = new(*big.Int)
 26762  	)
 26763  	out := ret0
 26764  	err := _SeigManagerI.contract.Call(opts, out, "lastSeigBlock")
 26765  	return *ret0, err
 26766  }
 26767  
 26768  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
 26769  //
 26770  // Solidity: function lastSeigBlock() constant returns(uint256)
 26771  func (_SeigManagerI *SeigManagerISession) LastSeigBlock() (*big.Int, error) {
 26772  	return _SeigManagerI.Contract.LastSeigBlock(&_SeigManagerI.CallOpts)
 26773  }
 26774  
 26775  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
 26776  //
 26777  // Solidity: function lastSeigBlock() constant returns(uint256)
 26778  func (_SeigManagerI *SeigManagerICallerSession) LastSeigBlock() (*big.Int, error) {
 26779  	return _SeigManagerI.Contract.LastSeigBlock(&_SeigManagerI.CallOpts)
 26780  }
 26781  
 26782  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
 26783  //
 26784  // Solidity: function pausedBlock() constant returns(uint256)
 26785  func (_SeigManagerI *SeigManagerICaller) PausedBlock(opts *bind.CallOpts) (*big.Int, error) {
 26786  	var (
 26787  		ret0 = new(*big.Int)
 26788  	)
 26789  	out := ret0
 26790  	err := _SeigManagerI.contract.Call(opts, out, "pausedBlock")
 26791  	return *ret0, err
 26792  }
 26793  
 26794  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
 26795  //
 26796  // Solidity: function pausedBlock() constant returns(uint256)
 26797  func (_SeigManagerI *SeigManagerISession) PausedBlock() (*big.Int, error) {
 26798  	return _SeigManagerI.Contract.PausedBlock(&_SeigManagerI.CallOpts)
 26799  }
 26800  
 26801  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
 26802  //
 26803  // Solidity: function pausedBlock() constant returns(uint256)
 26804  func (_SeigManagerI *SeigManagerICallerSession) PausedBlock() (*big.Int, error) {
 26805  	return _SeigManagerI.Contract.PausedBlock(&_SeigManagerI.CallOpts)
 26806  }
 26807  
 26808  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
 26809  //
 26810  // Solidity: function powerton() constant returns(address)
 26811  func (_SeigManagerI *SeigManagerICaller) Powerton(opts *bind.CallOpts) (common.Address, error) {
 26812  	var (
 26813  		ret0 = new(common.Address)
 26814  	)
 26815  	out := ret0
 26816  	err := _SeigManagerI.contract.Call(opts, out, "powerton")
 26817  	return *ret0, err
 26818  }
 26819  
 26820  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
 26821  //
 26822  // Solidity: function powerton() constant returns(address)
 26823  func (_SeigManagerI *SeigManagerISession) Powerton() (common.Address, error) {
 26824  	return _SeigManagerI.Contract.Powerton(&_SeigManagerI.CallOpts)
 26825  }
 26826  
 26827  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
 26828  //
 26829  // Solidity: function powerton() constant returns(address)
 26830  func (_SeigManagerI *SeigManagerICallerSession) Powerton() (common.Address, error) {
 26831  	return _SeigManagerI.Contract.Powerton(&_SeigManagerI.CallOpts)
 26832  }
 26833  
 26834  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 26835  //
 26836  // Solidity: function registry() constant returns(address)
 26837  func (_SeigManagerI *SeigManagerICaller) Registry(opts *bind.CallOpts) (common.Address, error) {
 26838  	var (
 26839  		ret0 = new(common.Address)
 26840  	)
 26841  	out := ret0
 26842  	err := _SeigManagerI.contract.Call(opts, out, "registry")
 26843  	return *ret0, err
 26844  }
 26845  
 26846  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 26847  //
 26848  // Solidity: function registry() constant returns(address)
 26849  func (_SeigManagerI *SeigManagerISession) Registry() (common.Address, error) {
 26850  	return _SeigManagerI.Contract.Registry(&_SeigManagerI.CallOpts)
 26851  }
 26852  
 26853  // Registry is a free data retrieval call binding the contract method 0x7b103999.
 26854  //
 26855  // Solidity: function registry() constant returns(address)
 26856  func (_SeigManagerI *SeigManagerICallerSession) Registry() (common.Address, error) {
 26857  	return _SeigManagerI.Contract.Registry(&_SeigManagerI.CallOpts)
 26858  }
 26859  
 26860  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 26861  //
 26862  // Solidity: function seigPerBlock() constant returns(uint256)
 26863  func (_SeigManagerI *SeigManagerICaller) SeigPerBlock(opts *bind.CallOpts) (*big.Int, error) {
 26864  	var (
 26865  		ret0 = new(*big.Int)
 26866  	)
 26867  	out := ret0
 26868  	err := _SeigManagerI.contract.Call(opts, out, "seigPerBlock")
 26869  	return *ret0, err
 26870  }
 26871  
 26872  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 26873  //
 26874  // Solidity: function seigPerBlock() constant returns(uint256)
 26875  func (_SeigManagerI *SeigManagerISession) SeigPerBlock() (*big.Int, error) {
 26876  	return _SeigManagerI.Contract.SeigPerBlock(&_SeigManagerI.CallOpts)
 26877  }
 26878  
 26879  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
 26880  //
 26881  // Solidity: function seigPerBlock() constant returns(uint256)
 26882  func (_SeigManagerI *SeigManagerICallerSession) SeigPerBlock() (*big.Int, error) {
 26883  	return _SeigManagerI.Contract.SeigPerBlock(&_SeigManagerI.CallOpts)
 26884  }
 26885  
 26886  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
 26887  //
 26888  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
 26889  func (_SeigManagerI *SeigManagerICaller) StakeOf(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 26890  	var (
 26891  		ret0 = new(*big.Int)
 26892  	)
 26893  	out := ret0
 26894  	err := _SeigManagerI.contract.Call(opts, out, "stakeOf", rootchain, account)
 26895  	return *ret0, err
 26896  }
 26897  
 26898  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
 26899  //
 26900  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
 26901  func (_SeigManagerI *SeigManagerISession) StakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 26902  	return _SeigManagerI.Contract.StakeOf(&_SeigManagerI.CallOpts, rootchain, account)
 26903  }
 26904  
 26905  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
 26906  //
 26907  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
 26908  func (_SeigManagerI *SeigManagerICallerSession) StakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 26909  	return _SeigManagerI.Contract.StakeOf(&_SeigManagerI.CallOpts, rootchain, account)
 26910  }
 26911  
 26912  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
 26913  //
 26914  // Solidity: function ton() constant returns(address)
 26915  func (_SeigManagerI *SeigManagerICaller) Ton(opts *bind.CallOpts) (common.Address, error) {
 26916  	var (
 26917  		ret0 = new(common.Address)
 26918  	)
 26919  	out := ret0
 26920  	err := _SeigManagerI.contract.Call(opts, out, "ton")
 26921  	return *ret0, err
 26922  }
 26923  
 26924  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
 26925  //
 26926  // Solidity: function ton() constant returns(address)
 26927  func (_SeigManagerI *SeigManagerISession) Ton() (common.Address, error) {
 26928  	return _SeigManagerI.Contract.Ton(&_SeigManagerI.CallOpts)
 26929  }
 26930  
 26931  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
 26932  //
 26933  // Solidity: function ton() constant returns(address)
 26934  func (_SeigManagerI *SeigManagerICallerSession) Ton() (common.Address, error) {
 26935  	return _SeigManagerI.Contract.Ton(&_SeigManagerI.CallOpts)
 26936  }
 26937  
 26938  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
 26939  //
 26940  // Solidity: function tot() constant returns(address)
 26941  func (_SeigManagerI *SeigManagerICaller) Tot(opts *bind.CallOpts) (common.Address, error) {
 26942  	var (
 26943  		ret0 = new(common.Address)
 26944  	)
 26945  	out := ret0
 26946  	err := _SeigManagerI.contract.Call(opts, out, "tot")
 26947  	return *ret0, err
 26948  }
 26949  
 26950  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
 26951  //
 26952  // Solidity: function tot() constant returns(address)
 26953  func (_SeigManagerI *SeigManagerISession) Tot() (common.Address, error) {
 26954  	return _SeigManagerI.Contract.Tot(&_SeigManagerI.CallOpts)
 26955  }
 26956  
 26957  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
 26958  //
 26959  // Solidity: function tot() constant returns(address)
 26960  func (_SeigManagerI *SeigManagerICallerSession) Tot() (common.Address, error) {
 26961  	return _SeigManagerI.Contract.Tot(&_SeigManagerI.CallOpts)
 26962  }
 26963  
 26964  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
 26965  //
 26966  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
 26967  func (_SeigManagerI *SeigManagerICaller) UncomittedStakeOf(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
 26968  	var (
 26969  		ret0 = new(*big.Int)
 26970  	)
 26971  	out := ret0
 26972  	err := _SeigManagerI.contract.Call(opts, out, "uncomittedStakeOf", rootchain, account)
 26973  	return *ret0, err
 26974  }
 26975  
 26976  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
 26977  //
 26978  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
 26979  func (_SeigManagerI *SeigManagerISession) UncomittedStakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 26980  	return _SeigManagerI.Contract.UncomittedStakeOf(&_SeigManagerI.CallOpts, rootchain, account)
 26981  }
 26982  
 26983  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
 26984  //
 26985  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
 26986  func (_SeigManagerI *SeigManagerICallerSession) UncomittedStakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
 26987  	return _SeigManagerI.Contract.UncomittedStakeOf(&_SeigManagerI.CallOpts, rootchain, account)
 26988  }
 26989  
 26990  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
 26991  //
 26992  // Solidity: function unpausedBlock() constant returns(uint256)
 26993  func (_SeigManagerI *SeigManagerICaller) UnpausedBlock(opts *bind.CallOpts) (*big.Int, error) {
 26994  	var (
 26995  		ret0 = new(*big.Int)
 26996  	)
 26997  	out := ret0
 26998  	err := _SeigManagerI.contract.Call(opts, out, "unpausedBlock")
 26999  	return *ret0, err
 27000  }
 27001  
 27002  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
 27003  //
 27004  // Solidity: function unpausedBlock() constant returns(uint256)
 27005  func (_SeigManagerI *SeigManagerISession) UnpausedBlock() (*big.Int, error) {
 27006  	return _SeigManagerI.Contract.UnpausedBlock(&_SeigManagerI.CallOpts)
 27007  }
 27008  
 27009  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
 27010  //
 27011  // Solidity: function unpausedBlock() constant returns(uint256)
 27012  func (_SeigManagerI *SeigManagerICallerSession) UnpausedBlock() (*big.Int, error) {
 27013  	return _SeigManagerI.Contract.UnpausedBlock(&_SeigManagerI.CallOpts)
 27014  }
 27015  
 27016  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 27017  //
 27018  // Solidity: function wton() constant returns(address)
 27019  func (_SeigManagerI *SeigManagerICaller) Wton(opts *bind.CallOpts) (common.Address, error) {
 27020  	var (
 27021  		ret0 = new(common.Address)
 27022  	)
 27023  	out := ret0
 27024  	err := _SeigManagerI.contract.Call(opts, out, "wton")
 27025  	return *ret0, err
 27026  }
 27027  
 27028  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 27029  //
 27030  // Solidity: function wton() constant returns(address)
 27031  func (_SeigManagerI *SeigManagerISession) Wton() (common.Address, error) {
 27032  	return _SeigManagerI.Contract.Wton(&_SeigManagerI.CallOpts)
 27033  }
 27034  
 27035  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
 27036  //
 27037  // Solidity: function wton() constant returns(address)
 27038  func (_SeigManagerI *SeigManagerICallerSession) Wton() (common.Address, error) {
 27039  	return _SeigManagerI.Contract.Wton(&_SeigManagerI.CallOpts)
 27040  }
 27041  
 27042  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
 27043  //
 27044  // Solidity: function deployCoinage(address rootchain) returns(bool)
 27045  func (_SeigManagerI *SeigManagerITransactor) DeployCoinage(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
 27046  	return _SeigManagerI.contract.Transact(opts, "deployCoinage", rootchain)
 27047  }
 27048  
 27049  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
 27050  //
 27051  // Solidity: function deployCoinage(address rootchain) returns(bool)
 27052  func (_SeigManagerI *SeigManagerISession) DeployCoinage(rootchain common.Address) (*types.Transaction, error) {
 27053  	return _SeigManagerI.Contract.DeployCoinage(&_SeigManagerI.TransactOpts, rootchain)
 27054  }
 27055  
 27056  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
 27057  //
 27058  // Solidity: function deployCoinage(address rootchain) returns(bool)
 27059  func (_SeigManagerI *SeigManagerITransactorSession) DeployCoinage(rootchain common.Address) (*types.Transaction, error) {
 27060  	return _SeigManagerI.Contract.DeployCoinage(&_SeigManagerI.TransactOpts, rootchain)
 27061  }
 27062  
 27063  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
 27064  //
 27065  // Solidity: function onCommit() returns(bool)
 27066  func (_SeigManagerI *SeigManagerITransactor) OnCommit(opts *bind.TransactOpts) (*types.Transaction, error) {
 27067  	return _SeigManagerI.contract.Transact(opts, "onCommit")
 27068  }
 27069  
 27070  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
 27071  //
 27072  // Solidity: function onCommit() returns(bool)
 27073  func (_SeigManagerI *SeigManagerISession) OnCommit() (*types.Transaction, error) {
 27074  	return _SeigManagerI.Contract.OnCommit(&_SeigManagerI.TransactOpts)
 27075  }
 27076  
 27077  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
 27078  //
 27079  // Solidity: function onCommit() returns(bool)
 27080  func (_SeigManagerI *SeigManagerITransactorSession) OnCommit() (*types.Transaction, error) {
 27081  	return _SeigManagerI.Contract.OnCommit(&_SeigManagerI.TransactOpts)
 27082  }
 27083  
 27084  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 27085  //
 27086  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
 27087  func (_SeigManagerI *SeigManagerITransactor) OnDeposit(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 27088  	return _SeigManagerI.contract.Transact(opts, "onDeposit", rootchain, account, amount)
 27089  }
 27090  
 27091  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 27092  //
 27093  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
 27094  func (_SeigManagerI *SeigManagerISession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 27095  	return _SeigManagerI.Contract.OnDeposit(&_SeigManagerI.TransactOpts, rootchain, account, amount)
 27096  }
 27097  
 27098  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
 27099  //
 27100  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
 27101  func (_SeigManagerI *SeigManagerITransactorSession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 27102  	return _SeigManagerI.Contract.OnDeposit(&_SeigManagerI.TransactOpts, rootchain, account, amount)
 27103  }
 27104  
 27105  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 27106  //
 27107  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
 27108  func (_SeigManagerI *SeigManagerITransactor) OnTransfer(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 27109  	return _SeigManagerI.contract.Transact(opts, "onTransfer", sender, recipient, amount)
 27110  }
 27111  
 27112  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 27113  //
 27114  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
 27115  func (_SeigManagerI *SeigManagerISession) OnTransfer(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 27116  	return _SeigManagerI.Contract.OnTransfer(&_SeigManagerI.TransactOpts, sender, recipient, amount)
 27117  }
 27118  
 27119  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 27120  //
 27121  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
 27122  func (_SeigManagerI *SeigManagerITransactorSession) OnTransfer(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 27123  	return _SeigManagerI.Contract.OnTransfer(&_SeigManagerI.TransactOpts, sender, recipient, amount)
 27124  }
 27125  
 27126  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 27127  //
 27128  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
 27129  func (_SeigManagerI *SeigManagerITransactor) OnWithdraw(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 27130  	return _SeigManagerI.contract.Transact(opts, "onWithdraw", rootchain, account, amount)
 27131  }
 27132  
 27133  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 27134  //
 27135  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
 27136  func (_SeigManagerI *SeigManagerISession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 27137  	return _SeigManagerI.Contract.OnWithdraw(&_SeigManagerI.TransactOpts, rootchain, account, amount)
 27138  }
 27139  
 27140  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
 27141  //
 27142  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
 27143  func (_SeigManagerI *SeigManagerITransactorSession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
 27144  	return _SeigManagerI.Contract.OnWithdraw(&_SeigManagerI.TransactOpts, rootchain, account, amount)
 27145  }
 27146  
 27147  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
 27148  //
 27149  // Solidity: function setCommissionRate(address rootchain, uint256 commission, bool isCommissionRateNegative) returns(bool)
 27150  func (_SeigManagerI *SeigManagerITransactor) SetCommissionRate(opts *bind.TransactOpts, rootchain common.Address, commission *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
 27151  	return _SeigManagerI.contract.Transact(opts, "setCommissionRate", rootchain, commission, isCommissionRateNegative)
 27152  }
 27153  
 27154  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
 27155  //
 27156  // Solidity: function setCommissionRate(address rootchain, uint256 commission, bool isCommissionRateNegative) returns(bool)
 27157  func (_SeigManagerI *SeigManagerISession) SetCommissionRate(rootchain common.Address, commission *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
 27158  	return _SeigManagerI.Contract.SetCommissionRate(&_SeigManagerI.TransactOpts, rootchain, commission, isCommissionRateNegative)
 27159  }
 27160  
 27161  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
 27162  //
 27163  // Solidity: function setCommissionRate(address rootchain, uint256 commission, bool isCommissionRateNegative) returns(bool)
 27164  func (_SeigManagerI *SeigManagerITransactorSession) SetCommissionRate(rootchain common.Address, commission *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
 27165  	return _SeigManagerI.Contract.SetCommissionRate(&_SeigManagerI.TransactOpts, rootchain, commission, isCommissionRateNegative)
 27166  }
 27167  
 27168  // TokenControllerABI is the input ABI used to generate the binding from.
 27169  const TokenControllerABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"onApprove\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"onTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"proxyPayment\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}]"
 27170  
 27171  // TokenControllerFuncSigs maps the 4-byte function signature to its string representation.
 27172  var TokenControllerFuncSigs = map[string]string{
 27173  	"da682aeb": "onApprove(address,address,uint256)",
 27174  	"4a393149": "onTransfer(address,address,uint256)",
 27175  	"f48c3054": "proxyPayment(address)",
 27176  }
 27177  
 27178  // TokenController is an auto generated Go binding around an Ethereum contract.
 27179  type TokenController struct {
 27180  	TokenControllerCaller     // Read-only binding to the contract
 27181  	TokenControllerTransactor // Write-only binding to the contract
 27182  	TokenControllerFilterer   // Log filterer for contract events
 27183  }
 27184  
 27185  // TokenControllerCaller is an auto generated read-only Go binding around an Ethereum contract.
 27186  type TokenControllerCaller struct {
 27187  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 27188  }
 27189  
 27190  // TokenControllerTransactor is an auto generated write-only Go binding around an Ethereum contract.
 27191  type TokenControllerTransactor struct {
 27192  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 27193  }
 27194  
 27195  // TokenControllerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 27196  type TokenControllerFilterer struct {
 27197  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 27198  }
 27199  
 27200  // TokenControllerSession is an auto generated Go binding around an Ethereum contract,
 27201  // with pre-set call and transact options.
 27202  type TokenControllerSession struct {
 27203  	Contract     *TokenController  // Generic contract binding to set the session for
 27204  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 27205  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 27206  }
 27207  
 27208  // TokenControllerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 27209  // with pre-set call options.
 27210  type TokenControllerCallerSession struct {
 27211  	Contract *TokenControllerCaller // Generic contract caller binding to set the session for
 27212  	CallOpts bind.CallOpts          // Call options to use throughout this session
 27213  }
 27214  
 27215  // TokenControllerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 27216  // with pre-set transact options.
 27217  type TokenControllerTransactorSession struct {
 27218  	Contract     *TokenControllerTransactor // Generic contract transactor binding to set the session for
 27219  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 27220  }
 27221  
 27222  // TokenControllerRaw is an auto generated low-level Go binding around an Ethereum contract.
 27223  type TokenControllerRaw struct {
 27224  	Contract *TokenController // Generic contract binding to access the raw methods on
 27225  }
 27226  
 27227  // TokenControllerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 27228  type TokenControllerCallerRaw struct {
 27229  	Contract *TokenControllerCaller // Generic read-only contract binding to access the raw methods on
 27230  }
 27231  
 27232  // TokenControllerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 27233  type TokenControllerTransactorRaw struct {
 27234  	Contract *TokenControllerTransactor // Generic write-only contract binding to access the raw methods on
 27235  }
 27236  
 27237  // NewTokenController creates a new instance of TokenController, bound to a specific deployed contract.
 27238  func NewTokenController(address common.Address, backend bind.ContractBackend) (*TokenController, error) {
 27239  	contract, err := bindTokenController(address, backend, backend, backend)
 27240  	if err != nil {
 27241  		return nil, err
 27242  	}
 27243  	return &TokenController{TokenControllerCaller: TokenControllerCaller{contract: contract}, TokenControllerTransactor: TokenControllerTransactor{contract: contract}, TokenControllerFilterer: TokenControllerFilterer{contract: contract}}, nil
 27244  }
 27245  
 27246  // NewTokenControllerCaller creates a new read-only instance of TokenController, bound to a specific deployed contract.
 27247  func NewTokenControllerCaller(address common.Address, caller bind.ContractCaller) (*TokenControllerCaller, error) {
 27248  	contract, err := bindTokenController(address, caller, nil, nil)
 27249  	if err != nil {
 27250  		return nil, err
 27251  	}
 27252  	return &TokenControllerCaller{contract: contract}, nil
 27253  }
 27254  
 27255  // NewTokenControllerTransactor creates a new write-only instance of TokenController, bound to a specific deployed contract.
 27256  func NewTokenControllerTransactor(address common.Address, transactor bind.ContractTransactor) (*TokenControllerTransactor, error) {
 27257  	contract, err := bindTokenController(address, nil, transactor, nil)
 27258  	if err != nil {
 27259  		return nil, err
 27260  	}
 27261  	return &TokenControllerTransactor{contract: contract}, nil
 27262  }
 27263  
 27264  // NewTokenControllerFilterer creates a new log filterer instance of TokenController, bound to a specific deployed contract.
 27265  func NewTokenControllerFilterer(address common.Address, filterer bind.ContractFilterer) (*TokenControllerFilterer, error) {
 27266  	contract, err := bindTokenController(address, nil, nil, filterer)
 27267  	if err != nil {
 27268  		return nil, err
 27269  	}
 27270  	return &TokenControllerFilterer{contract: contract}, nil
 27271  }
 27272  
 27273  // bindTokenController binds a generic wrapper to an already deployed contract.
 27274  func bindTokenController(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 27275  	parsed, err := abi.JSON(strings.NewReader(TokenControllerABI))
 27276  	if err != nil {
 27277  		return nil, err
 27278  	}
 27279  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 27280  }
 27281  
 27282  // Call invokes the (constant) contract method with params as input values and
 27283  // sets the output to result. The result type might be a single field for simple
 27284  // returns, a slice of interfaces for anonymous returns and a struct for named
 27285  // returns.
 27286  func (_TokenController *TokenControllerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 27287  	return _TokenController.Contract.TokenControllerCaller.contract.Call(opts, result, method, params...)
 27288  }
 27289  
 27290  // Transfer initiates a plain transaction to move funds to the contract, calling
 27291  // its default method if one is available.
 27292  func (_TokenController *TokenControllerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 27293  	return _TokenController.Contract.TokenControllerTransactor.contract.Transfer(opts)
 27294  }
 27295  
 27296  // Transact invokes the (paid) contract method with params as input values.
 27297  func (_TokenController *TokenControllerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 27298  	return _TokenController.Contract.TokenControllerTransactor.contract.Transact(opts, method, params...)
 27299  }
 27300  
 27301  // Call invokes the (constant) contract method with params as input values and
 27302  // sets the output to result. The result type might be a single field for simple
 27303  // returns, a slice of interfaces for anonymous returns and a struct for named
 27304  // returns.
 27305  func (_TokenController *TokenControllerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 27306  	return _TokenController.Contract.contract.Call(opts, result, method, params...)
 27307  }
 27308  
 27309  // Transfer initiates a plain transaction to move funds to the contract, calling
 27310  // its default method if one is available.
 27311  func (_TokenController *TokenControllerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 27312  	return _TokenController.Contract.contract.Transfer(opts)
 27313  }
 27314  
 27315  // Transact invokes the (paid) contract method with params as input values.
 27316  func (_TokenController *TokenControllerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 27317  	return _TokenController.Contract.contract.Transact(opts, method, params...)
 27318  }
 27319  
 27320  // OnApprove is a paid mutator transaction binding the contract method 0xda682aeb.
 27321  //
 27322  // Solidity: function onApprove(address _owner, address _spender, uint256 _amount) returns(bool)
 27323  func (_TokenController *TokenControllerTransactor) OnApprove(opts *bind.TransactOpts, _owner common.Address, _spender common.Address, _amount *big.Int) (*types.Transaction, error) {
 27324  	return _TokenController.contract.Transact(opts, "onApprove", _owner, _spender, _amount)
 27325  }
 27326  
 27327  // OnApprove is a paid mutator transaction binding the contract method 0xda682aeb.
 27328  //
 27329  // Solidity: function onApprove(address _owner, address _spender, uint256 _amount) returns(bool)
 27330  func (_TokenController *TokenControllerSession) OnApprove(_owner common.Address, _spender common.Address, _amount *big.Int) (*types.Transaction, error) {
 27331  	return _TokenController.Contract.OnApprove(&_TokenController.TransactOpts, _owner, _spender, _amount)
 27332  }
 27333  
 27334  // OnApprove is a paid mutator transaction binding the contract method 0xda682aeb.
 27335  //
 27336  // Solidity: function onApprove(address _owner, address _spender, uint256 _amount) returns(bool)
 27337  func (_TokenController *TokenControllerTransactorSession) OnApprove(_owner common.Address, _spender common.Address, _amount *big.Int) (*types.Transaction, error) {
 27338  	return _TokenController.Contract.OnApprove(&_TokenController.TransactOpts, _owner, _spender, _amount)
 27339  }
 27340  
 27341  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 27342  //
 27343  // Solidity: function onTransfer(address _from, address _to, uint256 _amount) returns(bool)
 27344  func (_TokenController *TokenControllerTransactor) OnTransfer(opts *bind.TransactOpts, _from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 27345  	return _TokenController.contract.Transact(opts, "onTransfer", _from, _to, _amount)
 27346  }
 27347  
 27348  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 27349  //
 27350  // Solidity: function onTransfer(address _from, address _to, uint256 _amount) returns(bool)
 27351  func (_TokenController *TokenControllerSession) OnTransfer(_from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 27352  	return _TokenController.Contract.OnTransfer(&_TokenController.TransactOpts, _from, _to, _amount)
 27353  }
 27354  
 27355  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
 27356  //
 27357  // Solidity: function onTransfer(address _from, address _to, uint256 _amount) returns(bool)
 27358  func (_TokenController *TokenControllerTransactorSession) OnTransfer(_from common.Address, _to common.Address, _amount *big.Int) (*types.Transaction, error) {
 27359  	return _TokenController.Contract.OnTransfer(&_TokenController.TransactOpts, _from, _to, _amount)
 27360  }
 27361  
 27362  // ProxyPayment is a paid mutator transaction binding the contract method 0xf48c3054.
 27363  //
 27364  // Solidity: function proxyPayment(address _owner) returns(bool)
 27365  func (_TokenController *TokenControllerTransactor) ProxyPayment(opts *bind.TransactOpts, _owner common.Address) (*types.Transaction, error) {
 27366  	return _TokenController.contract.Transact(opts, "proxyPayment", _owner)
 27367  }
 27368  
 27369  // ProxyPayment is a paid mutator transaction binding the contract method 0xf48c3054.
 27370  //
 27371  // Solidity: function proxyPayment(address _owner) returns(bool)
 27372  func (_TokenController *TokenControllerSession) ProxyPayment(_owner common.Address) (*types.Transaction, error) {
 27373  	return _TokenController.Contract.ProxyPayment(&_TokenController.TransactOpts, _owner)
 27374  }
 27375  
 27376  // ProxyPayment is a paid mutator transaction binding the contract method 0xf48c3054.
 27377  //
 27378  // Solidity: function proxyPayment(address _owner) returns(bool)
 27379  func (_TokenController *TokenControllerTransactorSession) ProxyPayment(_owner common.Address) (*types.Transaction, error) {
 27380  	return _TokenController.Contract.ProxyPayment(&_TokenController.TransactOpts, _owner)
 27381  }