github.com/Onther-Tech/plasma-evm@v0.0.0-rc7.7/contracts/plasma/submithandler/submithandler.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 submithandler
     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 = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820451b843ffb424b86bcba31db5f97373aa893055a6c8333b114cc3f724489f96264736f6c634300050c0032"
    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  // BMTABI is the input ABI used to generate the binding from.
   193  const BMTABI = "[]"
   194  
   195  // BMTBin is the compiled bytecode used for deploying new contracts.
   196  var BMTBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820e40cfcc115c891081c9c49cf067c463d7e9814fa3ea29c4a8d949bc82adcafb264736f6c634300050c0032"
   197  
   198  // DeployBMT deploys a new Ethereum contract, binding an instance of BMT to it.
   199  func DeployBMT(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BMT, error) {
   200  	parsed, err := abi.JSON(strings.NewReader(BMTABI))
   201  	if err != nil {
   202  		return common.Address{}, nil, nil, err
   203  	}
   204  
   205  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(BMTBin), backend)
   206  	if err != nil {
   207  		return common.Address{}, nil, nil, err
   208  	}
   209  	return address, tx, &BMT{BMTCaller: BMTCaller{contract: contract}, BMTTransactor: BMTTransactor{contract: contract}, BMTFilterer: BMTFilterer{contract: contract}}, nil
   210  }
   211  
   212  // BMT is an auto generated Go binding around an Ethereum contract.
   213  type BMT struct {
   214  	BMTCaller     // Read-only binding to the contract
   215  	BMTTransactor // Write-only binding to the contract
   216  	BMTFilterer   // Log filterer for contract events
   217  }
   218  
   219  // BMTCaller is an auto generated read-only Go binding around an Ethereum contract.
   220  type BMTCaller struct {
   221  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   222  }
   223  
   224  // BMTTransactor is an auto generated write-only Go binding around an Ethereum contract.
   225  type BMTTransactor struct {
   226  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   227  }
   228  
   229  // BMTFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   230  type BMTFilterer struct {
   231  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   232  }
   233  
   234  // BMTSession is an auto generated Go binding around an Ethereum contract,
   235  // with pre-set call and transact options.
   236  type BMTSession struct {
   237  	Contract     *BMT              // Generic contract binding to set the session for
   238  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   239  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   240  }
   241  
   242  // BMTCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   243  // with pre-set call options.
   244  type BMTCallerSession struct {
   245  	Contract *BMTCaller    // Generic contract caller binding to set the session for
   246  	CallOpts bind.CallOpts // Call options to use throughout this session
   247  }
   248  
   249  // BMTTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   250  // with pre-set transact options.
   251  type BMTTransactorSession struct {
   252  	Contract     *BMTTransactor    // Generic contract transactor binding to set the session for
   253  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   254  }
   255  
   256  // BMTRaw is an auto generated low-level Go binding around an Ethereum contract.
   257  type BMTRaw struct {
   258  	Contract *BMT // Generic contract binding to access the raw methods on
   259  }
   260  
   261  // BMTCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   262  type BMTCallerRaw struct {
   263  	Contract *BMTCaller // Generic read-only contract binding to access the raw methods on
   264  }
   265  
   266  // BMTTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   267  type BMTTransactorRaw struct {
   268  	Contract *BMTTransactor // Generic write-only contract binding to access the raw methods on
   269  }
   270  
   271  // NewBMT creates a new instance of BMT, bound to a specific deployed contract.
   272  func NewBMT(address common.Address, backend bind.ContractBackend) (*BMT, error) {
   273  	contract, err := bindBMT(address, backend, backend, backend)
   274  	if err != nil {
   275  		return nil, err
   276  	}
   277  	return &BMT{BMTCaller: BMTCaller{contract: contract}, BMTTransactor: BMTTransactor{contract: contract}, BMTFilterer: BMTFilterer{contract: contract}}, nil
   278  }
   279  
   280  // NewBMTCaller creates a new read-only instance of BMT, bound to a specific deployed contract.
   281  func NewBMTCaller(address common.Address, caller bind.ContractCaller) (*BMTCaller, error) {
   282  	contract, err := bindBMT(address, caller, nil, nil)
   283  	if err != nil {
   284  		return nil, err
   285  	}
   286  	return &BMTCaller{contract: contract}, nil
   287  }
   288  
   289  // NewBMTTransactor creates a new write-only instance of BMT, bound to a specific deployed contract.
   290  func NewBMTTransactor(address common.Address, transactor bind.ContractTransactor) (*BMTTransactor, error) {
   291  	contract, err := bindBMT(address, nil, transactor, nil)
   292  	if err != nil {
   293  		return nil, err
   294  	}
   295  	return &BMTTransactor{contract: contract}, nil
   296  }
   297  
   298  // NewBMTFilterer creates a new log filterer instance of BMT, bound to a specific deployed contract.
   299  func NewBMTFilterer(address common.Address, filterer bind.ContractFilterer) (*BMTFilterer, error) {
   300  	contract, err := bindBMT(address, nil, nil, filterer)
   301  	if err != nil {
   302  		return nil, err
   303  	}
   304  	return &BMTFilterer{contract: contract}, nil
   305  }
   306  
   307  // bindBMT binds a generic wrapper to an already deployed contract.
   308  func bindBMT(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   309  	parsed, err := abi.JSON(strings.NewReader(BMTABI))
   310  	if err != nil {
   311  		return nil, err
   312  	}
   313  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   314  }
   315  
   316  // Call invokes the (constant) contract method with params as input values and
   317  // sets the output to result. The result type might be a single field for simple
   318  // returns, a slice of interfaces for anonymous returns and a struct for named
   319  // returns.
   320  func (_BMT *BMTRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   321  	return _BMT.Contract.BMTCaller.contract.Call(opts, result, method, params...)
   322  }
   323  
   324  // Transfer initiates a plain transaction to move funds to the contract, calling
   325  // its default method if one is available.
   326  func (_BMT *BMTRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   327  	return _BMT.Contract.BMTTransactor.contract.Transfer(opts)
   328  }
   329  
   330  // Transact invokes the (paid) contract method with params as input values.
   331  func (_BMT *BMTRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   332  	return _BMT.Contract.BMTTransactor.contract.Transact(opts, method, params...)
   333  }
   334  
   335  // Call invokes the (constant) contract method with params as input values and
   336  // sets the output to result. The result type might be a single field for simple
   337  // returns, a slice of interfaces for anonymous returns and a struct for named
   338  // returns.
   339  func (_BMT *BMTCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   340  	return _BMT.Contract.contract.Call(opts, result, method, params...)
   341  }
   342  
   343  // Transfer initiates a plain transaction to move funds to the contract, calling
   344  // its default method if one is available.
   345  func (_BMT *BMTTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   346  	return _BMT.Contract.contract.Transfer(opts)
   347  }
   348  
   349  // Transact invokes the (paid) contract method with params as input values.
   350  func (_BMT *BMTTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   351  	return _BMT.Contract.contract.Transact(opts, method, params...)
   352  }
   353  
   354  // DataABI is the input ABI used to generate the binding from.
   355  const DataABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"APPLY_IN_CHILDCHAIN_SIGNATURE\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"APPLY_IN_ROOTCHAIN_SIGNATURE\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NA_TX_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NA_TX_GAS_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
   356  
   357  // DataFuncSigs maps the 4-byte function signature to its string representation.
   358  var DataFuncSigs = map[string]string{
   359  	"a89ca766": "APPLY_IN_CHILDCHAIN_SIGNATURE()",
   360  	"a7b6ae28": "APPLY_IN_ROOTCHAIN_SIGNATURE()",
   361  	"ab73ff05": "NA()",
   362  	"90e84f56": "NA_TX_GAS_LIMIT()",
   363  	"1927ac58": "NA_TX_GAS_PRICE()",
   364  }
   365  
   366  // DataBin is the compiled bytecode used for deploying new contracts.
   367  var DataBin = "0x6101cf610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c80631927ac581461006657806390e84f5614610080578063a7b6ae2814610088578063a89ca766146100ad578063ab73ff05146100b5575b600080fd5b61006e6100d9565b60408051918252519081900360200190f35b61006e6100e1565b6100906100e8565b604080516001600160e01b03199092168252519081900360200190f35b610090610103565b6100bd61011e565b604080516001600160a01b039092168252519081900360200190f35b633b9aca0081565b620186a081565b60405180603b6101608239603b019050604051809103902081565b60405180603c6101248239603c019050604051809103902081565b60008156fe6170706c7952657175657374496e4368696c64436861696e28626f6f6c2c75696e743235362c616464726573732c627974657333322c6279746573296170706c7952657175657374496e526f6f74436861696e28626f6f6c2c75696e743235362c616464726573732c627974657333322c627974657329a265627a7a723158204c9301a5408d81b999d438ab1834526edc3015412601cd9e2f1a4da5000c968364736f6c634300050c0032"
   368  
   369  // DeployData deploys a new Ethereum contract, binding an instance of Data to it.
   370  func DeployData(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Data, error) {
   371  	parsed, err := abi.JSON(strings.NewReader(DataABI))
   372  	if err != nil {
   373  		return common.Address{}, nil, nil, err
   374  	}
   375  
   376  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(DataBin), backend)
   377  	if err != nil {
   378  		return common.Address{}, nil, nil, err
   379  	}
   380  	return address, tx, &Data{DataCaller: DataCaller{contract: contract}, DataTransactor: DataTransactor{contract: contract}, DataFilterer: DataFilterer{contract: contract}}, nil
   381  }
   382  
   383  // Data is an auto generated Go binding around an Ethereum contract.
   384  type Data struct {
   385  	DataCaller     // Read-only binding to the contract
   386  	DataTransactor // Write-only binding to the contract
   387  	DataFilterer   // Log filterer for contract events
   388  }
   389  
   390  // DataCaller is an auto generated read-only Go binding around an Ethereum contract.
   391  type DataCaller struct {
   392  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   393  }
   394  
   395  // DataTransactor is an auto generated write-only Go binding around an Ethereum contract.
   396  type DataTransactor struct {
   397  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   398  }
   399  
   400  // DataFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   401  type DataFilterer struct {
   402  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   403  }
   404  
   405  // DataSession is an auto generated Go binding around an Ethereum contract,
   406  // with pre-set call and transact options.
   407  type DataSession struct {
   408  	Contract     *Data             // Generic contract binding to set the session for
   409  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   410  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   411  }
   412  
   413  // DataCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   414  // with pre-set call options.
   415  type DataCallerSession struct {
   416  	Contract *DataCaller   // Generic contract caller binding to set the session for
   417  	CallOpts bind.CallOpts // Call options to use throughout this session
   418  }
   419  
   420  // DataTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   421  // with pre-set transact options.
   422  type DataTransactorSession struct {
   423  	Contract     *DataTransactor   // Generic contract transactor binding to set the session for
   424  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   425  }
   426  
   427  // DataRaw is an auto generated low-level Go binding around an Ethereum contract.
   428  type DataRaw struct {
   429  	Contract *Data // Generic contract binding to access the raw methods on
   430  }
   431  
   432  // DataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   433  type DataCallerRaw struct {
   434  	Contract *DataCaller // Generic read-only contract binding to access the raw methods on
   435  }
   436  
   437  // DataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   438  type DataTransactorRaw struct {
   439  	Contract *DataTransactor // Generic write-only contract binding to access the raw methods on
   440  }
   441  
   442  // NewData creates a new instance of Data, bound to a specific deployed contract.
   443  func NewData(address common.Address, backend bind.ContractBackend) (*Data, error) {
   444  	contract, err := bindData(address, backend, backend, backend)
   445  	if err != nil {
   446  		return nil, err
   447  	}
   448  	return &Data{DataCaller: DataCaller{contract: contract}, DataTransactor: DataTransactor{contract: contract}, DataFilterer: DataFilterer{contract: contract}}, nil
   449  }
   450  
   451  // NewDataCaller creates a new read-only instance of Data, bound to a specific deployed contract.
   452  func NewDataCaller(address common.Address, caller bind.ContractCaller) (*DataCaller, error) {
   453  	contract, err := bindData(address, caller, nil, nil)
   454  	if err != nil {
   455  		return nil, err
   456  	}
   457  	return &DataCaller{contract: contract}, nil
   458  }
   459  
   460  // NewDataTransactor creates a new write-only instance of Data, bound to a specific deployed contract.
   461  func NewDataTransactor(address common.Address, transactor bind.ContractTransactor) (*DataTransactor, error) {
   462  	contract, err := bindData(address, nil, transactor, nil)
   463  	if err != nil {
   464  		return nil, err
   465  	}
   466  	return &DataTransactor{contract: contract}, nil
   467  }
   468  
   469  // NewDataFilterer creates a new log filterer instance of Data, bound to a specific deployed contract.
   470  func NewDataFilterer(address common.Address, filterer bind.ContractFilterer) (*DataFilterer, error) {
   471  	contract, err := bindData(address, nil, nil, filterer)
   472  	if err != nil {
   473  		return nil, err
   474  	}
   475  	return &DataFilterer{contract: contract}, nil
   476  }
   477  
   478  // bindData binds a generic wrapper to an already deployed contract.
   479  func bindData(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   480  	parsed, err := abi.JSON(strings.NewReader(DataABI))
   481  	if err != nil {
   482  		return nil, err
   483  	}
   484  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   485  }
   486  
   487  // Call invokes the (constant) contract method with params as input values and
   488  // sets the output to result. The result type might be a single field for simple
   489  // returns, a slice of interfaces for anonymous returns and a struct for named
   490  // returns.
   491  func (_Data *DataRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   492  	return _Data.Contract.DataCaller.contract.Call(opts, result, method, params...)
   493  }
   494  
   495  // Transfer initiates a plain transaction to move funds to the contract, calling
   496  // its default method if one is available.
   497  func (_Data *DataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   498  	return _Data.Contract.DataTransactor.contract.Transfer(opts)
   499  }
   500  
   501  // Transact invokes the (paid) contract method with params as input values.
   502  func (_Data *DataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   503  	return _Data.Contract.DataTransactor.contract.Transact(opts, method, params...)
   504  }
   505  
   506  // Call invokes the (constant) contract method with params as input values and
   507  // sets the output to result. The result type might be a single field for simple
   508  // returns, a slice of interfaces for anonymous returns and a struct for named
   509  // returns.
   510  func (_Data *DataCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   511  	return _Data.Contract.contract.Call(opts, result, method, params...)
   512  }
   513  
   514  // Transfer initiates a plain transaction to move funds to the contract, calling
   515  // its default method if one is available.
   516  func (_Data *DataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   517  	return _Data.Contract.contract.Transfer(opts)
   518  }
   519  
   520  // Transact invokes the (paid) contract method with params as input values.
   521  func (_Data *DataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   522  	return _Data.Contract.contract.Transact(opts, method, params...)
   523  }
   524  
   525  // APPLYINCHILDCHAINSIGNATURE is a free data retrieval call binding the contract method 0xa89ca766.
   526  //
   527  // Solidity: function APPLY_IN_CHILDCHAIN_SIGNATURE() constant returns(bytes4)
   528  func (_Data *DataCaller) APPLYINCHILDCHAINSIGNATURE(opts *bind.CallOpts) ([4]byte, error) {
   529  	var (
   530  		ret0 = new([4]byte)
   531  	)
   532  	out := ret0
   533  	err := _Data.contract.Call(opts, out, "APPLY_IN_CHILDCHAIN_SIGNATURE")
   534  	return *ret0, err
   535  }
   536  
   537  // APPLYINCHILDCHAINSIGNATURE is a free data retrieval call binding the contract method 0xa89ca766.
   538  //
   539  // Solidity: function APPLY_IN_CHILDCHAIN_SIGNATURE() constant returns(bytes4)
   540  func (_Data *DataSession) APPLYINCHILDCHAINSIGNATURE() ([4]byte, error) {
   541  	return _Data.Contract.APPLYINCHILDCHAINSIGNATURE(&_Data.CallOpts)
   542  }
   543  
   544  // APPLYINCHILDCHAINSIGNATURE is a free data retrieval call binding the contract method 0xa89ca766.
   545  //
   546  // Solidity: function APPLY_IN_CHILDCHAIN_SIGNATURE() constant returns(bytes4)
   547  func (_Data *DataCallerSession) APPLYINCHILDCHAINSIGNATURE() ([4]byte, error) {
   548  	return _Data.Contract.APPLYINCHILDCHAINSIGNATURE(&_Data.CallOpts)
   549  }
   550  
   551  // APPLYINROOTCHAINSIGNATURE is a free data retrieval call binding the contract method 0xa7b6ae28.
   552  //
   553  // Solidity: function APPLY_IN_ROOTCHAIN_SIGNATURE() constant returns(bytes4)
   554  func (_Data *DataCaller) APPLYINROOTCHAINSIGNATURE(opts *bind.CallOpts) ([4]byte, error) {
   555  	var (
   556  		ret0 = new([4]byte)
   557  	)
   558  	out := ret0
   559  	err := _Data.contract.Call(opts, out, "APPLY_IN_ROOTCHAIN_SIGNATURE")
   560  	return *ret0, err
   561  }
   562  
   563  // APPLYINROOTCHAINSIGNATURE is a free data retrieval call binding the contract method 0xa7b6ae28.
   564  //
   565  // Solidity: function APPLY_IN_ROOTCHAIN_SIGNATURE() constant returns(bytes4)
   566  func (_Data *DataSession) APPLYINROOTCHAINSIGNATURE() ([4]byte, error) {
   567  	return _Data.Contract.APPLYINROOTCHAINSIGNATURE(&_Data.CallOpts)
   568  }
   569  
   570  // APPLYINROOTCHAINSIGNATURE is a free data retrieval call binding the contract method 0xa7b6ae28.
   571  //
   572  // Solidity: function APPLY_IN_ROOTCHAIN_SIGNATURE() constant returns(bytes4)
   573  func (_Data *DataCallerSession) APPLYINROOTCHAINSIGNATURE() ([4]byte, error) {
   574  	return _Data.Contract.APPLYINROOTCHAINSIGNATURE(&_Data.CallOpts)
   575  }
   576  
   577  // NA is a free data retrieval call binding the contract method 0xab73ff05.
   578  //
   579  // Solidity: function NA() constant returns(address)
   580  func (_Data *DataCaller) NA(opts *bind.CallOpts) (common.Address, error) {
   581  	var (
   582  		ret0 = new(common.Address)
   583  	)
   584  	out := ret0
   585  	err := _Data.contract.Call(opts, out, "NA")
   586  	return *ret0, err
   587  }
   588  
   589  // NA is a free data retrieval call binding the contract method 0xab73ff05.
   590  //
   591  // Solidity: function NA() constant returns(address)
   592  func (_Data *DataSession) NA() (common.Address, error) {
   593  	return _Data.Contract.NA(&_Data.CallOpts)
   594  }
   595  
   596  // NA is a free data retrieval call binding the contract method 0xab73ff05.
   597  //
   598  // Solidity: function NA() constant returns(address)
   599  func (_Data *DataCallerSession) NA() (common.Address, error) {
   600  	return _Data.Contract.NA(&_Data.CallOpts)
   601  }
   602  
   603  // NATXGASLIMIT is a free data retrieval call binding the contract method 0x90e84f56.
   604  //
   605  // Solidity: function NA_TX_GAS_LIMIT() constant returns(uint256)
   606  func (_Data *DataCaller) NATXGASLIMIT(opts *bind.CallOpts) (*big.Int, error) {
   607  	var (
   608  		ret0 = new(*big.Int)
   609  	)
   610  	out := ret0
   611  	err := _Data.contract.Call(opts, out, "NA_TX_GAS_LIMIT")
   612  	return *ret0, err
   613  }
   614  
   615  // NATXGASLIMIT is a free data retrieval call binding the contract method 0x90e84f56.
   616  //
   617  // Solidity: function NA_TX_GAS_LIMIT() constant returns(uint256)
   618  func (_Data *DataSession) NATXGASLIMIT() (*big.Int, error) {
   619  	return _Data.Contract.NATXGASLIMIT(&_Data.CallOpts)
   620  }
   621  
   622  // NATXGASLIMIT is a free data retrieval call binding the contract method 0x90e84f56.
   623  //
   624  // Solidity: function NA_TX_GAS_LIMIT() constant returns(uint256)
   625  func (_Data *DataCallerSession) NATXGASLIMIT() (*big.Int, error) {
   626  	return _Data.Contract.NATXGASLIMIT(&_Data.CallOpts)
   627  }
   628  
   629  // NATXGASPRICE is a free data retrieval call binding the contract method 0x1927ac58.
   630  //
   631  // Solidity: function NA_TX_GAS_PRICE() constant returns(uint256)
   632  func (_Data *DataCaller) NATXGASPRICE(opts *bind.CallOpts) (*big.Int, error) {
   633  	var (
   634  		ret0 = new(*big.Int)
   635  	)
   636  	out := ret0
   637  	err := _Data.contract.Call(opts, out, "NA_TX_GAS_PRICE")
   638  	return *ret0, err
   639  }
   640  
   641  // NATXGASPRICE is a free data retrieval call binding the contract method 0x1927ac58.
   642  //
   643  // Solidity: function NA_TX_GAS_PRICE() constant returns(uint256)
   644  func (_Data *DataSession) NATXGASPRICE() (*big.Int, error) {
   645  	return _Data.Contract.NATXGASPRICE(&_Data.CallOpts)
   646  }
   647  
   648  // NATXGASPRICE is a free data retrieval call binding the contract method 0x1927ac58.
   649  //
   650  // Solidity: function NA_TX_GAS_PRICE() constant returns(uint256)
   651  func (_Data *DataCallerSession) NATXGASPRICE() (*big.Int, error) {
   652  	return _Data.Contract.NATXGASPRICE(&_Data.CallOpts)
   653  }
   654  
   655  // MathABI is the input ABI used to generate the binding from.
   656  const MathABI = "[]"
   657  
   658  // MathBin is the compiled bytecode used for deploying new contracts.
   659  var MathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582059f5b6656555777713940676f444002442a3eab637cd25b4c9bb08f94083d96b64736f6c634300050c0032"
   660  
   661  // DeployMath deploys a new Ethereum contract, binding an instance of Math to it.
   662  func DeployMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Math, error) {
   663  	parsed, err := abi.JSON(strings.NewReader(MathABI))
   664  	if err != nil {
   665  		return common.Address{}, nil, nil, err
   666  	}
   667  
   668  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(MathBin), backend)
   669  	if err != nil {
   670  		return common.Address{}, nil, nil, err
   671  	}
   672  	return address, tx, &Math{MathCaller: MathCaller{contract: contract}, MathTransactor: MathTransactor{contract: contract}, MathFilterer: MathFilterer{contract: contract}}, nil
   673  }
   674  
   675  // Math is an auto generated Go binding around an Ethereum contract.
   676  type Math struct {
   677  	MathCaller     // Read-only binding to the contract
   678  	MathTransactor // Write-only binding to the contract
   679  	MathFilterer   // Log filterer for contract events
   680  }
   681  
   682  // MathCaller is an auto generated read-only Go binding around an Ethereum contract.
   683  type MathCaller struct {
   684  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   685  }
   686  
   687  // MathTransactor is an auto generated write-only Go binding around an Ethereum contract.
   688  type MathTransactor struct {
   689  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   690  }
   691  
   692  // MathFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   693  type MathFilterer struct {
   694  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   695  }
   696  
   697  // MathSession is an auto generated Go binding around an Ethereum contract,
   698  // with pre-set call and transact options.
   699  type MathSession struct {
   700  	Contract     *Math             // Generic contract binding to set the session for
   701  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   702  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   703  }
   704  
   705  // MathCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   706  // with pre-set call options.
   707  type MathCallerSession struct {
   708  	Contract *MathCaller   // Generic contract caller binding to set the session for
   709  	CallOpts bind.CallOpts // Call options to use throughout this session
   710  }
   711  
   712  // MathTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   713  // with pre-set transact options.
   714  type MathTransactorSession struct {
   715  	Contract     *MathTransactor   // Generic contract transactor binding to set the session for
   716  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   717  }
   718  
   719  // MathRaw is an auto generated low-level Go binding around an Ethereum contract.
   720  type MathRaw struct {
   721  	Contract *Math // Generic contract binding to access the raw methods on
   722  }
   723  
   724  // MathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   725  type MathCallerRaw struct {
   726  	Contract *MathCaller // Generic read-only contract binding to access the raw methods on
   727  }
   728  
   729  // MathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   730  type MathTransactorRaw struct {
   731  	Contract *MathTransactor // Generic write-only contract binding to access the raw methods on
   732  }
   733  
   734  // NewMath creates a new instance of Math, bound to a specific deployed contract.
   735  func NewMath(address common.Address, backend bind.ContractBackend) (*Math, error) {
   736  	contract, err := bindMath(address, backend, backend, backend)
   737  	if err != nil {
   738  		return nil, err
   739  	}
   740  	return &Math{MathCaller: MathCaller{contract: contract}, MathTransactor: MathTransactor{contract: contract}, MathFilterer: MathFilterer{contract: contract}}, nil
   741  }
   742  
   743  // NewMathCaller creates a new read-only instance of Math, bound to a specific deployed contract.
   744  func NewMathCaller(address common.Address, caller bind.ContractCaller) (*MathCaller, error) {
   745  	contract, err := bindMath(address, caller, nil, nil)
   746  	if err != nil {
   747  		return nil, err
   748  	}
   749  	return &MathCaller{contract: contract}, nil
   750  }
   751  
   752  // NewMathTransactor creates a new write-only instance of Math, bound to a specific deployed contract.
   753  func NewMathTransactor(address common.Address, transactor bind.ContractTransactor) (*MathTransactor, error) {
   754  	contract, err := bindMath(address, nil, transactor, nil)
   755  	if err != nil {
   756  		return nil, err
   757  	}
   758  	return &MathTransactor{contract: contract}, nil
   759  }
   760  
   761  // NewMathFilterer creates a new log filterer instance of Math, bound to a specific deployed contract.
   762  func NewMathFilterer(address common.Address, filterer bind.ContractFilterer) (*MathFilterer, error) {
   763  	contract, err := bindMath(address, nil, nil, filterer)
   764  	if err != nil {
   765  		return nil, err
   766  	}
   767  	return &MathFilterer{contract: contract}, nil
   768  }
   769  
   770  // bindMath binds a generic wrapper to an already deployed contract.
   771  func bindMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   772  	parsed, err := abi.JSON(strings.NewReader(MathABI))
   773  	if err != nil {
   774  		return nil, err
   775  	}
   776  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   777  }
   778  
   779  // Call invokes the (constant) contract method with params as input values and
   780  // sets the output to result. The result type might be a single field for simple
   781  // returns, a slice of interfaces for anonymous returns and a struct for named
   782  // returns.
   783  func (_Math *MathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   784  	return _Math.Contract.MathCaller.contract.Call(opts, result, method, params...)
   785  }
   786  
   787  // Transfer initiates a plain transaction to move funds to the contract, calling
   788  // its default method if one is available.
   789  func (_Math *MathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   790  	return _Math.Contract.MathTransactor.contract.Transfer(opts)
   791  }
   792  
   793  // Transact invokes the (paid) contract method with params as input values.
   794  func (_Math *MathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   795  	return _Math.Contract.MathTransactor.contract.Transact(opts, method, params...)
   796  }
   797  
   798  // Call invokes the (constant) contract method with params as input values and
   799  // sets the output to result. The result type might be a single field for simple
   800  // returns, a slice of interfaces for anonymous returns and a struct for named
   801  // returns.
   802  func (_Math *MathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   803  	return _Math.Contract.contract.Call(opts, result, method, params...)
   804  }
   805  
   806  // Transfer initiates a plain transaction to move funds to the contract, calling
   807  // its default method if one is available.
   808  func (_Math *MathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   809  	return _Math.Contract.contract.Transfer(opts)
   810  }
   811  
   812  // Transact invokes the (paid) contract method with params as input values.
   813  func (_Math *MathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   814  	return _Math.Contract.contract.Transact(opts, method, params...)
   815  }
   816  
   817  // RLPABI is the input ABI used to generate the binding from.
   818  const RLPABI = "[]"
   819  
   820  // RLPBin is the compiled bytecode used for deploying new contracts.
   821  var RLPBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158200e62f7dc00fc4c8eac04f8d672dc03a017efe72ff7483585fb6978cb1b070d1264736f6c634300050c0032"
   822  
   823  // DeployRLP deploys a new Ethereum contract, binding an instance of RLP to it.
   824  func DeployRLP(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RLP, error) {
   825  	parsed, err := abi.JSON(strings.NewReader(RLPABI))
   826  	if err != nil {
   827  		return common.Address{}, nil, nil, err
   828  	}
   829  
   830  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RLPBin), backend)
   831  	if err != nil {
   832  		return common.Address{}, nil, nil, err
   833  	}
   834  	return address, tx, &RLP{RLPCaller: RLPCaller{contract: contract}, RLPTransactor: RLPTransactor{contract: contract}, RLPFilterer: RLPFilterer{contract: contract}}, nil
   835  }
   836  
   837  // RLP is an auto generated Go binding around an Ethereum contract.
   838  type RLP struct {
   839  	RLPCaller     // Read-only binding to the contract
   840  	RLPTransactor // Write-only binding to the contract
   841  	RLPFilterer   // Log filterer for contract events
   842  }
   843  
   844  // RLPCaller is an auto generated read-only Go binding around an Ethereum contract.
   845  type RLPCaller struct {
   846  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   847  }
   848  
   849  // RLPTransactor is an auto generated write-only Go binding around an Ethereum contract.
   850  type RLPTransactor struct {
   851  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   852  }
   853  
   854  // RLPFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   855  type RLPFilterer struct {
   856  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   857  }
   858  
   859  // RLPSession is an auto generated Go binding around an Ethereum contract,
   860  // with pre-set call and transact options.
   861  type RLPSession struct {
   862  	Contract     *RLP              // Generic contract binding to set the session for
   863  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   864  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   865  }
   866  
   867  // RLPCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   868  // with pre-set call options.
   869  type RLPCallerSession struct {
   870  	Contract *RLPCaller    // Generic contract caller binding to set the session for
   871  	CallOpts bind.CallOpts // Call options to use throughout this session
   872  }
   873  
   874  // RLPTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   875  // with pre-set transact options.
   876  type RLPTransactorSession struct {
   877  	Contract     *RLPTransactor    // Generic contract transactor binding to set the session for
   878  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   879  }
   880  
   881  // RLPRaw is an auto generated low-level Go binding around an Ethereum contract.
   882  type RLPRaw struct {
   883  	Contract *RLP // Generic contract binding to access the raw methods on
   884  }
   885  
   886  // RLPCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   887  type RLPCallerRaw struct {
   888  	Contract *RLPCaller // Generic read-only contract binding to access the raw methods on
   889  }
   890  
   891  // RLPTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   892  type RLPTransactorRaw struct {
   893  	Contract *RLPTransactor // Generic write-only contract binding to access the raw methods on
   894  }
   895  
   896  // NewRLP creates a new instance of RLP, bound to a specific deployed contract.
   897  func NewRLP(address common.Address, backend bind.ContractBackend) (*RLP, error) {
   898  	contract, err := bindRLP(address, backend, backend, backend)
   899  	if err != nil {
   900  		return nil, err
   901  	}
   902  	return &RLP{RLPCaller: RLPCaller{contract: contract}, RLPTransactor: RLPTransactor{contract: contract}, RLPFilterer: RLPFilterer{contract: contract}}, nil
   903  }
   904  
   905  // NewRLPCaller creates a new read-only instance of RLP, bound to a specific deployed contract.
   906  func NewRLPCaller(address common.Address, caller bind.ContractCaller) (*RLPCaller, error) {
   907  	contract, err := bindRLP(address, caller, nil, nil)
   908  	if err != nil {
   909  		return nil, err
   910  	}
   911  	return &RLPCaller{contract: contract}, nil
   912  }
   913  
   914  // NewRLPTransactor creates a new write-only instance of RLP, bound to a specific deployed contract.
   915  func NewRLPTransactor(address common.Address, transactor bind.ContractTransactor) (*RLPTransactor, error) {
   916  	contract, err := bindRLP(address, nil, transactor, nil)
   917  	if err != nil {
   918  		return nil, err
   919  	}
   920  	return &RLPTransactor{contract: contract}, nil
   921  }
   922  
   923  // NewRLPFilterer creates a new log filterer instance of RLP, bound to a specific deployed contract.
   924  func NewRLPFilterer(address common.Address, filterer bind.ContractFilterer) (*RLPFilterer, error) {
   925  	contract, err := bindRLP(address, nil, nil, filterer)
   926  	if err != nil {
   927  		return nil, err
   928  	}
   929  	return &RLPFilterer{contract: contract}, nil
   930  }
   931  
   932  // bindRLP binds a generic wrapper to an already deployed contract.
   933  func bindRLP(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   934  	parsed, err := abi.JSON(strings.NewReader(RLPABI))
   935  	if err != nil {
   936  		return nil, err
   937  	}
   938  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   939  }
   940  
   941  // Call invokes the (constant) contract method with params as input values and
   942  // sets the output to result. The result type might be a single field for simple
   943  // returns, a slice of interfaces for anonymous returns and a struct for named
   944  // returns.
   945  func (_RLP *RLPRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   946  	return _RLP.Contract.RLPCaller.contract.Call(opts, result, method, params...)
   947  }
   948  
   949  // Transfer initiates a plain transaction to move funds to the contract, calling
   950  // its default method if one is available.
   951  func (_RLP *RLPRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   952  	return _RLP.Contract.RLPTransactor.contract.Transfer(opts)
   953  }
   954  
   955  // Transact invokes the (paid) contract method with params as input values.
   956  func (_RLP *RLPRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   957  	return _RLP.Contract.RLPTransactor.contract.Transact(opts, method, params...)
   958  }
   959  
   960  // Call invokes the (constant) contract method with params as input values and
   961  // sets the output to result. The result type might be a single field for simple
   962  // returns, a slice of interfaces for anonymous returns and a struct for named
   963  // returns.
   964  func (_RLP *RLPCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   965  	return _RLP.Contract.contract.Call(opts, result, method, params...)
   966  }
   967  
   968  // Transfer initiates a plain transaction to move funds to the contract, calling
   969  // its default method if one is available.
   970  func (_RLP *RLPTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   971  	return _RLP.Contract.contract.Transfer(opts)
   972  }
   973  
   974  // Transact invokes the (paid) contract method with params as input values.
   975  func (_RLP *RLPTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   976  	return _RLP.Contract.contract.Transact(opts, method, params...)
   977  }
   978  
   979  // RLPEncodeABI is the input ABI used to generate the binding from.
   980  const RLPEncodeABI = "[]"
   981  
   982  // RLPEncodeBin is the compiled bytecode used for deploying new contracts.
   983  var RLPEncodeBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158205da3446f8619339802867bf627e0a042d4f4176598fe1e096c50366e6bfe24a164736f6c634300050c0032"
   984  
   985  // DeployRLPEncode deploys a new Ethereum contract, binding an instance of RLPEncode to it.
   986  func DeployRLPEncode(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RLPEncode, error) {
   987  	parsed, err := abi.JSON(strings.NewReader(RLPEncodeABI))
   988  	if err != nil {
   989  		return common.Address{}, nil, nil, err
   990  	}
   991  
   992  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RLPEncodeBin), backend)
   993  	if err != nil {
   994  		return common.Address{}, nil, nil, err
   995  	}
   996  	return address, tx, &RLPEncode{RLPEncodeCaller: RLPEncodeCaller{contract: contract}, RLPEncodeTransactor: RLPEncodeTransactor{contract: contract}, RLPEncodeFilterer: RLPEncodeFilterer{contract: contract}}, nil
   997  }
   998  
   999  // RLPEncode is an auto generated Go binding around an Ethereum contract.
  1000  type RLPEncode struct {
  1001  	RLPEncodeCaller     // Read-only binding to the contract
  1002  	RLPEncodeTransactor // Write-only binding to the contract
  1003  	RLPEncodeFilterer   // Log filterer for contract events
  1004  }
  1005  
  1006  // RLPEncodeCaller is an auto generated read-only Go binding around an Ethereum contract.
  1007  type RLPEncodeCaller struct {
  1008  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1009  }
  1010  
  1011  // RLPEncodeTransactor is an auto generated write-only Go binding around an Ethereum contract.
  1012  type RLPEncodeTransactor struct {
  1013  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1014  }
  1015  
  1016  // RLPEncodeFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  1017  type RLPEncodeFilterer struct {
  1018  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1019  }
  1020  
  1021  // RLPEncodeSession is an auto generated Go binding around an Ethereum contract,
  1022  // with pre-set call and transact options.
  1023  type RLPEncodeSession struct {
  1024  	Contract     *RLPEncode        // Generic contract binding to set the session for
  1025  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1026  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1027  }
  1028  
  1029  // RLPEncodeCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  1030  // with pre-set call options.
  1031  type RLPEncodeCallerSession struct {
  1032  	Contract *RLPEncodeCaller // Generic contract caller binding to set the session for
  1033  	CallOpts bind.CallOpts    // Call options to use throughout this session
  1034  }
  1035  
  1036  // RLPEncodeTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  1037  // with pre-set transact options.
  1038  type RLPEncodeTransactorSession struct {
  1039  	Contract     *RLPEncodeTransactor // Generic contract transactor binding to set the session for
  1040  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  1041  }
  1042  
  1043  // RLPEncodeRaw is an auto generated low-level Go binding around an Ethereum contract.
  1044  type RLPEncodeRaw struct {
  1045  	Contract *RLPEncode // Generic contract binding to access the raw methods on
  1046  }
  1047  
  1048  // RLPEncodeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  1049  type RLPEncodeCallerRaw struct {
  1050  	Contract *RLPEncodeCaller // Generic read-only contract binding to access the raw methods on
  1051  }
  1052  
  1053  // RLPEncodeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  1054  type RLPEncodeTransactorRaw struct {
  1055  	Contract *RLPEncodeTransactor // Generic write-only contract binding to access the raw methods on
  1056  }
  1057  
  1058  // NewRLPEncode creates a new instance of RLPEncode, bound to a specific deployed contract.
  1059  func NewRLPEncode(address common.Address, backend bind.ContractBackend) (*RLPEncode, error) {
  1060  	contract, err := bindRLPEncode(address, backend, backend, backend)
  1061  	if err != nil {
  1062  		return nil, err
  1063  	}
  1064  	return &RLPEncode{RLPEncodeCaller: RLPEncodeCaller{contract: contract}, RLPEncodeTransactor: RLPEncodeTransactor{contract: contract}, RLPEncodeFilterer: RLPEncodeFilterer{contract: contract}}, nil
  1065  }
  1066  
  1067  // NewRLPEncodeCaller creates a new read-only instance of RLPEncode, bound to a specific deployed contract.
  1068  func NewRLPEncodeCaller(address common.Address, caller bind.ContractCaller) (*RLPEncodeCaller, error) {
  1069  	contract, err := bindRLPEncode(address, caller, nil, nil)
  1070  	if err != nil {
  1071  		return nil, err
  1072  	}
  1073  	return &RLPEncodeCaller{contract: contract}, nil
  1074  }
  1075  
  1076  // NewRLPEncodeTransactor creates a new write-only instance of RLPEncode, bound to a specific deployed contract.
  1077  func NewRLPEncodeTransactor(address common.Address, transactor bind.ContractTransactor) (*RLPEncodeTransactor, error) {
  1078  	contract, err := bindRLPEncode(address, nil, transactor, nil)
  1079  	if err != nil {
  1080  		return nil, err
  1081  	}
  1082  	return &RLPEncodeTransactor{contract: contract}, nil
  1083  }
  1084  
  1085  // NewRLPEncodeFilterer creates a new log filterer instance of RLPEncode, bound to a specific deployed contract.
  1086  func NewRLPEncodeFilterer(address common.Address, filterer bind.ContractFilterer) (*RLPEncodeFilterer, error) {
  1087  	contract, err := bindRLPEncode(address, nil, nil, filterer)
  1088  	if err != nil {
  1089  		return nil, err
  1090  	}
  1091  	return &RLPEncodeFilterer{contract: contract}, nil
  1092  }
  1093  
  1094  // bindRLPEncode binds a generic wrapper to an already deployed contract.
  1095  func bindRLPEncode(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1096  	parsed, err := abi.JSON(strings.NewReader(RLPEncodeABI))
  1097  	if err != nil {
  1098  		return nil, err
  1099  	}
  1100  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1101  }
  1102  
  1103  // Call invokes the (constant) contract method with params as input values and
  1104  // sets the output to result. The result type might be a single field for simple
  1105  // returns, a slice of interfaces for anonymous returns and a struct for named
  1106  // returns.
  1107  func (_RLPEncode *RLPEncodeRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1108  	return _RLPEncode.Contract.RLPEncodeCaller.contract.Call(opts, result, method, params...)
  1109  }
  1110  
  1111  // Transfer initiates a plain transaction to move funds to the contract, calling
  1112  // its default method if one is available.
  1113  func (_RLPEncode *RLPEncodeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1114  	return _RLPEncode.Contract.RLPEncodeTransactor.contract.Transfer(opts)
  1115  }
  1116  
  1117  // Transact invokes the (paid) contract method with params as input values.
  1118  func (_RLPEncode *RLPEncodeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1119  	return _RLPEncode.Contract.RLPEncodeTransactor.contract.Transact(opts, method, params...)
  1120  }
  1121  
  1122  // Call invokes the (constant) contract method with params as input values and
  1123  // sets the output to result. The result type might be a single field for simple
  1124  // returns, a slice of interfaces for anonymous returns and a struct for named
  1125  // returns.
  1126  func (_RLPEncode *RLPEncodeCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1127  	return _RLPEncode.Contract.contract.Call(opts, result, method, params...)
  1128  }
  1129  
  1130  // Transfer initiates a plain transaction to move funds to the contract, calling
  1131  // its default method if one is available.
  1132  func (_RLPEncode *RLPEncodeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1133  	return _RLPEncode.Contract.contract.Transfer(opts)
  1134  }
  1135  
  1136  // Transact invokes the (paid) contract method with params as input values.
  1137  func (_RLPEncode *RLPEncodeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1138  	return _RLPEncode.Contract.contract.Transact(opts, method, params...)
  1139  }
  1140  
  1141  // RequestableIABI is the input ABI used to generate the binding from.
  1142  const RequestableIABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"name\":\"applyRequestInChildChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"name\":\"applyRequestInRootChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  1143  
  1144  // RequestableIFuncSigs maps the 4-byte function signature to its string representation.
  1145  var RequestableIFuncSigs = map[string]string{
  1146  	"141ecf46": "applyRequestInChildChain(bool,uint256,address,bytes32,bytes)",
  1147  	"a9f79308": "applyRequestInRootChain(bool,uint256,address,bytes32,bytes)",
  1148  }
  1149  
  1150  // RequestableI is an auto generated Go binding around an Ethereum contract.
  1151  type RequestableI struct {
  1152  	RequestableICaller     // Read-only binding to the contract
  1153  	RequestableITransactor // Write-only binding to the contract
  1154  	RequestableIFilterer   // Log filterer for contract events
  1155  }
  1156  
  1157  // RequestableICaller is an auto generated read-only Go binding around an Ethereum contract.
  1158  type RequestableICaller struct {
  1159  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1160  }
  1161  
  1162  // RequestableITransactor is an auto generated write-only Go binding around an Ethereum contract.
  1163  type RequestableITransactor struct {
  1164  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1165  }
  1166  
  1167  // RequestableIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  1168  type RequestableIFilterer struct {
  1169  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1170  }
  1171  
  1172  // RequestableISession is an auto generated Go binding around an Ethereum contract,
  1173  // with pre-set call and transact options.
  1174  type RequestableISession struct {
  1175  	Contract     *RequestableI     // Generic contract binding to set the session for
  1176  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1177  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1178  }
  1179  
  1180  // RequestableICallerSession is an auto generated read-only Go binding around an Ethereum contract,
  1181  // with pre-set call options.
  1182  type RequestableICallerSession struct {
  1183  	Contract *RequestableICaller // Generic contract caller binding to set the session for
  1184  	CallOpts bind.CallOpts       // Call options to use throughout this session
  1185  }
  1186  
  1187  // RequestableITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  1188  // with pre-set transact options.
  1189  type RequestableITransactorSession struct {
  1190  	Contract     *RequestableITransactor // Generic contract transactor binding to set the session for
  1191  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  1192  }
  1193  
  1194  // RequestableIRaw is an auto generated low-level Go binding around an Ethereum contract.
  1195  type RequestableIRaw struct {
  1196  	Contract *RequestableI // Generic contract binding to access the raw methods on
  1197  }
  1198  
  1199  // RequestableICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  1200  type RequestableICallerRaw struct {
  1201  	Contract *RequestableICaller // Generic read-only contract binding to access the raw methods on
  1202  }
  1203  
  1204  // RequestableITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  1205  type RequestableITransactorRaw struct {
  1206  	Contract *RequestableITransactor // Generic write-only contract binding to access the raw methods on
  1207  }
  1208  
  1209  // NewRequestableI creates a new instance of RequestableI, bound to a specific deployed contract.
  1210  func NewRequestableI(address common.Address, backend bind.ContractBackend) (*RequestableI, error) {
  1211  	contract, err := bindRequestableI(address, backend, backend, backend)
  1212  	if err != nil {
  1213  		return nil, err
  1214  	}
  1215  	return &RequestableI{RequestableICaller: RequestableICaller{contract: contract}, RequestableITransactor: RequestableITransactor{contract: contract}, RequestableIFilterer: RequestableIFilterer{contract: contract}}, nil
  1216  }
  1217  
  1218  // NewRequestableICaller creates a new read-only instance of RequestableI, bound to a specific deployed contract.
  1219  func NewRequestableICaller(address common.Address, caller bind.ContractCaller) (*RequestableICaller, error) {
  1220  	contract, err := bindRequestableI(address, caller, nil, nil)
  1221  	if err != nil {
  1222  		return nil, err
  1223  	}
  1224  	return &RequestableICaller{contract: contract}, nil
  1225  }
  1226  
  1227  // NewRequestableITransactor creates a new write-only instance of RequestableI, bound to a specific deployed contract.
  1228  func NewRequestableITransactor(address common.Address, transactor bind.ContractTransactor) (*RequestableITransactor, error) {
  1229  	contract, err := bindRequestableI(address, nil, transactor, nil)
  1230  	if err != nil {
  1231  		return nil, err
  1232  	}
  1233  	return &RequestableITransactor{contract: contract}, nil
  1234  }
  1235  
  1236  // NewRequestableIFilterer creates a new log filterer instance of RequestableI, bound to a specific deployed contract.
  1237  func NewRequestableIFilterer(address common.Address, filterer bind.ContractFilterer) (*RequestableIFilterer, error) {
  1238  	contract, err := bindRequestableI(address, nil, nil, filterer)
  1239  	if err != nil {
  1240  		return nil, err
  1241  	}
  1242  	return &RequestableIFilterer{contract: contract}, nil
  1243  }
  1244  
  1245  // bindRequestableI binds a generic wrapper to an already deployed contract.
  1246  func bindRequestableI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1247  	parsed, err := abi.JSON(strings.NewReader(RequestableIABI))
  1248  	if err != nil {
  1249  		return nil, err
  1250  	}
  1251  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1252  }
  1253  
  1254  // Call invokes the (constant) contract method with params as input values and
  1255  // sets the output to result. The result type might be a single field for simple
  1256  // returns, a slice of interfaces for anonymous returns and a struct for named
  1257  // returns.
  1258  func (_RequestableI *RequestableIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1259  	return _RequestableI.Contract.RequestableICaller.contract.Call(opts, result, method, params...)
  1260  }
  1261  
  1262  // Transfer initiates a plain transaction to move funds to the contract, calling
  1263  // its default method if one is available.
  1264  func (_RequestableI *RequestableIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1265  	return _RequestableI.Contract.RequestableITransactor.contract.Transfer(opts)
  1266  }
  1267  
  1268  // Transact invokes the (paid) contract method with params as input values.
  1269  func (_RequestableI *RequestableIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1270  	return _RequestableI.Contract.RequestableITransactor.contract.Transact(opts, method, params...)
  1271  }
  1272  
  1273  // Call invokes the (constant) contract method with params as input values and
  1274  // sets the output to result. The result type might be a single field for simple
  1275  // returns, a slice of interfaces for anonymous returns and a struct for named
  1276  // returns.
  1277  func (_RequestableI *RequestableICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1278  	return _RequestableI.Contract.contract.Call(opts, result, method, params...)
  1279  }
  1280  
  1281  // Transfer initiates a plain transaction to move funds to the contract, calling
  1282  // its default method if one is available.
  1283  func (_RequestableI *RequestableITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1284  	return _RequestableI.Contract.contract.Transfer(opts)
  1285  }
  1286  
  1287  // Transact invokes the (paid) contract method with params as input values.
  1288  func (_RequestableI *RequestableITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1289  	return _RequestableI.Contract.contract.Transact(opts, method, params...)
  1290  }
  1291  
  1292  // ApplyRequestInChildChain is a paid mutator transaction binding the contract method 0x141ecf46.
  1293  //
  1294  // Solidity: function applyRequestInChildChain(bool isExit, uint256 requestId, address requestor, bytes32 trieKey, bytes trieValue) returns(bool success)
  1295  func (_RequestableI *RequestableITransactor) ApplyRequestInChildChain(opts *bind.TransactOpts, isExit bool, requestId *big.Int, requestor common.Address, trieKey [32]byte, trieValue []byte) (*types.Transaction, error) {
  1296  	return _RequestableI.contract.Transact(opts, "applyRequestInChildChain", isExit, requestId, requestor, trieKey, trieValue)
  1297  }
  1298  
  1299  // ApplyRequestInChildChain is a paid mutator transaction binding the contract method 0x141ecf46.
  1300  //
  1301  // Solidity: function applyRequestInChildChain(bool isExit, uint256 requestId, address requestor, bytes32 trieKey, bytes trieValue) returns(bool success)
  1302  func (_RequestableI *RequestableISession) ApplyRequestInChildChain(isExit bool, requestId *big.Int, requestor common.Address, trieKey [32]byte, trieValue []byte) (*types.Transaction, error) {
  1303  	return _RequestableI.Contract.ApplyRequestInChildChain(&_RequestableI.TransactOpts, isExit, requestId, requestor, trieKey, trieValue)
  1304  }
  1305  
  1306  // ApplyRequestInChildChain is a paid mutator transaction binding the contract method 0x141ecf46.
  1307  //
  1308  // Solidity: function applyRequestInChildChain(bool isExit, uint256 requestId, address requestor, bytes32 trieKey, bytes trieValue) returns(bool success)
  1309  func (_RequestableI *RequestableITransactorSession) ApplyRequestInChildChain(isExit bool, requestId *big.Int, requestor common.Address, trieKey [32]byte, trieValue []byte) (*types.Transaction, error) {
  1310  	return _RequestableI.Contract.ApplyRequestInChildChain(&_RequestableI.TransactOpts, isExit, requestId, requestor, trieKey, trieValue)
  1311  }
  1312  
  1313  // ApplyRequestInRootChain is a paid mutator transaction binding the contract method 0xa9f79308.
  1314  //
  1315  // Solidity: function applyRequestInRootChain(bool isExit, uint256 requestId, address requestor, bytes32 trieKey, bytes trieValue) returns(bool success)
  1316  func (_RequestableI *RequestableITransactor) ApplyRequestInRootChain(opts *bind.TransactOpts, isExit bool, requestId *big.Int, requestor common.Address, trieKey [32]byte, trieValue []byte) (*types.Transaction, error) {
  1317  	return _RequestableI.contract.Transact(opts, "applyRequestInRootChain", isExit, requestId, requestor, trieKey, trieValue)
  1318  }
  1319  
  1320  // ApplyRequestInRootChain is a paid mutator transaction binding the contract method 0xa9f79308.
  1321  //
  1322  // Solidity: function applyRequestInRootChain(bool isExit, uint256 requestId, address requestor, bytes32 trieKey, bytes trieValue) returns(bool success)
  1323  func (_RequestableI *RequestableISession) ApplyRequestInRootChain(isExit bool, requestId *big.Int, requestor common.Address, trieKey [32]byte, trieValue []byte) (*types.Transaction, error) {
  1324  	return _RequestableI.Contract.ApplyRequestInRootChain(&_RequestableI.TransactOpts, isExit, requestId, requestor, trieKey, trieValue)
  1325  }
  1326  
  1327  // ApplyRequestInRootChain is a paid mutator transaction binding the contract method 0xa9f79308.
  1328  //
  1329  // Solidity: function applyRequestInRootChain(bool isExit, uint256 requestId, address requestor, bytes32 trieKey, bytes trieValue) returns(bool success)
  1330  func (_RequestableI *RequestableITransactorSession) ApplyRequestInRootChain(isExit bool, requestId *big.Int, requestor common.Address, trieKey [32]byte, trieValue []byte) (*types.Transaction, error) {
  1331  	return _RequestableI.Contract.ApplyRequestInRootChain(&_RequestableI.TransactOpts, isExit, requestId, requestor, trieKey, trieValue)
  1332  }
  1333  
  1334  // RootChainBaseABI is the input ABI used to generate the binding from.
  1335  const RootChainBaseABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"BlockFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fork\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"BlockSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trieKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trieValue\",\"type\":\"bytes32\"}],\"name\":\"ERUCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFilling\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"epochIsEmpty\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"rebase\",\"type\":\"bool\"}],\"name\":\"EpochPrepared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"epochIsEmpty\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"EpochRebased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newFork\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkedBlockNumber\",\"type\":\"uint256\"}],\"name\":\"Forked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"OperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestChallenged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weiAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractInRootchain\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractInChildchain\",\"type\":\"address\"}],\"name\":\"RequestableContractMapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"SessionTimeout\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ERO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ERU\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_NRB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ORB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_URB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_URB_PREPARE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_COMPUTATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_EXIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_WITHHOLDING\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EROIdToFinalize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"EROs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransfer\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finalized\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"challenged\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"addresspayable\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ERUIdToFinalize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ERUs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransfer\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finalized\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"challenged\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"addresspayable\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NRELength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ORBs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"numEnter\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"epochNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestEnd\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"trie\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PREPARE_TIMEOUT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"REQUEST_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"URBs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"numEnter\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"epochNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestEnd\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"trie\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"development\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"epochHandler\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"etherToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"firstFilledORENumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"firstNonEmptyRequestEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"forks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"forkedBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastFinalizedEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastFinalizedBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstEnterEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastEnterEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextBlockToRebase\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"rebased\",\"type\":\"bool\"}],\"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\":[],\"name\":\"lastAppliedBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastAppliedEpochNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastAppliedForkNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lastNonEmptyRequestEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numEnterForORB\",\"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\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"requestableContracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submitHandler\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  1336  
  1337  // RootChainBaseFuncSigs maps the 4-byte function signature to its string representation.
  1338  var RootChainBaseFuncSigs = map[string]string{
  1339  	"d691acd8": "COST_ERO()",
  1340  	"8b5172d0": "COST_ERU()",
  1341  	"94be3aa5": "COST_NRB()",
  1342  	"b2ae9ba8": "COST_ORB()",
  1343  	"192adc5b": "COST_URB()",
  1344  	"033cfbed": "COST_URB_PREPARE()",
  1345  	"08c4fff0": "CP_COMPUTATION()",
  1346  	"8155717d": "CP_EXIT()",
  1347  	"b17fa6e9": "CP_WITHHOLDING()",
  1348  	"2dc6bb7b": "EROIdToFinalize()",
  1349  	"b443f3cc": "EROs(uint256)",
  1350  	"c54626cc": "ERUIdToFinalize()",
  1351  	"f4f31de4": "ERUs(uint256)",
  1352  	"ab96da2d": "NRELength()",
  1353  	"de0ce17d": "NULL_ADDRESS()",
  1354  	"ea7f22a8": "ORBs(uint256)",
  1355  	"c2bc88fa": "PREPARE_TIMEOUT()",
  1356  	"8eb288ca": "REQUEST_GAS()",
  1357  	"c0e86064": "URBs(uint256)",
  1358  	"183d2d1c": "currentFork()",
  1359  	"7b929c27": "development()",
  1360  	"e7b88b80": "epochHandler()",
  1361  	"b8066bcb": "etherToken()",
  1362  	"72ecb9a8": "firstFilledORENumber(uint256)",
  1363  	"ca6f6380": "firstNonEmptyRequestEpoch(uint256)",
  1364  	"4ba3a126": "forks(uint256)",
  1365  	"420bb4b8": "isRootChain()",
  1366  	"fb788a27": "lastAppliedBlockNumber()",
  1367  	"c8ad329f": "lastAppliedEpochNumber()",
  1368  	"164bc2ae": "lastAppliedForkNumber()",
  1369  	"b6715647": "lastNonEmptyRequestEpoch(uint256)",
  1370  	"23691566": "numEnterForORB()",
  1371  	"570ca735": "operator()",
  1372  	"da0185f8": "requestableContracts(address)",
  1373  	"6fb7f558": "seigManager()",
  1374  	"e259faf7": "submitHandler()",
  1375  }
  1376  
  1377  // RootChainBaseBin is the compiled bytecode used for deploying new contracts.
  1378  var RootChainBaseBin = "0x608060405234801561001057600080fd5b50610955806100206000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063b17fa6e911610125578063ca6f6380116100ad578063e259faf71161007c578063e259faf714610595578063e7b88b801461059d578063ea7f22a8146105a5578063f4f31de4146105c2578063fb788a27146105df5761021c565b8063ca6f63801461054a578063d691acd814610221578063da0185f814610567578063de0ce17d1461058d5761021c565b8063b8066bcb116100f4578063b8066bcb146104c1578063c0e86064146104c9578063c2bc88fa14610532578063c54626cc1461053a578063c8ad329f146105425761021c565b8063b17fa6e91461038c578063b2ae9ba814610221578063b443f3cc14610394578063b6715647146104a45761021c565b8063570ca735116101a85780638155717d116101775780638155717d1461036c5780638b5172d0146103745780638eb288ca1461037c57806394be3aa514610221578063ab96da2d146103845761021c565b8063570ca7351461031b5780636fb7f5581461033f57806372ecb9a8146103475780637b929c27146103645761021c565b8063192adc5b116101ef578063192adc5b14610253578063236915661461025b5780632dc6bb7b14610263578063420bb4b81461026b5780634ba3a126146102875761021c565b8063033cfbed1461022157806308c4fff01461023b578063164bc2ae14610243578063183d2d1c1461024b575b600080fd5b6102296105e7565b60408051918252519081900360200190f35b6102296105f1565b6102296105f6565b6102296105fc565b610229610602565b61022961060c565b610229610612565b610273610618565b604080519115158252519081900360200190f35b6102a46004803603602081101561029d57600080fd5b503561061d565b6040805167ffffffffffffffff9d8e1681529b8d1660208d0152998c168b8b0152978b1660608b0152958a1660808a015293891660a089015291881660c0880152871660e0870152861661010086015285166101208501529093166101408301529115156101608201529051908190036101800190f35b610323610695565b604080516001600160a01b039092168252519081900360200190f35b6103236106a9565b6102296004803603602081101561035d57600080fd5b50356106b8565b6102736106ca565b6102296106d3565b6102296106d8565b6102296106e2565b6102296106e9565b6102296106ef565b6103b1600480360360208110156103aa57600080fd5b50356106f4565b6040805167ffffffffffffffff8d1681528b15156020808301919091528b151592820192909252891515606082015288151560808201526001600160801b03881660a08201526001600160a01b0380881660c0830152861660e082015261010081018590526101208101849052610160610140820181815284519183019190915283519192909161018084019185019080838360005b8381101561045f578181015183820152602001610447565b50505050905090810190601f16801561048c5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390f35b610229600480360360208110156104ba57600080fd5b5035610816565b610323610828565b6104e6600480360360208110156104df57600080fd5b5035610837565b60408051961515875267ffffffffffffffff958616602088015293851686850152918416606086015290921660808401526001600160a01b0390911660a0830152519081900360c00190f35b61022961089f565b6102296108a4565b6102296108aa565b6102296004803603602081101561056057600080fd5b50356108b0565b6103236004803603602081101561057d57600080fd5b50356001600160a01b03166108c2565b6103236108dd565b6103236108e2565b6103236108f1565b6104e6600480360360208110156105bb57600080fd5b5035610900565b6103b1600480360360208110156105d857600080fd5b503561090d565b61022961091a565b6509184e72a00081565b600f81565b60105481565b60065481565b6551dac207a00081565b600d5481565b60135481565b600181565b60086020526000908152604090208054600182015460029092015467ffffffffffffffff80831693600160401b808504831694600160801b808204851695600160c01b92839004861695858116958581048216958482048316959182900483169484841694918204841693908204169160ff9104168c565b60005461010090046001600160a01b031681565b6004546001600160a01b031681565b60076020526000908152604090205481565b60005460ff1681565b600a81565b6512309ce5400081565b620186a081565b60055481565b601481565b6009818154811061070157fe5b6000918252602091829020600691909102018054600180830154600280850154600386015460048701546005880180546040805161010099831615999099026000190190911695909504601f81018b90048b0288018b0190955284875267ffffffffffffffff88169a50600160401b880460ff9081169a600160481b8a0482169a600160501b8b0483169a600160581b810490931699600160601b9093046001600160801b0316986001600160a01b039081169897169690939183018282801561080c5780601f106107e15761010080835404028352916020019161080c565b820191906000526020600020905b8154815290600101906020018083116107ef57829003601f168201915b505050505090508b565b600e6020526000908152604090205481565b6003546001600160a01b031681565b600c818154811061084457fe5b60009182526020909120600290910201805460019091015460ff8216925067ffffffffffffffff6101008304811692600160481b8104821692600160881b9091048216918116906001600160a01b03600160401b9091041686565b603c81565b60145481565b60115481565b600f6020526000908152604090205481565b6015602052600090815260409020546001600160a01b031681565b600081565b6002546001600160a01b031681565b6001546001600160a01b031681565b600b818154811061084457fe5b600a818154811061070157fe5b6012548156fea265627a7a72315820db40a3926a9bac3f97330fd6ccc2325866c5444627f260a429da29c1412a845c64736f6c634300050c0032"
  1379  
  1380  // DeployRootChainBase deploys a new Ethereum contract, binding an instance of RootChainBase to it.
  1381  func DeployRootChainBase(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RootChainBase, error) {
  1382  	parsed, err := abi.JSON(strings.NewReader(RootChainBaseABI))
  1383  	if err != nil {
  1384  		return common.Address{}, nil, nil, err
  1385  	}
  1386  
  1387  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RootChainBaseBin), backend)
  1388  	if err != nil {
  1389  		return common.Address{}, nil, nil, err
  1390  	}
  1391  	return address, tx, &RootChainBase{RootChainBaseCaller: RootChainBaseCaller{contract: contract}, RootChainBaseTransactor: RootChainBaseTransactor{contract: contract}, RootChainBaseFilterer: RootChainBaseFilterer{contract: contract}}, nil
  1392  }
  1393  
  1394  // RootChainBase is an auto generated Go binding around an Ethereum contract.
  1395  type RootChainBase struct {
  1396  	RootChainBaseCaller     // Read-only binding to the contract
  1397  	RootChainBaseTransactor // Write-only binding to the contract
  1398  	RootChainBaseFilterer   // Log filterer for contract events
  1399  }
  1400  
  1401  // RootChainBaseCaller is an auto generated read-only Go binding around an Ethereum contract.
  1402  type RootChainBaseCaller struct {
  1403  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1404  }
  1405  
  1406  // RootChainBaseTransactor is an auto generated write-only Go binding around an Ethereum contract.
  1407  type RootChainBaseTransactor struct {
  1408  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1409  }
  1410  
  1411  // RootChainBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  1412  type RootChainBaseFilterer struct {
  1413  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1414  }
  1415  
  1416  // RootChainBaseSession is an auto generated Go binding around an Ethereum contract,
  1417  // with pre-set call and transact options.
  1418  type RootChainBaseSession struct {
  1419  	Contract     *RootChainBase    // Generic contract binding to set the session for
  1420  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1421  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1422  }
  1423  
  1424  // RootChainBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  1425  // with pre-set call options.
  1426  type RootChainBaseCallerSession struct {
  1427  	Contract *RootChainBaseCaller // Generic contract caller binding to set the session for
  1428  	CallOpts bind.CallOpts        // Call options to use throughout this session
  1429  }
  1430  
  1431  // RootChainBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  1432  // with pre-set transact options.
  1433  type RootChainBaseTransactorSession struct {
  1434  	Contract     *RootChainBaseTransactor // Generic contract transactor binding to set the session for
  1435  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
  1436  }
  1437  
  1438  // RootChainBaseRaw is an auto generated low-level Go binding around an Ethereum contract.
  1439  type RootChainBaseRaw struct {
  1440  	Contract *RootChainBase // Generic contract binding to access the raw methods on
  1441  }
  1442  
  1443  // RootChainBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  1444  type RootChainBaseCallerRaw struct {
  1445  	Contract *RootChainBaseCaller // Generic read-only contract binding to access the raw methods on
  1446  }
  1447  
  1448  // RootChainBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  1449  type RootChainBaseTransactorRaw struct {
  1450  	Contract *RootChainBaseTransactor // Generic write-only contract binding to access the raw methods on
  1451  }
  1452  
  1453  // NewRootChainBase creates a new instance of RootChainBase, bound to a specific deployed contract.
  1454  func NewRootChainBase(address common.Address, backend bind.ContractBackend) (*RootChainBase, error) {
  1455  	contract, err := bindRootChainBase(address, backend, backend, backend)
  1456  	if err != nil {
  1457  		return nil, err
  1458  	}
  1459  	return &RootChainBase{RootChainBaseCaller: RootChainBaseCaller{contract: contract}, RootChainBaseTransactor: RootChainBaseTransactor{contract: contract}, RootChainBaseFilterer: RootChainBaseFilterer{contract: contract}}, nil
  1460  }
  1461  
  1462  // NewRootChainBaseCaller creates a new read-only instance of RootChainBase, bound to a specific deployed contract.
  1463  func NewRootChainBaseCaller(address common.Address, caller bind.ContractCaller) (*RootChainBaseCaller, error) {
  1464  	contract, err := bindRootChainBase(address, caller, nil, nil)
  1465  	if err != nil {
  1466  		return nil, err
  1467  	}
  1468  	return &RootChainBaseCaller{contract: contract}, nil
  1469  }
  1470  
  1471  // NewRootChainBaseTransactor creates a new write-only instance of RootChainBase, bound to a specific deployed contract.
  1472  func NewRootChainBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*RootChainBaseTransactor, error) {
  1473  	contract, err := bindRootChainBase(address, nil, transactor, nil)
  1474  	if err != nil {
  1475  		return nil, err
  1476  	}
  1477  	return &RootChainBaseTransactor{contract: contract}, nil
  1478  }
  1479  
  1480  // NewRootChainBaseFilterer creates a new log filterer instance of RootChainBase, bound to a specific deployed contract.
  1481  func NewRootChainBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*RootChainBaseFilterer, error) {
  1482  	contract, err := bindRootChainBase(address, nil, nil, filterer)
  1483  	if err != nil {
  1484  		return nil, err
  1485  	}
  1486  	return &RootChainBaseFilterer{contract: contract}, nil
  1487  }
  1488  
  1489  // bindRootChainBase binds a generic wrapper to an already deployed contract.
  1490  func bindRootChainBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1491  	parsed, err := abi.JSON(strings.NewReader(RootChainBaseABI))
  1492  	if err != nil {
  1493  		return nil, err
  1494  	}
  1495  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1496  }
  1497  
  1498  // Call invokes the (constant) contract method with params as input values and
  1499  // sets the output to result. The result type might be a single field for simple
  1500  // returns, a slice of interfaces for anonymous returns and a struct for named
  1501  // returns.
  1502  func (_RootChainBase *RootChainBaseRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1503  	return _RootChainBase.Contract.RootChainBaseCaller.contract.Call(opts, result, method, params...)
  1504  }
  1505  
  1506  // Transfer initiates a plain transaction to move funds to the contract, calling
  1507  // its default method if one is available.
  1508  func (_RootChainBase *RootChainBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1509  	return _RootChainBase.Contract.RootChainBaseTransactor.contract.Transfer(opts)
  1510  }
  1511  
  1512  // Transact invokes the (paid) contract method with params as input values.
  1513  func (_RootChainBase *RootChainBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1514  	return _RootChainBase.Contract.RootChainBaseTransactor.contract.Transact(opts, method, params...)
  1515  }
  1516  
  1517  // Call invokes the (constant) contract method with params as input values and
  1518  // sets the output to result. The result type might be a single field for simple
  1519  // returns, a slice of interfaces for anonymous returns and a struct for named
  1520  // returns.
  1521  func (_RootChainBase *RootChainBaseCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1522  	return _RootChainBase.Contract.contract.Call(opts, result, method, params...)
  1523  }
  1524  
  1525  // Transfer initiates a plain transaction to move funds to the contract, calling
  1526  // its default method if one is available.
  1527  func (_RootChainBase *RootChainBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1528  	return _RootChainBase.Contract.contract.Transfer(opts)
  1529  }
  1530  
  1531  // Transact invokes the (paid) contract method with params as input values.
  1532  func (_RootChainBase *RootChainBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1533  	return _RootChainBase.Contract.contract.Transact(opts, method, params...)
  1534  }
  1535  
  1536  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  1537  //
  1538  // Solidity: function COST_ERO() constant returns(uint256)
  1539  func (_RootChainBase *RootChainBaseCaller) COSTERO(opts *bind.CallOpts) (*big.Int, error) {
  1540  	var (
  1541  		ret0 = new(*big.Int)
  1542  	)
  1543  	out := ret0
  1544  	err := _RootChainBase.contract.Call(opts, out, "COST_ERO")
  1545  	return *ret0, err
  1546  }
  1547  
  1548  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  1549  //
  1550  // Solidity: function COST_ERO() constant returns(uint256)
  1551  func (_RootChainBase *RootChainBaseSession) COSTERO() (*big.Int, error) {
  1552  	return _RootChainBase.Contract.COSTERO(&_RootChainBase.CallOpts)
  1553  }
  1554  
  1555  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  1556  //
  1557  // Solidity: function COST_ERO() constant returns(uint256)
  1558  func (_RootChainBase *RootChainBaseCallerSession) COSTERO() (*big.Int, error) {
  1559  	return _RootChainBase.Contract.COSTERO(&_RootChainBase.CallOpts)
  1560  }
  1561  
  1562  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  1563  //
  1564  // Solidity: function COST_ERU() constant returns(uint256)
  1565  func (_RootChainBase *RootChainBaseCaller) COSTERU(opts *bind.CallOpts) (*big.Int, error) {
  1566  	var (
  1567  		ret0 = new(*big.Int)
  1568  	)
  1569  	out := ret0
  1570  	err := _RootChainBase.contract.Call(opts, out, "COST_ERU")
  1571  	return *ret0, err
  1572  }
  1573  
  1574  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  1575  //
  1576  // Solidity: function COST_ERU() constant returns(uint256)
  1577  func (_RootChainBase *RootChainBaseSession) COSTERU() (*big.Int, error) {
  1578  	return _RootChainBase.Contract.COSTERU(&_RootChainBase.CallOpts)
  1579  }
  1580  
  1581  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  1582  //
  1583  // Solidity: function COST_ERU() constant returns(uint256)
  1584  func (_RootChainBase *RootChainBaseCallerSession) COSTERU() (*big.Int, error) {
  1585  	return _RootChainBase.Contract.COSTERU(&_RootChainBase.CallOpts)
  1586  }
  1587  
  1588  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  1589  //
  1590  // Solidity: function COST_NRB() constant returns(uint256)
  1591  func (_RootChainBase *RootChainBaseCaller) COSTNRB(opts *bind.CallOpts) (*big.Int, error) {
  1592  	var (
  1593  		ret0 = new(*big.Int)
  1594  	)
  1595  	out := ret0
  1596  	err := _RootChainBase.contract.Call(opts, out, "COST_NRB")
  1597  	return *ret0, err
  1598  }
  1599  
  1600  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  1601  //
  1602  // Solidity: function COST_NRB() constant returns(uint256)
  1603  func (_RootChainBase *RootChainBaseSession) COSTNRB() (*big.Int, error) {
  1604  	return _RootChainBase.Contract.COSTNRB(&_RootChainBase.CallOpts)
  1605  }
  1606  
  1607  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  1608  //
  1609  // Solidity: function COST_NRB() constant returns(uint256)
  1610  func (_RootChainBase *RootChainBaseCallerSession) COSTNRB() (*big.Int, error) {
  1611  	return _RootChainBase.Contract.COSTNRB(&_RootChainBase.CallOpts)
  1612  }
  1613  
  1614  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  1615  //
  1616  // Solidity: function COST_ORB() constant returns(uint256)
  1617  func (_RootChainBase *RootChainBaseCaller) COSTORB(opts *bind.CallOpts) (*big.Int, error) {
  1618  	var (
  1619  		ret0 = new(*big.Int)
  1620  	)
  1621  	out := ret0
  1622  	err := _RootChainBase.contract.Call(opts, out, "COST_ORB")
  1623  	return *ret0, err
  1624  }
  1625  
  1626  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  1627  //
  1628  // Solidity: function COST_ORB() constant returns(uint256)
  1629  func (_RootChainBase *RootChainBaseSession) COSTORB() (*big.Int, error) {
  1630  	return _RootChainBase.Contract.COSTORB(&_RootChainBase.CallOpts)
  1631  }
  1632  
  1633  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  1634  //
  1635  // Solidity: function COST_ORB() constant returns(uint256)
  1636  func (_RootChainBase *RootChainBaseCallerSession) COSTORB() (*big.Int, error) {
  1637  	return _RootChainBase.Contract.COSTORB(&_RootChainBase.CallOpts)
  1638  }
  1639  
  1640  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  1641  //
  1642  // Solidity: function COST_URB() constant returns(uint256)
  1643  func (_RootChainBase *RootChainBaseCaller) COSTURB(opts *bind.CallOpts) (*big.Int, error) {
  1644  	var (
  1645  		ret0 = new(*big.Int)
  1646  	)
  1647  	out := ret0
  1648  	err := _RootChainBase.contract.Call(opts, out, "COST_URB")
  1649  	return *ret0, err
  1650  }
  1651  
  1652  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  1653  //
  1654  // Solidity: function COST_URB() constant returns(uint256)
  1655  func (_RootChainBase *RootChainBaseSession) COSTURB() (*big.Int, error) {
  1656  	return _RootChainBase.Contract.COSTURB(&_RootChainBase.CallOpts)
  1657  }
  1658  
  1659  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  1660  //
  1661  // Solidity: function COST_URB() constant returns(uint256)
  1662  func (_RootChainBase *RootChainBaseCallerSession) COSTURB() (*big.Int, error) {
  1663  	return _RootChainBase.Contract.COSTURB(&_RootChainBase.CallOpts)
  1664  }
  1665  
  1666  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  1667  //
  1668  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  1669  func (_RootChainBase *RootChainBaseCaller) COSTURBPREPARE(opts *bind.CallOpts) (*big.Int, error) {
  1670  	var (
  1671  		ret0 = new(*big.Int)
  1672  	)
  1673  	out := ret0
  1674  	err := _RootChainBase.contract.Call(opts, out, "COST_URB_PREPARE")
  1675  	return *ret0, err
  1676  }
  1677  
  1678  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  1679  //
  1680  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  1681  func (_RootChainBase *RootChainBaseSession) COSTURBPREPARE() (*big.Int, error) {
  1682  	return _RootChainBase.Contract.COSTURBPREPARE(&_RootChainBase.CallOpts)
  1683  }
  1684  
  1685  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  1686  //
  1687  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  1688  func (_RootChainBase *RootChainBaseCallerSession) COSTURBPREPARE() (*big.Int, error) {
  1689  	return _RootChainBase.Contract.COSTURBPREPARE(&_RootChainBase.CallOpts)
  1690  }
  1691  
  1692  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  1693  //
  1694  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  1695  func (_RootChainBase *RootChainBaseCaller) CPCOMPUTATION(opts *bind.CallOpts) (*big.Int, error) {
  1696  	var (
  1697  		ret0 = new(*big.Int)
  1698  	)
  1699  	out := ret0
  1700  	err := _RootChainBase.contract.Call(opts, out, "CP_COMPUTATION")
  1701  	return *ret0, err
  1702  }
  1703  
  1704  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  1705  //
  1706  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  1707  func (_RootChainBase *RootChainBaseSession) CPCOMPUTATION() (*big.Int, error) {
  1708  	return _RootChainBase.Contract.CPCOMPUTATION(&_RootChainBase.CallOpts)
  1709  }
  1710  
  1711  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  1712  //
  1713  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  1714  func (_RootChainBase *RootChainBaseCallerSession) CPCOMPUTATION() (*big.Int, error) {
  1715  	return _RootChainBase.Contract.CPCOMPUTATION(&_RootChainBase.CallOpts)
  1716  }
  1717  
  1718  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  1719  //
  1720  // Solidity: function CP_EXIT() constant returns(uint256)
  1721  func (_RootChainBase *RootChainBaseCaller) CPEXIT(opts *bind.CallOpts) (*big.Int, error) {
  1722  	var (
  1723  		ret0 = new(*big.Int)
  1724  	)
  1725  	out := ret0
  1726  	err := _RootChainBase.contract.Call(opts, out, "CP_EXIT")
  1727  	return *ret0, err
  1728  }
  1729  
  1730  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  1731  //
  1732  // Solidity: function CP_EXIT() constant returns(uint256)
  1733  func (_RootChainBase *RootChainBaseSession) CPEXIT() (*big.Int, error) {
  1734  	return _RootChainBase.Contract.CPEXIT(&_RootChainBase.CallOpts)
  1735  }
  1736  
  1737  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  1738  //
  1739  // Solidity: function CP_EXIT() constant returns(uint256)
  1740  func (_RootChainBase *RootChainBaseCallerSession) CPEXIT() (*big.Int, error) {
  1741  	return _RootChainBase.Contract.CPEXIT(&_RootChainBase.CallOpts)
  1742  }
  1743  
  1744  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  1745  //
  1746  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  1747  func (_RootChainBase *RootChainBaseCaller) CPWITHHOLDING(opts *bind.CallOpts) (*big.Int, error) {
  1748  	var (
  1749  		ret0 = new(*big.Int)
  1750  	)
  1751  	out := ret0
  1752  	err := _RootChainBase.contract.Call(opts, out, "CP_WITHHOLDING")
  1753  	return *ret0, err
  1754  }
  1755  
  1756  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  1757  //
  1758  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  1759  func (_RootChainBase *RootChainBaseSession) CPWITHHOLDING() (*big.Int, error) {
  1760  	return _RootChainBase.Contract.CPWITHHOLDING(&_RootChainBase.CallOpts)
  1761  }
  1762  
  1763  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  1764  //
  1765  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  1766  func (_RootChainBase *RootChainBaseCallerSession) CPWITHHOLDING() (*big.Int, error) {
  1767  	return _RootChainBase.Contract.CPWITHHOLDING(&_RootChainBase.CallOpts)
  1768  }
  1769  
  1770  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  1771  //
  1772  // Solidity: function EROIdToFinalize() constant returns(uint256)
  1773  func (_RootChainBase *RootChainBaseCaller) EROIdToFinalize(opts *bind.CallOpts) (*big.Int, error) {
  1774  	var (
  1775  		ret0 = new(*big.Int)
  1776  	)
  1777  	out := ret0
  1778  	err := _RootChainBase.contract.Call(opts, out, "EROIdToFinalize")
  1779  	return *ret0, err
  1780  }
  1781  
  1782  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  1783  //
  1784  // Solidity: function EROIdToFinalize() constant returns(uint256)
  1785  func (_RootChainBase *RootChainBaseSession) EROIdToFinalize() (*big.Int, error) {
  1786  	return _RootChainBase.Contract.EROIdToFinalize(&_RootChainBase.CallOpts)
  1787  }
  1788  
  1789  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  1790  //
  1791  // Solidity: function EROIdToFinalize() constant returns(uint256)
  1792  func (_RootChainBase *RootChainBaseCallerSession) EROIdToFinalize() (*big.Int, error) {
  1793  	return _RootChainBase.Contract.EROIdToFinalize(&_RootChainBase.CallOpts)
  1794  }
  1795  
  1796  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  1797  //
  1798  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  1799  func (_RootChainBase *RootChainBaseCaller) EROs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  1800  	Timestamp  uint64
  1801  	IsExit     bool
  1802  	IsTransfer bool
  1803  	Finalized  bool
  1804  	Challenged bool
  1805  	Value      *big.Int
  1806  	Requestor  common.Address
  1807  	To         common.Address
  1808  	TrieKey    [32]byte
  1809  	Hash       [32]byte
  1810  	TrieValue  []byte
  1811  }, error) {
  1812  	ret := new(struct {
  1813  		Timestamp  uint64
  1814  		IsExit     bool
  1815  		IsTransfer bool
  1816  		Finalized  bool
  1817  		Challenged bool
  1818  		Value      *big.Int
  1819  		Requestor  common.Address
  1820  		To         common.Address
  1821  		TrieKey    [32]byte
  1822  		Hash       [32]byte
  1823  		TrieValue  []byte
  1824  	})
  1825  	out := ret
  1826  	err := _RootChainBase.contract.Call(opts, out, "EROs", arg0)
  1827  	return *ret, err
  1828  }
  1829  
  1830  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  1831  //
  1832  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  1833  func (_RootChainBase *RootChainBaseSession) EROs(arg0 *big.Int) (struct {
  1834  	Timestamp  uint64
  1835  	IsExit     bool
  1836  	IsTransfer bool
  1837  	Finalized  bool
  1838  	Challenged bool
  1839  	Value      *big.Int
  1840  	Requestor  common.Address
  1841  	To         common.Address
  1842  	TrieKey    [32]byte
  1843  	Hash       [32]byte
  1844  	TrieValue  []byte
  1845  }, error) {
  1846  	return _RootChainBase.Contract.EROs(&_RootChainBase.CallOpts, arg0)
  1847  }
  1848  
  1849  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  1850  //
  1851  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  1852  func (_RootChainBase *RootChainBaseCallerSession) EROs(arg0 *big.Int) (struct {
  1853  	Timestamp  uint64
  1854  	IsExit     bool
  1855  	IsTransfer bool
  1856  	Finalized  bool
  1857  	Challenged bool
  1858  	Value      *big.Int
  1859  	Requestor  common.Address
  1860  	To         common.Address
  1861  	TrieKey    [32]byte
  1862  	Hash       [32]byte
  1863  	TrieValue  []byte
  1864  }, error) {
  1865  	return _RootChainBase.Contract.EROs(&_RootChainBase.CallOpts, arg0)
  1866  }
  1867  
  1868  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  1869  //
  1870  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  1871  func (_RootChainBase *RootChainBaseCaller) ERUIdToFinalize(opts *bind.CallOpts) (*big.Int, error) {
  1872  	var (
  1873  		ret0 = new(*big.Int)
  1874  	)
  1875  	out := ret0
  1876  	err := _RootChainBase.contract.Call(opts, out, "ERUIdToFinalize")
  1877  	return *ret0, err
  1878  }
  1879  
  1880  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  1881  //
  1882  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  1883  func (_RootChainBase *RootChainBaseSession) ERUIdToFinalize() (*big.Int, error) {
  1884  	return _RootChainBase.Contract.ERUIdToFinalize(&_RootChainBase.CallOpts)
  1885  }
  1886  
  1887  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  1888  //
  1889  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  1890  func (_RootChainBase *RootChainBaseCallerSession) ERUIdToFinalize() (*big.Int, error) {
  1891  	return _RootChainBase.Contract.ERUIdToFinalize(&_RootChainBase.CallOpts)
  1892  }
  1893  
  1894  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  1895  //
  1896  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  1897  func (_RootChainBase *RootChainBaseCaller) ERUs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  1898  	Timestamp  uint64
  1899  	IsExit     bool
  1900  	IsTransfer bool
  1901  	Finalized  bool
  1902  	Challenged bool
  1903  	Value      *big.Int
  1904  	Requestor  common.Address
  1905  	To         common.Address
  1906  	TrieKey    [32]byte
  1907  	Hash       [32]byte
  1908  	TrieValue  []byte
  1909  }, error) {
  1910  	ret := new(struct {
  1911  		Timestamp  uint64
  1912  		IsExit     bool
  1913  		IsTransfer bool
  1914  		Finalized  bool
  1915  		Challenged bool
  1916  		Value      *big.Int
  1917  		Requestor  common.Address
  1918  		To         common.Address
  1919  		TrieKey    [32]byte
  1920  		Hash       [32]byte
  1921  		TrieValue  []byte
  1922  	})
  1923  	out := ret
  1924  	err := _RootChainBase.contract.Call(opts, out, "ERUs", arg0)
  1925  	return *ret, err
  1926  }
  1927  
  1928  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  1929  //
  1930  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  1931  func (_RootChainBase *RootChainBaseSession) ERUs(arg0 *big.Int) (struct {
  1932  	Timestamp  uint64
  1933  	IsExit     bool
  1934  	IsTransfer bool
  1935  	Finalized  bool
  1936  	Challenged bool
  1937  	Value      *big.Int
  1938  	Requestor  common.Address
  1939  	To         common.Address
  1940  	TrieKey    [32]byte
  1941  	Hash       [32]byte
  1942  	TrieValue  []byte
  1943  }, error) {
  1944  	return _RootChainBase.Contract.ERUs(&_RootChainBase.CallOpts, arg0)
  1945  }
  1946  
  1947  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  1948  //
  1949  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  1950  func (_RootChainBase *RootChainBaseCallerSession) ERUs(arg0 *big.Int) (struct {
  1951  	Timestamp  uint64
  1952  	IsExit     bool
  1953  	IsTransfer bool
  1954  	Finalized  bool
  1955  	Challenged bool
  1956  	Value      *big.Int
  1957  	Requestor  common.Address
  1958  	To         common.Address
  1959  	TrieKey    [32]byte
  1960  	Hash       [32]byte
  1961  	TrieValue  []byte
  1962  }, error) {
  1963  	return _RootChainBase.Contract.ERUs(&_RootChainBase.CallOpts, arg0)
  1964  }
  1965  
  1966  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
  1967  //
  1968  // Solidity: function NRELength() constant returns(uint256)
  1969  func (_RootChainBase *RootChainBaseCaller) NRELength(opts *bind.CallOpts) (*big.Int, error) {
  1970  	var (
  1971  		ret0 = new(*big.Int)
  1972  	)
  1973  	out := ret0
  1974  	err := _RootChainBase.contract.Call(opts, out, "NRELength")
  1975  	return *ret0, err
  1976  }
  1977  
  1978  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
  1979  //
  1980  // Solidity: function NRELength() constant returns(uint256)
  1981  func (_RootChainBase *RootChainBaseSession) NRELength() (*big.Int, error) {
  1982  	return _RootChainBase.Contract.NRELength(&_RootChainBase.CallOpts)
  1983  }
  1984  
  1985  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
  1986  //
  1987  // Solidity: function NRELength() constant returns(uint256)
  1988  func (_RootChainBase *RootChainBaseCallerSession) NRELength() (*big.Int, error) {
  1989  	return _RootChainBase.Contract.NRELength(&_RootChainBase.CallOpts)
  1990  }
  1991  
  1992  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
  1993  //
  1994  // Solidity: function NULL_ADDRESS() constant returns(address)
  1995  func (_RootChainBase *RootChainBaseCaller) NULLADDRESS(opts *bind.CallOpts) (common.Address, error) {
  1996  	var (
  1997  		ret0 = new(common.Address)
  1998  	)
  1999  	out := ret0
  2000  	err := _RootChainBase.contract.Call(opts, out, "NULL_ADDRESS")
  2001  	return *ret0, err
  2002  }
  2003  
  2004  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
  2005  //
  2006  // Solidity: function NULL_ADDRESS() constant returns(address)
  2007  func (_RootChainBase *RootChainBaseSession) NULLADDRESS() (common.Address, error) {
  2008  	return _RootChainBase.Contract.NULLADDRESS(&_RootChainBase.CallOpts)
  2009  }
  2010  
  2011  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
  2012  //
  2013  // Solidity: function NULL_ADDRESS() constant returns(address)
  2014  func (_RootChainBase *RootChainBaseCallerSession) NULLADDRESS() (common.Address, error) {
  2015  	return _RootChainBase.Contract.NULLADDRESS(&_RootChainBase.CallOpts)
  2016  }
  2017  
  2018  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
  2019  //
  2020  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  2021  func (_RootChainBase *RootChainBaseCaller) ORBs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  2022  	Submitted    bool
  2023  	NumEnter     uint64
  2024  	EpochNumber  uint64
  2025  	RequestStart uint64
  2026  	RequestEnd   uint64
  2027  	Trie         common.Address
  2028  }, error) {
  2029  	ret := new(struct {
  2030  		Submitted    bool
  2031  		NumEnter     uint64
  2032  		EpochNumber  uint64
  2033  		RequestStart uint64
  2034  		RequestEnd   uint64
  2035  		Trie         common.Address
  2036  	})
  2037  	out := ret
  2038  	err := _RootChainBase.contract.Call(opts, out, "ORBs", arg0)
  2039  	return *ret, err
  2040  }
  2041  
  2042  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
  2043  //
  2044  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  2045  func (_RootChainBase *RootChainBaseSession) ORBs(arg0 *big.Int) (struct {
  2046  	Submitted    bool
  2047  	NumEnter     uint64
  2048  	EpochNumber  uint64
  2049  	RequestStart uint64
  2050  	RequestEnd   uint64
  2051  	Trie         common.Address
  2052  }, error) {
  2053  	return _RootChainBase.Contract.ORBs(&_RootChainBase.CallOpts, arg0)
  2054  }
  2055  
  2056  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
  2057  //
  2058  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  2059  func (_RootChainBase *RootChainBaseCallerSession) ORBs(arg0 *big.Int) (struct {
  2060  	Submitted    bool
  2061  	NumEnter     uint64
  2062  	EpochNumber  uint64
  2063  	RequestStart uint64
  2064  	RequestEnd   uint64
  2065  	Trie         common.Address
  2066  }, error) {
  2067  	return _RootChainBase.Contract.ORBs(&_RootChainBase.CallOpts, arg0)
  2068  }
  2069  
  2070  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
  2071  //
  2072  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
  2073  func (_RootChainBase *RootChainBaseCaller) PREPARETIMEOUT(opts *bind.CallOpts) (*big.Int, error) {
  2074  	var (
  2075  		ret0 = new(*big.Int)
  2076  	)
  2077  	out := ret0
  2078  	err := _RootChainBase.contract.Call(opts, out, "PREPARE_TIMEOUT")
  2079  	return *ret0, err
  2080  }
  2081  
  2082  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
  2083  //
  2084  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
  2085  func (_RootChainBase *RootChainBaseSession) PREPARETIMEOUT() (*big.Int, error) {
  2086  	return _RootChainBase.Contract.PREPARETIMEOUT(&_RootChainBase.CallOpts)
  2087  }
  2088  
  2089  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
  2090  //
  2091  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
  2092  func (_RootChainBase *RootChainBaseCallerSession) PREPARETIMEOUT() (*big.Int, error) {
  2093  	return _RootChainBase.Contract.PREPARETIMEOUT(&_RootChainBase.CallOpts)
  2094  }
  2095  
  2096  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
  2097  //
  2098  // Solidity: function REQUEST_GAS() constant returns(uint256)
  2099  func (_RootChainBase *RootChainBaseCaller) REQUESTGAS(opts *bind.CallOpts) (*big.Int, error) {
  2100  	var (
  2101  		ret0 = new(*big.Int)
  2102  	)
  2103  	out := ret0
  2104  	err := _RootChainBase.contract.Call(opts, out, "REQUEST_GAS")
  2105  	return *ret0, err
  2106  }
  2107  
  2108  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
  2109  //
  2110  // Solidity: function REQUEST_GAS() constant returns(uint256)
  2111  func (_RootChainBase *RootChainBaseSession) REQUESTGAS() (*big.Int, error) {
  2112  	return _RootChainBase.Contract.REQUESTGAS(&_RootChainBase.CallOpts)
  2113  }
  2114  
  2115  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
  2116  //
  2117  // Solidity: function REQUEST_GAS() constant returns(uint256)
  2118  func (_RootChainBase *RootChainBaseCallerSession) REQUESTGAS() (*big.Int, error) {
  2119  	return _RootChainBase.Contract.REQUESTGAS(&_RootChainBase.CallOpts)
  2120  }
  2121  
  2122  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
  2123  //
  2124  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  2125  func (_RootChainBase *RootChainBaseCaller) URBs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  2126  	Submitted    bool
  2127  	NumEnter     uint64
  2128  	EpochNumber  uint64
  2129  	RequestStart uint64
  2130  	RequestEnd   uint64
  2131  	Trie         common.Address
  2132  }, error) {
  2133  	ret := new(struct {
  2134  		Submitted    bool
  2135  		NumEnter     uint64
  2136  		EpochNumber  uint64
  2137  		RequestStart uint64
  2138  		RequestEnd   uint64
  2139  		Trie         common.Address
  2140  	})
  2141  	out := ret
  2142  	err := _RootChainBase.contract.Call(opts, out, "URBs", arg0)
  2143  	return *ret, err
  2144  }
  2145  
  2146  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
  2147  //
  2148  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  2149  func (_RootChainBase *RootChainBaseSession) URBs(arg0 *big.Int) (struct {
  2150  	Submitted    bool
  2151  	NumEnter     uint64
  2152  	EpochNumber  uint64
  2153  	RequestStart uint64
  2154  	RequestEnd   uint64
  2155  	Trie         common.Address
  2156  }, error) {
  2157  	return _RootChainBase.Contract.URBs(&_RootChainBase.CallOpts, arg0)
  2158  }
  2159  
  2160  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
  2161  //
  2162  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  2163  func (_RootChainBase *RootChainBaseCallerSession) URBs(arg0 *big.Int) (struct {
  2164  	Submitted    bool
  2165  	NumEnter     uint64
  2166  	EpochNumber  uint64
  2167  	RequestStart uint64
  2168  	RequestEnd   uint64
  2169  	Trie         common.Address
  2170  }, error) {
  2171  	return _RootChainBase.Contract.URBs(&_RootChainBase.CallOpts, arg0)
  2172  }
  2173  
  2174  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
  2175  //
  2176  // Solidity: function currentFork() constant returns(uint256)
  2177  func (_RootChainBase *RootChainBaseCaller) CurrentFork(opts *bind.CallOpts) (*big.Int, error) {
  2178  	var (
  2179  		ret0 = new(*big.Int)
  2180  	)
  2181  	out := ret0
  2182  	err := _RootChainBase.contract.Call(opts, out, "currentFork")
  2183  	return *ret0, err
  2184  }
  2185  
  2186  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
  2187  //
  2188  // Solidity: function currentFork() constant returns(uint256)
  2189  func (_RootChainBase *RootChainBaseSession) CurrentFork() (*big.Int, error) {
  2190  	return _RootChainBase.Contract.CurrentFork(&_RootChainBase.CallOpts)
  2191  }
  2192  
  2193  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
  2194  //
  2195  // Solidity: function currentFork() constant returns(uint256)
  2196  func (_RootChainBase *RootChainBaseCallerSession) CurrentFork() (*big.Int, error) {
  2197  	return _RootChainBase.Contract.CurrentFork(&_RootChainBase.CallOpts)
  2198  }
  2199  
  2200  // Development is a free data retrieval call binding the contract method 0x7b929c27.
  2201  //
  2202  // Solidity: function development() constant returns(bool)
  2203  func (_RootChainBase *RootChainBaseCaller) Development(opts *bind.CallOpts) (bool, error) {
  2204  	var (
  2205  		ret0 = new(bool)
  2206  	)
  2207  	out := ret0
  2208  	err := _RootChainBase.contract.Call(opts, out, "development")
  2209  	return *ret0, err
  2210  }
  2211  
  2212  // Development is a free data retrieval call binding the contract method 0x7b929c27.
  2213  //
  2214  // Solidity: function development() constant returns(bool)
  2215  func (_RootChainBase *RootChainBaseSession) Development() (bool, error) {
  2216  	return _RootChainBase.Contract.Development(&_RootChainBase.CallOpts)
  2217  }
  2218  
  2219  // Development is a free data retrieval call binding the contract method 0x7b929c27.
  2220  //
  2221  // Solidity: function development() constant returns(bool)
  2222  func (_RootChainBase *RootChainBaseCallerSession) Development() (bool, error) {
  2223  	return _RootChainBase.Contract.Development(&_RootChainBase.CallOpts)
  2224  }
  2225  
  2226  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
  2227  //
  2228  // Solidity: function epochHandler() constant returns(address)
  2229  func (_RootChainBase *RootChainBaseCaller) EpochHandler(opts *bind.CallOpts) (common.Address, error) {
  2230  	var (
  2231  		ret0 = new(common.Address)
  2232  	)
  2233  	out := ret0
  2234  	err := _RootChainBase.contract.Call(opts, out, "epochHandler")
  2235  	return *ret0, err
  2236  }
  2237  
  2238  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
  2239  //
  2240  // Solidity: function epochHandler() constant returns(address)
  2241  func (_RootChainBase *RootChainBaseSession) EpochHandler() (common.Address, error) {
  2242  	return _RootChainBase.Contract.EpochHandler(&_RootChainBase.CallOpts)
  2243  }
  2244  
  2245  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
  2246  //
  2247  // Solidity: function epochHandler() constant returns(address)
  2248  func (_RootChainBase *RootChainBaseCallerSession) EpochHandler() (common.Address, error) {
  2249  	return _RootChainBase.Contract.EpochHandler(&_RootChainBase.CallOpts)
  2250  }
  2251  
  2252  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
  2253  //
  2254  // Solidity: function etherToken() constant returns(address)
  2255  func (_RootChainBase *RootChainBaseCaller) EtherToken(opts *bind.CallOpts) (common.Address, error) {
  2256  	var (
  2257  		ret0 = new(common.Address)
  2258  	)
  2259  	out := ret0
  2260  	err := _RootChainBase.contract.Call(opts, out, "etherToken")
  2261  	return *ret0, err
  2262  }
  2263  
  2264  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
  2265  //
  2266  // Solidity: function etherToken() constant returns(address)
  2267  func (_RootChainBase *RootChainBaseSession) EtherToken() (common.Address, error) {
  2268  	return _RootChainBase.Contract.EtherToken(&_RootChainBase.CallOpts)
  2269  }
  2270  
  2271  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
  2272  //
  2273  // Solidity: function etherToken() constant returns(address)
  2274  func (_RootChainBase *RootChainBaseCallerSession) EtherToken() (common.Address, error) {
  2275  	return _RootChainBase.Contract.EtherToken(&_RootChainBase.CallOpts)
  2276  }
  2277  
  2278  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
  2279  //
  2280  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
  2281  func (_RootChainBase *RootChainBaseCaller) FirstFilledORENumber(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  2282  	var (
  2283  		ret0 = new(*big.Int)
  2284  	)
  2285  	out := ret0
  2286  	err := _RootChainBase.contract.Call(opts, out, "firstFilledORENumber", arg0)
  2287  	return *ret0, err
  2288  }
  2289  
  2290  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
  2291  //
  2292  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
  2293  func (_RootChainBase *RootChainBaseSession) FirstFilledORENumber(arg0 *big.Int) (*big.Int, error) {
  2294  	return _RootChainBase.Contract.FirstFilledORENumber(&_RootChainBase.CallOpts, arg0)
  2295  }
  2296  
  2297  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
  2298  //
  2299  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
  2300  func (_RootChainBase *RootChainBaseCallerSession) FirstFilledORENumber(arg0 *big.Int) (*big.Int, error) {
  2301  	return _RootChainBase.Contract.FirstFilledORENumber(&_RootChainBase.CallOpts, arg0)
  2302  }
  2303  
  2304  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
  2305  //
  2306  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  2307  func (_RootChainBase *RootChainBaseCaller) FirstNonEmptyRequestEpoch(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  2308  	var (
  2309  		ret0 = new(*big.Int)
  2310  	)
  2311  	out := ret0
  2312  	err := _RootChainBase.contract.Call(opts, out, "firstNonEmptyRequestEpoch", arg0)
  2313  	return *ret0, err
  2314  }
  2315  
  2316  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
  2317  //
  2318  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  2319  func (_RootChainBase *RootChainBaseSession) FirstNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  2320  	return _RootChainBase.Contract.FirstNonEmptyRequestEpoch(&_RootChainBase.CallOpts, arg0)
  2321  }
  2322  
  2323  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
  2324  //
  2325  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  2326  func (_RootChainBase *RootChainBaseCallerSession) FirstNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  2327  	return _RootChainBase.Contract.FirstNonEmptyRequestEpoch(&_RootChainBase.CallOpts, arg0)
  2328  }
  2329  
  2330  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
  2331  //
  2332  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
  2333  func (_RootChainBase *RootChainBaseCaller) Forks(opts *bind.CallOpts, arg0 *big.Int) (struct {
  2334  	ForkedBlock        uint64
  2335  	FirstEpoch         uint64
  2336  	LastEpoch          uint64
  2337  	FirstBlock         uint64
  2338  	LastBlock          uint64
  2339  	LastFinalizedEpoch uint64
  2340  	LastFinalizedBlock uint64
  2341  	Timestamp          uint64
  2342  	FirstEnterEpoch    uint64
  2343  	LastEnterEpoch     uint64
  2344  	NextBlockToRebase  uint64
  2345  	Rebased            bool
  2346  }, error) {
  2347  	ret := new(struct {
  2348  		ForkedBlock        uint64
  2349  		FirstEpoch         uint64
  2350  		LastEpoch          uint64
  2351  		FirstBlock         uint64
  2352  		LastBlock          uint64
  2353  		LastFinalizedEpoch uint64
  2354  		LastFinalizedBlock uint64
  2355  		Timestamp          uint64
  2356  		FirstEnterEpoch    uint64
  2357  		LastEnterEpoch     uint64
  2358  		NextBlockToRebase  uint64
  2359  		Rebased            bool
  2360  	})
  2361  	out := ret
  2362  	err := _RootChainBase.contract.Call(opts, out, "forks", arg0)
  2363  	return *ret, err
  2364  }
  2365  
  2366  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
  2367  //
  2368  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
  2369  func (_RootChainBase *RootChainBaseSession) Forks(arg0 *big.Int) (struct {
  2370  	ForkedBlock        uint64
  2371  	FirstEpoch         uint64
  2372  	LastEpoch          uint64
  2373  	FirstBlock         uint64
  2374  	LastBlock          uint64
  2375  	LastFinalizedEpoch uint64
  2376  	LastFinalizedBlock uint64
  2377  	Timestamp          uint64
  2378  	FirstEnterEpoch    uint64
  2379  	LastEnterEpoch     uint64
  2380  	NextBlockToRebase  uint64
  2381  	Rebased            bool
  2382  }, error) {
  2383  	return _RootChainBase.Contract.Forks(&_RootChainBase.CallOpts, arg0)
  2384  }
  2385  
  2386  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
  2387  //
  2388  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
  2389  func (_RootChainBase *RootChainBaseCallerSession) Forks(arg0 *big.Int) (struct {
  2390  	ForkedBlock        uint64
  2391  	FirstEpoch         uint64
  2392  	LastEpoch          uint64
  2393  	FirstBlock         uint64
  2394  	LastBlock          uint64
  2395  	LastFinalizedEpoch uint64
  2396  	LastFinalizedBlock uint64
  2397  	Timestamp          uint64
  2398  	FirstEnterEpoch    uint64
  2399  	LastEnterEpoch     uint64
  2400  	NextBlockToRebase  uint64
  2401  	Rebased            bool
  2402  }, error) {
  2403  	return _RootChainBase.Contract.Forks(&_RootChainBase.CallOpts, arg0)
  2404  }
  2405  
  2406  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
  2407  //
  2408  // Solidity: function isRootChain() constant returns(bool)
  2409  func (_RootChainBase *RootChainBaseCaller) IsRootChain(opts *bind.CallOpts) (bool, error) {
  2410  	var (
  2411  		ret0 = new(bool)
  2412  	)
  2413  	out := ret0
  2414  	err := _RootChainBase.contract.Call(opts, out, "isRootChain")
  2415  	return *ret0, err
  2416  }
  2417  
  2418  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
  2419  //
  2420  // Solidity: function isRootChain() constant returns(bool)
  2421  func (_RootChainBase *RootChainBaseSession) IsRootChain() (bool, error) {
  2422  	return _RootChainBase.Contract.IsRootChain(&_RootChainBase.CallOpts)
  2423  }
  2424  
  2425  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
  2426  //
  2427  // Solidity: function isRootChain() constant returns(bool)
  2428  func (_RootChainBase *RootChainBaseCallerSession) IsRootChain() (bool, error) {
  2429  	return _RootChainBase.Contract.IsRootChain(&_RootChainBase.CallOpts)
  2430  }
  2431  
  2432  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
  2433  //
  2434  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
  2435  func (_RootChainBase *RootChainBaseCaller) LastAppliedBlockNumber(opts *bind.CallOpts) (*big.Int, error) {
  2436  	var (
  2437  		ret0 = new(*big.Int)
  2438  	)
  2439  	out := ret0
  2440  	err := _RootChainBase.contract.Call(opts, out, "lastAppliedBlockNumber")
  2441  	return *ret0, err
  2442  }
  2443  
  2444  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
  2445  //
  2446  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
  2447  func (_RootChainBase *RootChainBaseSession) LastAppliedBlockNumber() (*big.Int, error) {
  2448  	return _RootChainBase.Contract.LastAppliedBlockNumber(&_RootChainBase.CallOpts)
  2449  }
  2450  
  2451  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
  2452  //
  2453  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
  2454  func (_RootChainBase *RootChainBaseCallerSession) LastAppliedBlockNumber() (*big.Int, error) {
  2455  	return _RootChainBase.Contract.LastAppliedBlockNumber(&_RootChainBase.CallOpts)
  2456  }
  2457  
  2458  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
  2459  //
  2460  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
  2461  func (_RootChainBase *RootChainBaseCaller) LastAppliedEpochNumber(opts *bind.CallOpts) (*big.Int, error) {
  2462  	var (
  2463  		ret0 = new(*big.Int)
  2464  	)
  2465  	out := ret0
  2466  	err := _RootChainBase.contract.Call(opts, out, "lastAppliedEpochNumber")
  2467  	return *ret0, err
  2468  }
  2469  
  2470  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
  2471  //
  2472  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
  2473  func (_RootChainBase *RootChainBaseSession) LastAppliedEpochNumber() (*big.Int, error) {
  2474  	return _RootChainBase.Contract.LastAppliedEpochNumber(&_RootChainBase.CallOpts)
  2475  }
  2476  
  2477  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
  2478  //
  2479  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
  2480  func (_RootChainBase *RootChainBaseCallerSession) LastAppliedEpochNumber() (*big.Int, error) {
  2481  	return _RootChainBase.Contract.LastAppliedEpochNumber(&_RootChainBase.CallOpts)
  2482  }
  2483  
  2484  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
  2485  //
  2486  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
  2487  func (_RootChainBase *RootChainBaseCaller) LastAppliedForkNumber(opts *bind.CallOpts) (*big.Int, error) {
  2488  	var (
  2489  		ret0 = new(*big.Int)
  2490  	)
  2491  	out := ret0
  2492  	err := _RootChainBase.contract.Call(opts, out, "lastAppliedForkNumber")
  2493  	return *ret0, err
  2494  }
  2495  
  2496  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
  2497  //
  2498  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
  2499  func (_RootChainBase *RootChainBaseSession) LastAppliedForkNumber() (*big.Int, error) {
  2500  	return _RootChainBase.Contract.LastAppliedForkNumber(&_RootChainBase.CallOpts)
  2501  }
  2502  
  2503  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
  2504  //
  2505  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
  2506  func (_RootChainBase *RootChainBaseCallerSession) LastAppliedForkNumber() (*big.Int, error) {
  2507  	return _RootChainBase.Contract.LastAppliedForkNumber(&_RootChainBase.CallOpts)
  2508  }
  2509  
  2510  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
  2511  //
  2512  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  2513  func (_RootChainBase *RootChainBaseCaller) LastNonEmptyRequestEpoch(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  2514  	var (
  2515  		ret0 = new(*big.Int)
  2516  	)
  2517  	out := ret0
  2518  	err := _RootChainBase.contract.Call(opts, out, "lastNonEmptyRequestEpoch", arg0)
  2519  	return *ret0, err
  2520  }
  2521  
  2522  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
  2523  //
  2524  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  2525  func (_RootChainBase *RootChainBaseSession) LastNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  2526  	return _RootChainBase.Contract.LastNonEmptyRequestEpoch(&_RootChainBase.CallOpts, arg0)
  2527  }
  2528  
  2529  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
  2530  //
  2531  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  2532  func (_RootChainBase *RootChainBaseCallerSession) LastNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  2533  	return _RootChainBase.Contract.LastNonEmptyRequestEpoch(&_RootChainBase.CallOpts, arg0)
  2534  }
  2535  
  2536  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
  2537  //
  2538  // Solidity: function numEnterForORB() constant returns(uint256)
  2539  func (_RootChainBase *RootChainBaseCaller) NumEnterForORB(opts *bind.CallOpts) (*big.Int, error) {
  2540  	var (
  2541  		ret0 = new(*big.Int)
  2542  	)
  2543  	out := ret0
  2544  	err := _RootChainBase.contract.Call(opts, out, "numEnterForORB")
  2545  	return *ret0, err
  2546  }
  2547  
  2548  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
  2549  //
  2550  // Solidity: function numEnterForORB() constant returns(uint256)
  2551  func (_RootChainBase *RootChainBaseSession) NumEnterForORB() (*big.Int, error) {
  2552  	return _RootChainBase.Contract.NumEnterForORB(&_RootChainBase.CallOpts)
  2553  }
  2554  
  2555  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
  2556  //
  2557  // Solidity: function numEnterForORB() constant returns(uint256)
  2558  func (_RootChainBase *RootChainBaseCallerSession) NumEnterForORB() (*big.Int, error) {
  2559  	return _RootChainBase.Contract.NumEnterForORB(&_RootChainBase.CallOpts)
  2560  }
  2561  
  2562  // Operator is a free data retrieval call binding the contract method 0x570ca735.
  2563  //
  2564  // Solidity: function operator() constant returns(address)
  2565  func (_RootChainBase *RootChainBaseCaller) Operator(opts *bind.CallOpts) (common.Address, error) {
  2566  	var (
  2567  		ret0 = new(common.Address)
  2568  	)
  2569  	out := ret0
  2570  	err := _RootChainBase.contract.Call(opts, out, "operator")
  2571  	return *ret0, err
  2572  }
  2573  
  2574  // Operator is a free data retrieval call binding the contract method 0x570ca735.
  2575  //
  2576  // Solidity: function operator() constant returns(address)
  2577  func (_RootChainBase *RootChainBaseSession) Operator() (common.Address, error) {
  2578  	return _RootChainBase.Contract.Operator(&_RootChainBase.CallOpts)
  2579  }
  2580  
  2581  // Operator is a free data retrieval call binding the contract method 0x570ca735.
  2582  //
  2583  // Solidity: function operator() constant returns(address)
  2584  func (_RootChainBase *RootChainBaseCallerSession) Operator() (common.Address, error) {
  2585  	return _RootChainBase.Contract.Operator(&_RootChainBase.CallOpts)
  2586  }
  2587  
  2588  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
  2589  //
  2590  // Solidity: function requestableContracts(address ) constant returns(address)
  2591  func (_RootChainBase *RootChainBaseCaller) RequestableContracts(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  2592  	var (
  2593  		ret0 = new(common.Address)
  2594  	)
  2595  	out := ret0
  2596  	err := _RootChainBase.contract.Call(opts, out, "requestableContracts", arg0)
  2597  	return *ret0, err
  2598  }
  2599  
  2600  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
  2601  //
  2602  // Solidity: function requestableContracts(address ) constant returns(address)
  2603  func (_RootChainBase *RootChainBaseSession) RequestableContracts(arg0 common.Address) (common.Address, error) {
  2604  	return _RootChainBase.Contract.RequestableContracts(&_RootChainBase.CallOpts, arg0)
  2605  }
  2606  
  2607  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
  2608  //
  2609  // Solidity: function requestableContracts(address ) constant returns(address)
  2610  func (_RootChainBase *RootChainBaseCallerSession) RequestableContracts(arg0 common.Address) (common.Address, error) {
  2611  	return _RootChainBase.Contract.RequestableContracts(&_RootChainBase.CallOpts, arg0)
  2612  }
  2613  
  2614  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
  2615  //
  2616  // Solidity: function seigManager() constant returns(address)
  2617  func (_RootChainBase *RootChainBaseCaller) SeigManager(opts *bind.CallOpts) (common.Address, error) {
  2618  	var (
  2619  		ret0 = new(common.Address)
  2620  	)
  2621  	out := ret0
  2622  	err := _RootChainBase.contract.Call(opts, out, "seigManager")
  2623  	return *ret0, err
  2624  }
  2625  
  2626  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
  2627  //
  2628  // Solidity: function seigManager() constant returns(address)
  2629  func (_RootChainBase *RootChainBaseSession) SeigManager() (common.Address, error) {
  2630  	return _RootChainBase.Contract.SeigManager(&_RootChainBase.CallOpts)
  2631  }
  2632  
  2633  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
  2634  //
  2635  // Solidity: function seigManager() constant returns(address)
  2636  func (_RootChainBase *RootChainBaseCallerSession) SeigManager() (common.Address, error) {
  2637  	return _RootChainBase.Contract.SeigManager(&_RootChainBase.CallOpts)
  2638  }
  2639  
  2640  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
  2641  //
  2642  // Solidity: function submitHandler() constant returns(address)
  2643  func (_RootChainBase *RootChainBaseCaller) SubmitHandler(opts *bind.CallOpts) (common.Address, error) {
  2644  	var (
  2645  		ret0 = new(common.Address)
  2646  	)
  2647  	out := ret0
  2648  	err := _RootChainBase.contract.Call(opts, out, "submitHandler")
  2649  	return *ret0, err
  2650  }
  2651  
  2652  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
  2653  //
  2654  // Solidity: function submitHandler() constant returns(address)
  2655  func (_RootChainBase *RootChainBaseSession) SubmitHandler() (common.Address, error) {
  2656  	return _RootChainBase.Contract.SubmitHandler(&_RootChainBase.CallOpts)
  2657  }
  2658  
  2659  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
  2660  //
  2661  // Solidity: function submitHandler() constant returns(address)
  2662  func (_RootChainBase *RootChainBaseCallerSession) SubmitHandler() (common.Address, error) {
  2663  	return _RootChainBase.Contract.SubmitHandler(&_RootChainBase.CallOpts)
  2664  }
  2665  
  2666  // RootChainBaseBlockFinalizedIterator is returned from FilterBlockFinalized and is used to iterate over the raw logs and unpacked data for BlockFinalized events raised by the RootChainBase contract.
  2667  type RootChainBaseBlockFinalizedIterator struct {
  2668  	Event *RootChainBaseBlockFinalized // Event containing the contract specifics and raw log
  2669  
  2670  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2671  	event    string              // Event name to use for unpacking event data
  2672  
  2673  	logs chan types.Log        // Log channel receiving the found contract events
  2674  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2675  	done bool                  // Whether the subscription completed delivering logs
  2676  	fail error                 // Occurred error to stop iteration
  2677  }
  2678  
  2679  // Next advances the iterator to the subsequent event, returning whether there
  2680  // are any more events found. In case of a retrieval or parsing error, false is
  2681  // returned and Error() can be queried for the exact failure.
  2682  func (it *RootChainBaseBlockFinalizedIterator) Next() bool {
  2683  	// If the iterator failed, stop iterating
  2684  	if it.fail != nil {
  2685  		return false
  2686  	}
  2687  	// If the iterator completed, deliver directly whatever's available
  2688  	if it.done {
  2689  		select {
  2690  		case log := <-it.logs:
  2691  			it.Event = new(RootChainBaseBlockFinalized)
  2692  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2693  				it.fail = err
  2694  				return false
  2695  			}
  2696  			it.Event.Raw = log
  2697  			return true
  2698  
  2699  		default:
  2700  			return false
  2701  		}
  2702  	}
  2703  	// Iterator still in progress, wait for either a data or an error event
  2704  	select {
  2705  	case log := <-it.logs:
  2706  		it.Event = new(RootChainBaseBlockFinalized)
  2707  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2708  			it.fail = err
  2709  			return false
  2710  		}
  2711  		it.Event.Raw = log
  2712  		return true
  2713  
  2714  	case err := <-it.sub.Err():
  2715  		it.done = true
  2716  		it.fail = err
  2717  		return it.Next()
  2718  	}
  2719  }
  2720  
  2721  // Error returns any retrieval or parsing error occurred during filtering.
  2722  func (it *RootChainBaseBlockFinalizedIterator) Error() error {
  2723  	return it.fail
  2724  }
  2725  
  2726  // Close terminates the iteration process, releasing any pending underlying
  2727  // resources.
  2728  func (it *RootChainBaseBlockFinalizedIterator) Close() error {
  2729  	it.sub.Unsubscribe()
  2730  	return nil
  2731  }
  2732  
  2733  // RootChainBaseBlockFinalized represents a BlockFinalized event raised by the RootChainBase contract.
  2734  type RootChainBaseBlockFinalized struct {
  2735  	ForkNumber  *big.Int
  2736  	BlockNumber *big.Int
  2737  	Raw         types.Log // Blockchain specific contextual infos
  2738  }
  2739  
  2740  // FilterBlockFinalized is a free log retrieval operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
  2741  //
  2742  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
  2743  func (_RootChainBase *RootChainBaseFilterer) FilterBlockFinalized(opts *bind.FilterOpts) (*RootChainBaseBlockFinalizedIterator, error) {
  2744  
  2745  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "BlockFinalized")
  2746  	if err != nil {
  2747  		return nil, err
  2748  	}
  2749  	return &RootChainBaseBlockFinalizedIterator{contract: _RootChainBase.contract, event: "BlockFinalized", logs: logs, sub: sub}, nil
  2750  }
  2751  
  2752  // WatchBlockFinalized is a free log subscription operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
  2753  //
  2754  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
  2755  func (_RootChainBase *RootChainBaseFilterer) WatchBlockFinalized(opts *bind.WatchOpts, sink chan<- *RootChainBaseBlockFinalized) (event.Subscription, error) {
  2756  
  2757  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "BlockFinalized")
  2758  	if err != nil {
  2759  		return nil, err
  2760  	}
  2761  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2762  		defer sub.Unsubscribe()
  2763  		for {
  2764  			select {
  2765  			case log := <-logs:
  2766  				// New log arrived, parse the event and forward to the user
  2767  				event := new(RootChainBaseBlockFinalized)
  2768  				if err := _RootChainBase.contract.UnpackLog(event, "BlockFinalized", log); err != nil {
  2769  					return err
  2770  				}
  2771  				event.Raw = log
  2772  
  2773  				select {
  2774  				case sink <- event:
  2775  				case err := <-sub.Err():
  2776  					return err
  2777  				case <-quit:
  2778  					return nil
  2779  				}
  2780  			case err := <-sub.Err():
  2781  				return err
  2782  			case <-quit:
  2783  				return nil
  2784  			}
  2785  		}
  2786  	}), nil
  2787  }
  2788  
  2789  // ParseBlockFinalized is a log parse operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
  2790  //
  2791  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
  2792  func (_RootChainBase *RootChainBaseFilterer) ParseBlockFinalized(log types.Log) (*RootChainBaseBlockFinalized, error) {
  2793  	event := new(RootChainBaseBlockFinalized)
  2794  	if err := _RootChainBase.contract.UnpackLog(event, "BlockFinalized", log); err != nil {
  2795  		return nil, err
  2796  	}
  2797  	return event, nil
  2798  }
  2799  
  2800  // RootChainBaseBlockSubmittedIterator is returned from FilterBlockSubmitted and is used to iterate over the raw logs and unpacked data for BlockSubmitted events raised by the RootChainBase contract.
  2801  type RootChainBaseBlockSubmittedIterator struct {
  2802  	Event *RootChainBaseBlockSubmitted // Event containing the contract specifics and raw log
  2803  
  2804  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2805  	event    string              // Event name to use for unpacking event data
  2806  
  2807  	logs chan types.Log        // Log channel receiving the found contract events
  2808  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2809  	done bool                  // Whether the subscription completed delivering logs
  2810  	fail error                 // Occurred error to stop iteration
  2811  }
  2812  
  2813  // Next advances the iterator to the subsequent event, returning whether there
  2814  // are any more events found. In case of a retrieval or parsing error, false is
  2815  // returned and Error() can be queried for the exact failure.
  2816  func (it *RootChainBaseBlockSubmittedIterator) Next() bool {
  2817  	// If the iterator failed, stop iterating
  2818  	if it.fail != nil {
  2819  		return false
  2820  	}
  2821  	// If the iterator completed, deliver directly whatever's available
  2822  	if it.done {
  2823  		select {
  2824  		case log := <-it.logs:
  2825  			it.Event = new(RootChainBaseBlockSubmitted)
  2826  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2827  				it.fail = err
  2828  				return false
  2829  			}
  2830  			it.Event.Raw = log
  2831  			return true
  2832  
  2833  		default:
  2834  			return false
  2835  		}
  2836  	}
  2837  	// Iterator still in progress, wait for either a data or an error event
  2838  	select {
  2839  	case log := <-it.logs:
  2840  		it.Event = new(RootChainBaseBlockSubmitted)
  2841  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2842  			it.fail = err
  2843  			return false
  2844  		}
  2845  		it.Event.Raw = log
  2846  		return true
  2847  
  2848  	case err := <-it.sub.Err():
  2849  		it.done = true
  2850  		it.fail = err
  2851  		return it.Next()
  2852  	}
  2853  }
  2854  
  2855  // Error returns any retrieval or parsing error occurred during filtering.
  2856  func (it *RootChainBaseBlockSubmittedIterator) Error() error {
  2857  	return it.fail
  2858  }
  2859  
  2860  // Close terminates the iteration process, releasing any pending underlying
  2861  // resources.
  2862  func (it *RootChainBaseBlockSubmittedIterator) Close() error {
  2863  	it.sub.Unsubscribe()
  2864  	return nil
  2865  }
  2866  
  2867  // RootChainBaseBlockSubmitted represents a BlockSubmitted event raised by the RootChainBase contract.
  2868  type RootChainBaseBlockSubmitted struct {
  2869  	Fork          *big.Int
  2870  	EpochNumber   *big.Int
  2871  	BlockNumber   *big.Int
  2872  	IsRequest     bool
  2873  	UserActivated bool
  2874  	Raw           types.Log // Blockchain specific contextual infos
  2875  }
  2876  
  2877  // FilterBlockSubmitted is a free log retrieval operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
  2878  //
  2879  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
  2880  func (_RootChainBase *RootChainBaseFilterer) FilterBlockSubmitted(opts *bind.FilterOpts) (*RootChainBaseBlockSubmittedIterator, error) {
  2881  
  2882  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "BlockSubmitted")
  2883  	if err != nil {
  2884  		return nil, err
  2885  	}
  2886  	return &RootChainBaseBlockSubmittedIterator{contract: _RootChainBase.contract, event: "BlockSubmitted", logs: logs, sub: sub}, nil
  2887  }
  2888  
  2889  // WatchBlockSubmitted is a free log subscription operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
  2890  //
  2891  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
  2892  func (_RootChainBase *RootChainBaseFilterer) WatchBlockSubmitted(opts *bind.WatchOpts, sink chan<- *RootChainBaseBlockSubmitted) (event.Subscription, error) {
  2893  
  2894  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "BlockSubmitted")
  2895  	if err != nil {
  2896  		return nil, err
  2897  	}
  2898  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2899  		defer sub.Unsubscribe()
  2900  		for {
  2901  			select {
  2902  			case log := <-logs:
  2903  				// New log arrived, parse the event and forward to the user
  2904  				event := new(RootChainBaseBlockSubmitted)
  2905  				if err := _RootChainBase.contract.UnpackLog(event, "BlockSubmitted", log); err != nil {
  2906  					return err
  2907  				}
  2908  				event.Raw = log
  2909  
  2910  				select {
  2911  				case sink <- event:
  2912  				case err := <-sub.Err():
  2913  					return err
  2914  				case <-quit:
  2915  					return nil
  2916  				}
  2917  			case err := <-sub.Err():
  2918  				return err
  2919  			case <-quit:
  2920  				return nil
  2921  			}
  2922  		}
  2923  	}), nil
  2924  }
  2925  
  2926  // ParseBlockSubmitted is a log parse operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
  2927  //
  2928  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
  2929  func (_RootChainBase *RootChainBaseFilterer) ParseBlockSubmitted(log types.Log) (*RootChainBaseBlockSubmitted, error) {
  2930  	event := new(RootChainBaseBlockSubmitted)
  2931  	if err := _RootChainBase.contract.UnpackLog(event, "BlockSubmitted", log); err != nil {
  2932  		return nil, err
  2933  	}
  2934  	return event, nil
  2935  }
  2936  
  2937  // RootChainBaseERUCreatedIterator is returned from FilterERUCreated and is used to iterate over the raw logs and unpacked data for ERUCreated events raised by the RootChainBase contract.
  2938  type RootChainBaseERUCreatedIterator struct {
  2939  	Event *RootChainBaseERUCreated // Event containing the contract specifics and raw log
  2940  
  2941  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2942  	event    string              // Event name to use for unpacking event data
  2943  
  2944  	logs chan types.Log        // Log channel receiving the found contract events
  2945  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2946  	done bool                  // Whether the subscription completed delivering logs
  2947  	fail error                 // Occurred error to stop iteration
  2948  }
  2949  
  2950  // Next advances the iterator to the subsequent event, returning whether there
  2951  // are any more events found. In case of a retrieval or parsing error, false is
  2952  // returned and Error() can be queried for the exact failure.
  2953  func (it *RootChainBaseERUCreatedIterator) Next() bool {
  2954  	// If the iterator failed, stop iterating
  2955  	if it.fail != nil {
  2956  		return false
  2957  	}
  2958  	// If the iterator completed, deliver directly whatever's available
  2959  	if it.done {
  2960  		select {
  2961  		case log := <-it.logs:
  2962  			it.Event = new(RootChainBaseERUCreated)
  2963  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2964  				it.fail = err
  2965  				return false
  2966  			}
  2967  			it.Event.Raw = log
  2968  			return true
  2969  
  2970  		default:
  2971  			return false
  2972  		}
  2973  	}
  2974  	// Iterator still in progress, wait for either a data or an error event
  2975  	select {
  2976  	case log := <-it.logs:
  2977  		it.Event = new(RootChainBaseERUCreated)
  2978  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2979  			it.fail = err
  2980  			return false
  2981  		}
  2982  		it.Event.Raw = log
  2983  		return true
  2984  
  2985  	case err := <-it.sub.Err():
  2986  		it.done = true
  2987  		it.fail = err
  2988  		return it.Next()
  2989  	}
  2990  }
  2991  
  2992  // Error returns any retrieval or parsing error occurred during filtering.
  2993  func (it *RootChainBaseERUCreatedIterator) Error() error {
  2994  	return it.fail
  2995  }
  2996  
  2997  // Close terminates the iteration process, releasing any pending underlying
  2998  // resources.
  2999  func (it *RootChainBaseERUCreatedIterator) Close() error {
  3000  	it.sub.Unsubscribe()
  3001  	return nil
  3002  }
  3003  
  3004  // RootChainBaseERUCreated represents a ERUCreated event raised by the RootChainBase contract.
  3005  type RootChainBaseERUCreated struct {
  3006  	RequestId *big.Int
  3007  	Requestor common.Address
  3008  	To        common.Address
  3009  	TrieKey   []byte
  3010  	TrieValue [32]byte
  3011  	Raw       types.Log // Blockchain specific contextual infos
  3012  }
  3013  
  3014  // FilterERUCreated is a free log retrieval operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
  3015  //
  3016  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
  3017  func (_RootChainBase *RootChainBaseFilterer) FilterERUCreated(opts *bind.FilterOpts) (*RootChainBaseERUCreatedIterator, error) {
  3018  
  3019  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "ERUCreated")
  3020  	if err != nil {
  3021  		return nil, err
  3022  	}
  3023  	return &RootChainBaseERUCreatedIterator{contract: _RootChainBase.contract, event: "ERUCreated", logs: logs, sub: sub}, nil
  3024  }
  3025  
  3026  // WatchERUCreated is a free log subscription operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
  3027  //
  3028  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
  3029  func (_RootChainBase *RootChainBaseFilterer) WatchERUCreated(opts *bind.WatchOpts, sink chan<- *RootChainBaseERUCreated) (event.Subscription, error) {
  3030  
  3031  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "ERUCreated")
  3032  	if err != nil {
  3033  		return nil, err
  3034  	}
  3035  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3036  		defer sub.Unsubscribe()
  3037  		for {
  3038  			select {
  3039  			case log := <-logs:
  3040  				// New log arrived, parse the event and forward to the user
  3041  				event := new(RootChainBaseERUCreated)
  3042  				if err := _RootChainBase.contract.UnpackLog(event, "ERUCreated", log); err != nil {
  3043  					return err
  3044  				}
  3045  				event.Raw = log
  3046  
  3047  				select {
  3048  				case sink <- event:
  3049  				case err := <-sub.Err():
  3050  					return err
  3051  				case <-quit:
  3052  					return nil
  3053  				}
  3054  			case err := <-sub.Err():
  3055  				return err
  3056  			case <-quit:
  3057  				return nil
  3058  			}
  3059  		}
  3060  	}), nil
  3061  }
  3062  
  3063  // ParseERUCreated is a log parse operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
  3064  //
  3065  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
  3066  func (_RootChainBase *RootChainBaseFilterer) ParseERUCreated(log types.Log) (*RootChainBaseERUCreated, error) {
  3067  	event := new(RootChainBaseERUCreated)
  3068  	if err := _RootChainBase.contract.UnpackLog(event, "ERUCreated", log); err != nil {
  3069  		return nil, err
  3070  	}
  3071  	return event, nil
  3072  }
  3073  
  3074  // RootChainBaseEpochFilledIterator is returned from FilterEpochFilled and is used to iterate over the raw logs and unpacked data for EpochFilled events raised by the RootChainBase contract.
  3075  type RootChainBaseEpochFilledIterator struct {
  3076  	Event *RootChainBaseEpochFilled // Event containing the contract specifics and raw log
  3077  
  3078  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3079  	event    string              // Event name to use for unpacking event data
  3080  
  3081  	logs chan types.Log        // Log channel receiving the found contract events
  3082  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3083  	done bool                  // Whether the subscription completed delivering logs
  3084  	fail error                 // Occurred error to stop iteration
  3085  }
  3086  
  3087  // Next advances the iterator to the subsequent event, returning whether there
  3088  // are any more events found. In case of a retrieval or parsing error, false is
  3089  // returned and Error() can be queried for the exact failure.
  3090  func (it *RootChainBaseEpochFilledIterator) Next() bool {
  3091  	// If the iterator failed, stop iterating
  3092  	if it.fail != nil {
  3093  		return false
  3094  	}
  3095  	// If the iterator completed, deliver directly whatever's available
  3096  	if it.done {
  3097  		select {
  3098  		case log := <-it.logs:
  3099  			it.Event = new(RootChainBaseEpochFilled)
  3100  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3101  				it.fail = err
  3102  				return false
  3103  			}
  3104  			it.Event.Raw = log
  3105  			return true
  3106  
  3107  		default:
  3108  			return false
  3109  		}
  3110  	}
  3111  	// Iterator still in progress, wait for either a data or an error event
  3112  	select {
  3113  	case log := <-it.logs:
  3114  		it.Event = new(RootChainBaseEpochFilled)
  3115  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3116  			it.fail = err
  3117  			return false
  3118  		}
  3119  		it.Event.Raw = log
  3120  		return true
  3121  
  3122  	case err := <-it.sub.Err():
  3123  		it.done = true
  3124  		it.fail = err
  3125  		return it.Next()
  3126  	}
  3127  }
  3128  
  3129  // Error returns any retrieval or parsing error occurred during filtering.
  3130  func (it *RootChainBaseEpochFilledIterator) Error() error {
  3131  	return it.fail
  3132  }
  3133  
  3134  // Close terminates the iteration process, releasing any pending underlying
  3135  // resources.
  3136  func (it *RootChainBaseEpochFilledIterator) Close() error {
  3137  	it.sub.Unsubscribe()
  3138  	return nil
  3139  }
  3140  
  3141  // RootChainBaseEpochFilled represents a EpochFilled event raised by the RootChainBase contract.
  3142  type RootChainBaseEpochFilled struct {
  3143  	ForkNumber  *big.Int
  3144  	EpochNumber *big.Int
  3145  	Raw         types.Log // Blockchain specific contextual infos
  3146  }
  3147  
  3148  // FilterEpochFilled is a free log retrieval operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
  3149  //
  3150  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
  3151  func (_RootChainBase *RootChainBaseFilterer) FilterEpochFilled(opts *bind.FilterOpts) (*RootChainBaseEpochFilledIterator, error) {
  3152  
  3153  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "EpochFilled")
  3154  	if err != nil {
  3155  		return nil, err
  3156  	}
  3157  	return &RootChainBaseEpochFilledIterator{contract: _RootChainBase.contract, event: "EpochFilled", logs: logs, sub: sub}, nil
  3158  }
  3159  
  3160  // WatchEpochFilled is a free log subscription operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
  3161  //
  3162  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
  3163  func (_RootChainBase *RootChainBaseFilterer) WatchEpochFilled(opts *bind.WatchOpts, sink chan<- *RootChainBaseEpochFilled) (event.Subscription, error) {
  3164  
  3165  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "EpochFilled")
  3166  	if err != nil {
  3167  		return nil, err
  3168  	}
  3169  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3170  		defer sub.Unsubscribe()
  3171  		for {
  3172  			select {
  3173  			case log := <-logs:
  3174  				// New log arrived, parse the event and forward to the user
  3175  				event := new(RootChainBaseEpochFilled)
  3176  				if err := _RootChainBase.contract.UnpackLog(event, "EpochFilled", log); err != nil {
  3177  					return err
  3178  				}
  3179  				event.Raw = log
  3180  
  3181  				select {
  3182  				case sink <- event:
  3183  				case err := <-sub.Err():
  3184  					return err
  3185  				case <-quit:
  3186  					return nil
  3187  				}
  3188  			case err := <-sub.Err():
  3189  				return err
  3190  			case <-quit:
  3191  				return nil
  3192  			}
  3193  		}
  3194  	}), nil
  3195  }
  3196  
  3197  // ParseEpochFilled is a log parse operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
  3198  //
  3199  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
  3200  func (_RootChainBase *RootChainBaseFilterer) ParseEpochFilled(log types.Log) (*RootChainBaseEpochFilled, error) {
  3201  	event := new(RootChainBaseEpochFilled)
  3202  	if err := _RootChainBase.contract.UnpackLog(event, "EpochFilled", log); err != nil {
  3203  		return nil, err
  3204  	}
  3205  	return event, nil
  3206  }
  3207  
  3208  // RootChainBaseEpochFillingIterator is returned from FilterEpochFilling and is used to iterate over the raw logs and unpacked data for EpochFilling events raised by the RootChainBase contract.
  3209  type RootChainBaseEpochFillingIterator struct {
  3210  	Event *RootChainBaseEpochFilling // Event containing the contract specifics and raw log
  3211  
  3212  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3213  	event    string              // Event name to use for unpacking event data
  3214  
  3215  	logs chan types.Log        // Log channel receiving the found contract events
  3216  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3217  	done bool                  // Whether the subscription completed delivering logs
  3218  	fail error                 // Occurred error to stop iteration
  3219  }
  3220  
  3221  // Next advances the iterator to the subsequent event, returning whether there
  3222  // are any more events found. In case of a retrieval or parsing error, false is
  3223  // returned and Error() can be queried for the exact failure.
  3224  func (it *RootChainBaseEpochFillingIterator) Next() bool {
  3225  	// If the iterator failed, stop iterating
  3226  	if it.fail != nil {
  3227  		return false
  3228  	}
  3229  	// If the iterator completed, deliver directly whatever's available
  3230  	if it.done {
  3231  		select {
  3232  		case log := <-it.logs:
  3233  			it.Event = new(RootChainBaseEpochFilling)
  3234  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3235  				it.fail = err
  3236  				return false
  3237  			}
  3238  			it.Event.Raw = log
  3239  			return true
  3240  
  3241  		default:
  3242  			return false
  3243  		}
  3244  	}
  3245  	// Iterator still in progress, wait for either a data or an error event
  3246  	select {
  3247  	case log := <-it.logs:
  3248  		it.Event = new(RootChainBaseEpochFilling)
  3249  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3250  			it.fail = err
  3251  			return false
  3252  		}
  3253  		it.Event.Raw = log
  3254  		return true
  3255  
  3256  	case err := <-it.sub.Err():
  3257  		it.done = true
  3258  		it.fail = err
  3259  		return it.Next()
  3260  	}
  3261  }
  3262  
  3263  // Error returns any retrieval or parsing error occurred during filtering.
  3264  func (it *RootChainBaseEpochFillingIterator) Error() error {
  3265  	return it.fail
  3266  }
  3267  
  3268  // Close terminates the iteration process, releasing any pending underlying
  3269  // resources.
  3270  func (it *RootChainBaseEpochFillingIterator) Close() error {
  3271  	it.sub.Unsubscribe()
  3272  	return nil
  3273  }
  3274  
  3275  // RootChainBaseEpochFilling represents a EpochFilling event raised by the RootChainBase contract.
  3276  type RootChainBaseEpochFilling struct {
  3277  	ForkNumber  *big.Int
  3278  	EpochNumber *big.Int
  3279  	Raw         types.Log // Blockchain specific contextual infos
  3280  }
  3281  
  3282  // FilterEpochFilling is a free log retrieval operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
  3283  //
  3284  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
  3285  func (_RootChainBase *RootChainBaseFilterer) FilterEpochFilling(opts *bind.FilterOpts) (*RootChainBaseEpochFillingIterator, error) {
  3286  
  3287  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "EpochFilling")
  3288  	if err != nil {
  3289  		return nil, err
  3290  	}
  3291  	return &RootChainBaseEpochFillingIterator{contract: _RootChainBase.contract, event: "EpochFilling", logs: logs, sub: sub}, nil
  3292  }
  3293  
  3294  // WatchEpochFilling is a free log subscription operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
  3295  //
  3296  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
  3297  func (_RootChainBase *RootChainBaseFilterer) WatchEpochFilling(opts *bind.WatchOpts, sink chan<- *RootChainBaseEpochFilling) (event.Subscription, error) {
  3298  
  3299  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "EpochFilling")
  3300  	if err != nil {
  3301  		return nil, err
  3302  	}
  3303  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3304  		defer sub.Unsubscribe()
  3305  		for {
  3306  			select {
  3307  			case log := <-logs:
  3308  				// New log arrived, parse the event and forward to the user
  3309  				event := new(RootChainBaseEpochFilling)
  3310  				if err := _RootChainBase.contract.UnpackLog(event, "EpochFilling", log); err != nil {
  3311  					return err
  3312  				}
  3313  				event.Raw = log
  3314  
  3315  				select {
  3316  				case sink <- event:
  3317  				case err := <-sub.Err():
  3318  					return err
  3319  				case <-quit:
  3320  					return nil
  3321  				}
  3322  			case err := <-sub.Err():
  3323  				return err
  3324  			case <-quit:
  3325  				return nil
  3326  			}
  3327  		}
  3328  	}), nil
  3329  }
  3330  
  3331  // ParseEpochFilling is a log parse operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
  3332  //
  3333  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
  3334  func (_RootChainBase *RootChainBaseFilterer) ParseEpochFilling(log types.Log) (*RootChainBaseEpochFilling, error) {
  3335  	event := new(RootChainBaseEpochFilling)
  3336  	if err := _RootChainBase.contract.UnpackLog(event, "EpochFilling", log); err != nil {
  3337  		return nil, err
  3338  	}
  3339  	return event, nil
  3340  }
  3341  
  3342  // RootChainBaseEpochFinalizedIterator is returned from FilterEpochFinalized and is used to iterate over the raw logs and unpacked data for EpochFinalized events raised by the RootChainBase contract.
  3343  type RootChainBaseEpochFinalizedIterator struct {
  3344  	Event *RootChainBaseEpochFinalized // Event containing the contract specifics and raw log
  3345  
  3346  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3347  	event    string              // Event name to use for unpacking event data
  3348  
  3349  	logs chan types.Log        // Log channel receiving the found contract events
  3350  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3351  	done bool                  // Whether the subscription completed delivering logs
  3352  	fail error                 // Occurred error to stop iteration
  3353  }
  3354  
  3355  // Next advances the iterator to the subsequent event, returning whether there
  3356  // are any more events found. In case of a retrieval or parsing error, false is
  3357  // returned and Error() can be queried for the exact failure.
  3358  func (it *RootChainBaseEpochFinalizedIterator) Next() bool {
  3359  	// If the iterator failed, stop iterating
  3360  	if it.fail != nil {
  3361  		return false
  3362  	}
  3363  	// If the iterator completed, deliver directly whatever's available
  3364  	if it.done {
  3365  		select {
  3366  		case log := <-it.logs:
  3367  			it.Event = new(RootChainBaseEpochFinalized)
  3368  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3369  				it.fail = err
  3370  				return false
  3371  			}
  3372  			it.Event.Raw = log
  3373  			return true
  3374  
  3375  		default:
  3376  			return false
  3377  		}
  3378  	}
  3379  	// Iterator still in progress, wait for either a data or an error event
  3380  	select {
  3381  	case log := <-it.logs:
  3382  		it.Event = new(RootChainBaseEpochFinalized)
  3383  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3384  			it.fail = err
  3385  			return false
  3386  		}
  3387  		it.Event.Raw = log
  3388  		return true
  3389  
  3390  	case err := <-it.sub.Err():
  3391  		it.done = true
  3392  		it.fail = err
  3393  		return it.Next()
  3394  	}
  3395  }
  3396  
  3397  // Error returns any retrieval or parsing error occurred during filtering.
  3398  func (it *RootChainBaseEpochFinalizedIterator) Error() error {
  3399  	return it.fail
  3400  }
  3401  
  3402  // Close terminates the iteration process, releasing any pending underlying
  3403  // resources.
  3404  func (it *RootChainBaseEpochFinalizedIterator) Close() error {
  3405  	it.sub.Unsubscribe()
  3406  	return nil
  3407  }
  3408  
  3409  // RootChainBaseEpochFinalized represents a EpochFinalized event raised by the RootChainBase contract.
  3410  type RootChainBaseEpochFinalized struct {
  3411  	ForkNumber       *big.Int
  3412  	EpochNumber      *big.Int
  3413  	StartBlockNumber *big.Int
  3414  	EndBlockNumber   *big.Int
  3415  	Raw              types.Log // Blockchain specific contextual infos
  3416  }
  3417  
  3418  // FilterEpochFinalized is a free log retrieval operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
  3419  //
  3420  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
  3421  func (_RootChainBase *RootChainBaseFilterer) FilterEpochFinalized(opts *bind.FilterOpts) (*RootChainBaseEpochFinalizedIterator, error) {
  3422  
  3423  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "EpochFinalized")
  3424  	if err != nil {
  3425  		return nil, err
  3426  	}
  3427  	return &RootChainBaseEpochFinalizedIterator{contract: _RootChainBase.contract, event: "EpochFinalized", logs: logs, sub: sub}, nil
  3428  }
  3429  
  3430  // WatchEpochFinalized is a free log subscription operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
  3431  //
  3432  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
  3433  func (_RootChainBase *RootChainBaseFilterer) WatchEpochFinalized(opts *bind.WatchOpts, sink chan<- *RootChainBaseEpochFinalized) (event.Subscription, error) {
  3434  
  3435  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "EpochFinalized")
  3436  	if err != nil {
  3437  		return nil, err
  3438  	}
  3439  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3440  		defer sub.Unsubscribe()
  3441  		for {
  3442  			select {
  3443  			case log := <-logs:
  3444  				// New log arrived, parse the event and forward to the user
  3445  				event := new(RootChainBaseEpochFinalized)
  3446  				if err := _RootChainBase.contract.UnpackLog(event, "EpochFinalized", log); err != nil {
  3447  					return err
  3448  				}
  3449  				event.Raw = log
  3450  
  3451  				select {
  3452  				case sink <- event:
  3453  				case err := <-sub.Err():
  3454  					return err
  3455  				case <-quit:
  3456  					return nil
  3457  				}
  3458  			case err := <-sub.Err():
  3459  				return err
  3460  			case <-quit:
  3461  				return nil
  3462  			}
  3463  		}
  3464  	}), nil
  3465  }
  3466  
  3467  // ParseEpochFinalized is a log parse operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
  3468  //
  3469  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
  3470  func (_RootChainBase *RootChainBaseFilterer) ParseEpochFinalized(log types.Log) (*RootChainBaseEpochFinalized, error) {
  3471  	event := new(RootChainBaseEpochFinalized)
  3472  	if err := _RootChainBase.contract.UnpackLog(event, "EpochFinalized", log); err != nil {
  3473  		return nil, err
  3474  	}
  3475  	return event, nil
  3476  }
  3477  
  3478  // RootChainBaseEpochPreparedIterator is returned from FilterEpochPrepared and is used to iterate over the raw logs and unpacked data for EpochPrepared events raised by the RootChainBase contract.
  3479  type RootChainBaseEpochPreparedIterator struct {
  3480  	Event *RootChainBaseEpochPrepared // Event containing the contract specifics and raw log
  3481  
  3482  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3483  	event    string              // Event name to use for unpacking event data
  3484  
  3485  	logs chan types.Log        // Log channel receiving the found contract events
  3486  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3487  	done bool                  // Whether the subscription completed delivering logs
  3488  	fail error                 // Occurred error to stop iteration
  3489  }
  3490  
  3491  // Next advances the iterator to the subsequent event, returning whether there
  3492  // are any more events found. In case of a retrieval or parsing error, false is
  3493  // returned and Error() can be queried for the exact failure.
  3494  func (it *RootChainBaseEpochPreparedIterator) Next() bool {
  3495  	// If the iterator failed, stop iterating
  3496  	if it.fail != nil {
  3497  		return false
  3498  	}
  3499  	// If the iterator completed, deliver directly whatever's available
  3500  	if it.done {
  3501  		select {
  3502  		case log := <-it.logs:
  3503  			it.Event = new(RootChainBaseEpochPrepared)
  3504  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3505  				it.fail = err
  3506  				return false
  3507  			}
  3508  			it.Event.Raw = log
  3509  			return true
  3510  
  3511  		default:
  3512  			return false
  3513  		}
  3514  	}
  3515  	// Iterator still in progress, wait for either a data or an error event
  3516  	select {
  3517  	case log := <-it.logs:
  3518  		it.Event = new(RootChainBaseEpochPrepared)
  3519  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3520  			it.fail = err
  3521  			return false
  3522  		}
  3523  		it.Event.Raw = log
  3524  		return true
  3525  
  3526  	case err := <-it.sub.Err():
  3527  		it.done = true
  3528  		it.fail = err
  3529  		return it.Next()
  3530  	}
  3531  }
  3532  
  3533  // Error returns any retrieval or parsing error occurred during filtering.
  3534  func (it *RootChainBaseEpochPreparedIterator) Error() error {
  3535  	return it.fail
  3536  }
  3537  
  3538  // Close terminates the iteration process, releasing any pending underlying
  3539  // resources.
  3540  func (it *RootChainBaseEpochPreparedIterator) Close() error {
  3541  	it.sub.Unsubscribe()
  3542  	return nil
  3543  }
  3544  
  3545  // RootChainBaseEpochPrepared represents a EpochPrepared event raised by the RootChainBase contract.
  3546  type RootChainBaseEpochPrepared struct {
  3547  	ForkNumber       *big.Int
  3548  	EpochNumber      *big.Int
  3549  	StartBlockNumber *big.Int
  3550  	EndBlockNumber   *big.Int
  3551  	RequestStart     *big.Int
  3552  	RequestEnd       *big.Int
  3553  	EpochIsEmpty     bool
  3554  	IsRequest        bool
  3555  	UserActivated    bool
  3556  	Rebase           bool
  3557  	Raw              types.Log // Blockchain specific contextual infos
  3558  }
  3559  
  3560  // FilterEpochPrepared is a free log retrieval operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
  3561  //
  3562  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
  3563  func (_RootChainBase *RootChainBaseFilterer) FilterEpochPrepared(opts *bind.FilterOpts) (*RootChainBaseEpochPreparedIterator, error) {
  3564  
  3565  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "EpochPrepared")
  3566  	if err != nil {
  3567  		return nil, err
  3568  	}
  3569  	return &RootChainBaseEpochPreparedIterator{contract: _RootChainBase.contract, event: "EpochPrepared", logs: logs, sub: sub}, nil
  3570  }
  3571  
  3572  // WatchEpochPrepared is a free log subscription operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
  3573  //
  3574  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
  3575  func (_RootChainBase *RootChainBaseFilterer) WatchEpochPrepared(opts *bind.WatchOpts, sink chan<- *RootChainBaseEpochPrepared) (event.Subscription, error) {
  3576  
  3577  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "EpochPrepared")
  3578  	if err != nil {
  3579  		return nil, err
  3580  	}
  3581  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3582  		defer sub.Unsubscribe()
  3583  		for {
  3584  			select {
  3585  			case log := <-logs:
  3586  				// New log arrived, parse the event and forward to the user
  3587  				event := new(RootChainBaseEpochPrepared)
  3588  				if err := _RootChainBase.contract.UnpackLog(event, "EpochPrepared", log); err != nil {
  3589  					return err
  3590  				}
  3591  				event.Raw = log
  3592  
  3593  				select {
  3594  				case sink <- event:
  3595  				case err := <-sub.Err():
  3596  					return err
  3597  				case <-quit:
  3598  					return nil
  3599  				}
  3600  			case err := <-sub.Err():
  3601  				return err
  3602  			case <-quit:
  3603  				return nil
  3604  			}
  3605  		}
  3606  	}), nil
  3607  }
  3608  
  3609  // ParseEpochPrepared is a log parse operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
  3610  //
  3611  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
  3612  func (_RootChainBase *RootChainBaseFilterer) ParseEpochPrepared(log types.Log) (*RootChainBaseEpochPrepared, error) {
  3613  	event := new(RootChainBaseEpochPrepared)
  3614  	if err := _RootChainBase.contract.UnpackLog(event, "EpochPrepared", log); err != nil {
  3615  		return nil, err
  3616  	}
  3617  	return event, nil
  3618  }
  3619  
  3620  // RootChainBaseEpochRebasedIterator is returned from FilterEpochRebased and is used to iterate over the raw logs and unpacked data for EpochRebased events raised by the RootChainBase contract.
  3621  type RootChainBaseEpochRebasedIterator struct {
  3622  	Event *RootChainBaseEpochRebased // Event containing the contract specifics and raw log
  3623  
  3624  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3625  	event    string              // Event name to use for unpacking event data
  3626  
  3627  	logs chan types.Log        // Log channel receiving the found contract events
  3628  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3629  	done bool                  // Whether the subscription completed delivering logs
  3630  	fail error                 // Occurred error to stop iteration
  3631  }
  3632  
  3633  // Next advances the iterator to the subsequent event, returning whether there
  3634  // are any more events found. In case of a retrieval or parsing error, false is
  3635  // returned and Error() can be queried for the exact failure.
  3636  func (it *RootChainBaseEpochRebasedIterator) Next() bool {
  3637  	// If the iterator failed, stop iterating
  3638  	if it.fail != nil {
  3639  		return false
  3640  	}
  3641  	// If the iterator completed, deliver directly whatever's available
  3642  	if it.done {
  3643  		select {
  3644  		case log := <-it.logs:
  3645  			it.Event = new(RootChainBaseEpochRebased)
  3646  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3647  				it.fail = err
  3648  				return false
  3649  			}
  3650  			it.Event.Raw = log
  3651  			return true
  3652  
  3653  		default:
  3654  			return false
  3655  		}
  3656  	}
  3657  	// Iterator still in progress, wait for either a data or an error event
  3658  	select {
  3659  	case log := <-it.logs:
  3660  		it.Event = new(RootChainBaseEpochRebased)
  3661  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3662  			it.fail = err
  3663  			return false
  3664  		}
  3665  		it.Event.Raw = log
  3666  		return true
  3667  
  3668  	case err := <-it.sub.Err():
  3669  		it.done = true
  3670  		it.fail = err
  3671  		return it.Next()
  3672  	}
  3673  }
  3674  
  3675  // Error returns any retrieval or parsing error occurred during filtering.
  3676  func (it *RootChainBaseEpochRebasedIterator) Error() error {
  3677  	return it.fail
  3678  }
  3679  
  3680  // Close terminates the iteration process, releasing any pending underlying
  3681  // resources.
  3682  func (it *RootChainBaseEpochRebasedIterator) Close() error {
  3683  	it.sub.Unsubscribe()
  3684  	return nil
  3685  }
  3686  
  3687  // RootChainBaseEpochRebased represents a EpochRebased event raised by the RootChainBase contract.
  3688  type RootChainBaseEpochRebased struct {
  3689  	ForkNumber       *big.Int
  3690  	EpochNumber      *big.Int
  3691  	StartBlockNumber *big.Int
  3692  	EndBlockNumber   *big.Int
  3693  	RequestStart     *big.Int
  3694  	RequestEnd       *big.Int
  3695  	EpochIsEmpty     bool
  3696  	IsRequest        bool
  3697  	UserActivated    bool
  3698  	Raw              types.Log // Blockchain specific contextual infos
  3699  }
  3700  
  3701  // FilterEpochRebased is a free log retrieval operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
  3702  //
  3703  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
  3704  func (_RootChainBase *RootChainBaseFilterer) FilterEpochRebased(opts *bind.FilterOpts) (*RootChainBaseEpochRebasedIterator, error) {
  3705  
  3706  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "EpochRebased")
  3707  	if err != nil {
  3708  		return nil, err
  3709  	}
  3710  	return &RootChainBaseEpochRebasedIterator{contract: _RootChainBase.contract, event: "EpochRebased", logs: logs, sub: sub}, nil
  3711  }
  3712  
  3713  // WatchEpochRebased is a free log subscription operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
  3714  //
  3715  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
  3716  func (_RootChainBase *RootChainBaseFilterer) WatchEpochRebased(opts *bind.WatchOpts, sink chan<- *RootChainBaseEpochRebased) (event.Subscription, error) {
  3717  
  3718  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "EpochRebased")
  3719  	if err != nil {
  3720  		return nil, err
  3721  	}
  3722  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3723  		defer sub.Unsubscribe()
  3724  		for {
  3725  			select {
  3726  			case log := <-logs:
  3727  				// New log arrived, parse the event and forward to the user
  3728  				event := new(RootChainBaseEpochRebased)
  3729  				if err := _RootChainBase.contract.UnpackLog(event, "EpochRebased", log); err != nil {
  3730  					return err
  3731  				}
  3732  				event.Raw = log
  3733  
  3734  				select {
  3735  				case sink <- event:
  3736  				case err := <-sub.Err():
  3737  					return err
  3738  				case <-quit:
  3739  					return nil
  3740  				}
  3741  			case err := <-sub.Err():
  3742  				return err
  3743  			case <-quit:
  3744  				return nil
  3745  			}
  3746  		}
  3747  	}), nil
  3748  }
  3749  
  3750  // ParseEpochRebased is a log parse operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
  3751  //
  3752  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
  3753  func (_RootChainBase *RootChainBaseFilterer) ParseEpochRebased(log types.Log) (*RootChainBaseEpochRebased, error) {
  3754  	event := new(RootChainBaseEpochRebased)
  3755  	if err := _RootChainBase.contract.UnpackLog(event, "EpochRebased", log); err != nil {
  3756  		return nil, err
  3757  	}
  3758  	return event, nil
  3759  }
  3760  
  3761  // RootChainBaseForkedIterator is returned from FilterForked and is used to iterate over the raw logs and unpacked data for Forked events raised by the RootChainBase contract.
  3762  type RootChainBaseForkedIterator struct {
  3763  	Event *RootChainBaseForked // Event containing the contract specifics and raw log
  3764  
  3765  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3766  	event    string              // Event name to use for unpacking event data
  3767  
  3768  	logs chan types.Log        // Log channel receiving the found contract events
  3769  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3770  	done bool                  // Whether the subscription completed delivering logs
  3771  	fail error                 // Occurred error to stop iteration
  3772  }
  3773  
  3774  // Next advances the iterator to the subsequent event, returning whether there
  3775  // are any more events found. In case of a retrieval or parsing error, false is
  3776  // returned and Error() can be queried for the exact failure.
  3777  func (it *RootChainBaseForkedIterator) Next() bool {
  3778  	// If the iterator failed, stop iterating
  3779  	if it.fail != nil {
  3780  		return false
  3781  	}
  3782  	// If the iterator completed, deliver directly whatever's available
  3783  	if it.done {
  3784  		select {
  3785  		case log := <-it.logs:
  3786  			it.Event = new(RootChainBaseForked)
  3787  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3788  				it.fail = err
  3789  				return false
  3790  			}
  3791  			it.Event.Raw = log
  3792  			return true
  3793  
  3794  		default:
  3795  			return false
  3796  		}
  3797  	}
  3798  	// Iterator still in progress, wait for either a data or an error event
  3799  	select {
  3800  	case log := <-it.logs:
  3801  		it.Event = new(RootChainBaseForked)
  3802  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3803  			it.fail = err
  3804  			return false
  3805  		}
  3806  		it.Event.Raw = log
  3807  		return true
  3808  
  3809  	case err := <-it.sub.Err():
  3810  		it.done = true
  3811  		it.fail = err
  3812  		return it.Next()
  3813  	}
  3814  }
  3815  
  3816  // Error returns any retrieval or parsing error occurred during filtering.
  3817  func (it *RootChainBaseForkedIterator) Error() error {
  3818  	return it.fail
  3819  }
  3820  
  3821  // Close terminates the iteration process, releasing any pending underlying
  3822  // resources.
  3823  func (it *RootChainBaseForkedIterator) Close() error {
  3824  	it.sub.Unsubscribe()
  3825  	return nil
  3826  }
  3827  
  3828  // RootChainBaseForked represents a Forked event raised by the RootChainBase contract.
  3829  type RootChainBaseForked struct {
  3830  	NewFork           *big.Int
  3831  	EpochNumber       *big.Int
  3832  	ForkedBlockNumber *big.Int
  3833  	Raw               types.Log // Blockchain specific contextual infos
  3834  }
  3835  
  3836  // FilterForked is a free log retrieval operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
  3837  //
  3838  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
  3839  func (_RootChainBase *RootChainBaseFilterer) FilterForked(opts *bind.FilterOpts) (*RootChainBaseForkedIterator, error) {
  3840  
  3841  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "Forked")
  3842  	if err != nil {
  3843  		return nil, err
  3844  	}
  3845  	return &RootChainBaseForkedIterator{contract: _RootChainBase.contract, event: "Forked", logs: logs, sub: sub}, nil
  3846  }
  3847  
  3848  // WatchForked is a free log subscription operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
  3849  //
  3850  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
  3851  func (_RootChainBase *RootChainBaseFilterer) WatchForked(opts *bind.WatchOpts, sink chan<- *RootChainBaseForked) (event.Subscription, error) {
  3852  
  3853  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "Forked")
  3854  	if err != nil {
  3855  		return nil, err
  3856  	}
  3857  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3858  		defer sub.Unsubscribe()
  3859  		for {
  3860  			select {
  3861  			case log := <-logs:
  3862  				// New log arrived, parse the event and forward to the user
  3863  				event := new(RootChainBaseForked)
  3864  				if err := _RootChainBase.contract.UnpackLog(event, "Forked", log); err != nil {
  3865  					return err
  3866  				}
  3867  				event.Raw = log
  3868  
  3869  				select {
  3870  				case sink <- event:
  3871  				case err := <-sub.Err():
  3872  					return err
  3873  				case <-quit:
  3874  					return nil
  3875  				}
  3876  			case err := <-sub.Err():
  3877  				return err
  3878  			case <-quit:
  3879  				return nil
  3880  			}
  3881  		}
  3882  	}), nil
  3883  }
  3884  
  3885  // ParseForked is a log parse operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
  3886  //
  3887  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
  3888  func (_RootChainBase *RootChainBaseFilterer) ParseForked(log types.Log) (*RootChainBaseForked, error) {
  3889  	event := new(RootChainBaseForked)
  3890  	if err := _RootChainBase.contract.UnpackLog(event, "Forked", log); err != nil {
  3891  		return nil, err
  3892  	}
  3893  	return event, nil
  3894  }
  3895  
  3896  // RootChainBaseOperatorChangedIterator is returned from FilterOperatorChanged and is used to iterate over the raw logs and unpacked data for OperatorChanged events raised by the RootChainBase contract.
  3897  type RootChainBaseOperatorChangedIterator struct {
  3898  	Event *RootChainBaseOperatorChanged // Event containing the contract specifics and raw log
  3899  
  3900  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3901  	event    string              // Event name to use for unpacking event data
  3902  
  3903  	logs chan types.Log        // Log channel receiving the found contract events
  3904  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3905  	done bool                  // Whether the subscription completed delivering logs
  3906  	fail error                 // Occurred error to stop iteration
  3907  }
  3908  
  3909  // Next advances the iterator to the subsequent event, returning whether there
  3910  // are any more events found. In case of a retrieval or parsing error, false is
  3911  // returned and Error() can be queried for the exact failure.
  3912  func (it *RootChainBaseOperatorChangedIterator) Next() bool {
  3913  	// If the iterator failed, stop iterating
  3914  	if it.fail != nil {
  3915  		return false
  3916  	}
  3917  	// If the iterator completed, deliver directly whatever's available
  3918  	if it.done {
  3919  		select {
  3920  		case log := <-it.logs:
  3921  			it.Event = new(RootChainBaseOperatorChanged)
  3922  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3923  				it.fail = err
  3924  				return false
  3925  			}
  3926  			it.Event.Raw = log
  3927  			return true
  3928  
  3929  		default:
  3930  			return false
  3931  		}
  3932  	}
  3933  	// Iterator still in progress, wait for either a data or an error event
  3934  	select {
  3935  	case log := <-it.logs:
  3936  		it.Event = new(RootChainBaseOperatorChanged)
  3937  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3938  			it.fail = err
  3939  			return false
  3940  		}
  3941  		it.Event.Raw = log
  3942  		return true
  3943  
  3944  	case err := <-it.sub.Err():
  3945  		it.done = true
  3946  		it.fail = err
  3947  		return it.Next()
  3948  	}
  3949  }
  3950  
  3951  // Error returns any retrieval or parsing error occurred during filtering.
  3952  func (it *RootChainBaseOperatorChangedIterator) Error() error {
  3953  	return it.fail
  3954  }
  3955  
  3956  // Close terminates the iteration process, releasing any pending underlying
  3957  // resources.
  3958  func (it *RootChainBaseOperatorChangedIterator) Close() error {
  3959  	it.sub.Unsubscribe()
  3960  	return nil
  3961  }
  3962  
  3963  // RootChainBaseOperatorChanged represents a OperatorChanged event raised by the RootChainBase contract.
  3964  type RootChainBaseOperatorChanged struct {
  3965  	NewOperator common.Address
  3966  	Raw         types.Log // Blockchain specific contextual infos
  3967  }
  3968  
  3969  // FilterOperatorChanged is a free log retrieval operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
  3970  //
  3971  // Solidity: event OperatorChanged(address _newOperator)
  3972  func (_RootChainBase *RootChainBaseFilterer) FilterOperatorChanged(opts *bind.FilterOpts) (*RootChainBaseOperatorChangedIterator, error) {
  3973  
  3974  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "OperatorChanged")
  3975  	if err != nil {
  3976  		return nil, err
  3977  	}
  3978  	return &RootChainBaseOperatorChangedIterator{contract: _RootChainBase.contract, event: "OperatorChanged", logs: logs, sub: sub}, nil
  3979  }
  3980  
  3981  // WatchOperatorChanged is a free log subscription operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
  3982  //
  3983  // Solidity: event OperatorChanged(address _newOperator)
  3984  func (_RootChainBase *RootChainBaseFilterer) WatchOperatorChanged(opts *bind.WatchOpts, sink chan<- *RootChainBaseOperatorChanged) (event.Subscription, error) {
  3985  
  3986  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "OperatorChanged")
  3987  	if err != nil {
  3988  		return nil, err
  3989  	}
  3990  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3991  		defer sub.Unsubscribe()
  3992  		for {
  3993  			select {
  3994  			case log := <-logs:
  3995  				// New log arrived, parse the event and forward to the user
  3996  				event := new(RootChainBaseOperatorChanged)
  3997  				if err := _RootChainBase.contract.UnpackLog(event, "OperatorChanged", log); err != nil {
  3998  					return err
  3999  				}
  4000  				event.Raw = log
  4001  
  4002  				select {
  4003  				case sink <- event:
  4004  				case err := <-sub.Err():
  4005  					return err
  4006  				case <-quit:
  4007  					return nil
  4008  				}
  4009  			case err := <-sub.Err():
  4010  				return err
  4011  			case <-quit:
  4012  				return nil
  4013  			}
  4014  		}
  4015  	}), nil
  4016  }
  4017  
  4018  // ParseOperatorChanged is a log parse operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
  4019  //
  4020  // Solidity: event OperatorChanged(address _newOperator)
  4021  func (_RootChainBase *RootChainBaseFilterer) ParseOperatorChanged(log types.Log) (*RootChainBaseOperatorChanged, error) {
  4022  	event := new(RootChainBaseOperatorChanged)
  4023  	if err := _RootChainBase.contract.UnpackLog(event, "OperatorChanged", log); err != nil {
  4024  		return nil, err
  4025  	}
  4026  	return event, nil
  4027  }
  4028  
  4029  // RootChainBaseRequestAppliedIterator is returned from FilterRequestApplied and is used to iterate over the raw logs and unpacked data for RequestApplied events raised by the RootChainBase contract.
  4030  type RootChainBaseRequestAppliedIterator struct {
  4031  	Event *RootChainBaseRequestApplied // Event containing the contract specifics and raw log
  4032  
  4033  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4034  	event    string              // Event name to use for unpacking event data
  4035  
  4036  	logs chan types.Log        // Log channel receiving the found contract events
  4037  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4038  	done bool                  // Whether the subscription completed delivering logs
  4039  	fail error                 // Occurred error to stop iteration
  4040  }
  4041  
  4042  // Next advances the iterator to the subsequent event, returning whether there
  4043  // are any more events found. In case of a retrieval or parsing error, false is
  4044  // returned and Error() can be queried for the exact failure.
  4045  func (it *RootChainBaseRequestAppliedIterator) Next() bool {
  4046  	// If the iterator failed, stop iterating
  4047  	if it.fail != nil {
  4048  		return false
  4049  	}
  4050  	// If the iterator completed, deliver directly whatever's available
  4051  	if it.done {
  4052  		select {
  4053  		case log := <-it.logs:
  4054  			it.Event = new(RootChainBaseRequestApplied)
  4055  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4056  				it.fail = err
  4057  				return false
  4058  			}
  4059  			it.Event.Raw = log
  4060  			return true
  4061  
  4062  		default:
  4063  			return false
  4064  		}
  4065  	}
  4066  	// Iterator still in progress, wait for either a data or an error event
  4067  	select {
  4068  	case log := <-it.logs:
  4069  		it.Event = new(RootChainBaseRequestApplied)
  4070  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4071  			it.fail = err
  4072  			return false
  4073  		}
  4074  		it.Event.Raw = log
  4075  		return true
  4076  
  4077  	case err := <-it.sub.Err():
  4078  		it.done = true
  4079  		it.fail = err
  4080  		return it.Next()
  4081  	}
  4082  }
  4083  
  4084  // Error returns any retrieval or parsing error occurred during filtering.
  4085  func (it *RootChainBaseRequestAppliedIterator) Error() error {
  4086  	return it.fail
  4087  }
  4088  
  4089  // Close terminates the iteration process, releasing any pending underlying
  4090  // resources.
  4091  func (it *RootChainBaseRequestAppliedIterator) Close() error {
  4092  	it.sub.Unsubscribe()
  4093  	return nil
  4094  }
  4095  
  4096  // RootChainBaseRequestApplied represents a RequestApplied event raised by the RootChainBase contract.
  4097  type RootChainBaseRequestApplied struct {
  4098  	RequestId     *big.Int
  4099  	UserActivated bool
  4100  	Raw           types.Log // Blockchain specific contextual infos
  4101  }
  4102  
  4103  // FilterRequestApplied is a free log retrieval operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
  4104  //
  4105  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
  4106  func (_RootChainBase *RootChainBaseFilterer) FilterRequestApplied(opts *bind.FilterOpts) (*RootChainBaseRequestAppliedIterator, error) {
  4107  
  4108  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "RequestApplied")
  4109  	if err != nil {
  4110  		return nil, err
  4111  	}
  4112  	return &RootChainBaseRequestAppliedIterator{contract: _RootChainBase.contract, event: "RequestApplied", logs: logs, sub: sub}, nil
  4113  }
  4114  
  4115  // WatchRequestApplied is a free log subscription operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
  4116  //
  4117  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
  4118  func (_RootChainBase *RootChainBaseFilterer) WatchRequestApplied(opts *bind.WatchOpts, sink chan<- *RootChainBaseRequestApplied) (event.Subscription, error) {
  4119  
  4120  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "RequestApplied")
  4121  	if err != nil {
  4122  		return nil, err
  4123  	}
  4124  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4125  		defer sub.Unsubscribe()
  4126  		for {
  4127  			select {
  4128  			case log := <-logs:
  4129  				// New log arrived, parse the event and forward to the user
  4130  				event := new(RootChainBaseRequestApplied)
  4131  				if err := _RootChainBase.contract.UnpackLog(event, "RequestApplied", log); err != nil {
  4132  					return err
  4133  				}
  4134  				event.Raw = log
  4135  
  4136  				select {
  4137  				case sink <- event:
  4138  				case err := <-sub.Err():
  4139  					return err
  4140  				case <-quit:
  4141  					return nil
  4142  				}
  4143  			case err := <-sub.Err():
  4144  				return err
  4145  			case <-quit:
  4146  				return nil
  4147  			}
  4148  		}
  4149  	}), nil
  4150  }
  4151  
  4152  // ParseRequestApplied is a log parse operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
  4153  //
  4154  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
  4155  func (_RootChainBase *RootChainBaseFilterer) ParseRequestApplied(log types.Log) (*RootChainBaseRequestApplied, error) {
  4156  	event := new(RootChainBaseRequestApplied)
  4157  	if err := _RootChainBase.contract.UnpackLog(event, "RequestApplied", log); err != nil {
  4158  		return nil, err
  4159  	}
  4160  	return event, nil
  4161  }
  4162  
  4163  // RootChainBaseRequestChallengedIterator is returned from FilterRequestChallenged and is used to iterate over the raw logs and unpacked data for RequestChallenged events raised by the RootChainBase contract.
  4164  type RootChainBaseRequestChallengedIterator struct {
  4165  	Event *RootChainBaseRequestChallenged // Event containing the contract specifics and raw log
  4166  
  4167  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4168  	event    string              // Event name to use for unpacking event data
  4169  
  4170  	logs chan types.Log        // Log channel receiving the found contract events
  4171  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4172  	done bool                  // Whether the subscription completed delivering logs
  4173  	fail error                 // Occurred error to stop iteration
  4174  }
  4175  
  4176  // Next advances the iterator to the subsequent event, returning whether there
  4177  // are any more events found. In case of a retrieval or parsing error, false is
  4178  // returned and Error() can be queried for the exact failure.
  4179  func (it *RootChainBaseRequestChallengedIterator) Next() bool {
  4180  	// If the iterator failed, stop iterating
  4181  	if it.fail != nil {
  4182  		return false
  4183  	}
  4184  	// If the iterator completed, deliver directly whatever's available
  4185  	if it.done {
  4186  		select {
  4187  		case log := <-it.logs:
  4188  			it.Event = new(RootChainBaseRequestChallenged)
  4189  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4190  				it.fail = err
  4191  				return false
  4192  			}
  4193  			it.Event.Raw = log
  4194  			return true
  4195  
  4196  		default:
  4197  			return false
  4198  		}
  4199  	}
  4200  	// Iterator still in progress, wait for either a data or an error event
  4201  	select {
  4202  	case log := <-it.logs:
  4203  		it.Event = new(RootChainBaseRequestChallenged)
  4204  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4205  			it.fail = err
  4206  			return false
  4207  		}
  4208  		it.Event.Raw = log
  4209  		return true
  4210  
  4211  	case err := <-it.sub.Err():
  4212  		it.done = true
  4213  		it.fail = err
  4214  		return it.Next()
  4215  	}
  4216  }
  4217  
  4218  // Error returns any retrieval or parsing error occurred during filtering.
  4219  func (it *RootChainBaseRequestChallengedIterator) Error() error {
  4220  	return it.fail
  4221  }
  4222  
  4223  // Close terminates the iteration process, releasing any pending underlying
  4224  // resources.
  4225  func (it *RootChainBaseRequestChallengedIterator) Close() error {
  4226  	it.sub.Unsubscribe()
  4227  	return nil
  4228  }
  4229  
  4230  // RootChainBaseRequestChallenged represents a RequestChallenged event raised by the RootChainBase contract.
  4231  type RootChainBaseRequestChallenged struct {
  4232  	RequestId     *big.Int
  4233  	UserActivated bool
  4234  	Raw           types.Log // Blockchain specific contextual infos
  4235  }
  4236  
  4237  // FilterRequestChallenged is a free log retrieval operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
  4238  //
  4239  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
  4240  func (_RootChainBase *RootChainBaseFilterer) FilterRequestChallenged(opts *bind.FilterOpts) (*RootChainBaseRequestChallengedIterator, error) {
  4241  
  4242  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "RequestChallenged")
  4243  	if err != nil {
  4244  		return nil, err
  4245  	}
  4246  	return &RootChainBaseRequestChallengedIterator{contract: _RootChainBase.contract, event: "RequestChallenged", logs: logs, sub: sub}, nil
  4247  }
  4248  
  4249  // WatchRequestChallenged is a free log subscription operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
  4250  //
  4251  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
  4252  func (_RootChainBase *RootChainBaseFilterer) WatchRequestChallenged(opts *bind.WatchOpts, sink chan<- *RootChainBaseRequestChallenged) (event.Subscription, error) {
  4253  
  4254  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "RequestChallenged")
  4255  	if err != nil {
  4256  		return nil, err
  4257  	}
  4258  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4259  		defer sub.Unsubscribe()
  4260  		for {
  4261  			select {
  4262  			case log := <-logs:
  4263  				// New log arrived, parse the event and forward to the user
  4264  				event := new(RootChainBaseRequestChallenged)
  4265  				if err := _RootChainBase.contract.UnpackLog(event, "RequestChallenged", log); err != nil {
  4266  					return err
  4267  				}
  4268  				event.Raw = log
  4269  
  4270  				select {
  4271  				case sink <- event:
  4272  				case err := <-sub.Err():
  4273  					return err
  4274  				case <-quit:
  4275  					return nil
  4276  				}
  4277  			case err := <-sub.Err():
  4278  				return err
  4279  			case <-quit:
  4280  				return nil
  4281  			}
  4282  		}
  4283  	}), nil
  4284  }
  4285  
  4286  // ParseRequestChallenged is a log parse operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
  4287  //
  4288  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
  4289  func (_RootChainBase *RootChainBaseFilterer) ParseRequestChallenged(log types.Log) (*RootChainBaseRequestChallenged, error) {
  4290  	event := new(RootChainBaseRequestChallenged)
  4291  	if err := _RootChainBase.contract.UnpackLog(event, "RequestChallenged", log); err != nil {
  4292  		return nil, err
  4293  	}
  4294  	return event, nil
  4295  }
  4296  
  4297  // RootChainBaseRequestCreatedIterator is returned from FilterRequestCreated and is used to iterate over the raw logs and unpacked data for RequestCreated events raised by the RootChainBase contract.
  4298  type RootChainBaseRequestCreatedIterator struct {
  4299  	Event *RootChainBaseRequestCreated // Event containing the contract specifics and raw log
  4300  
  4301  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4302  	event    string              // Event name to use for unpacking event data
  4303  
  4304  	logs chan types.Log        // Log channel receiving the found contract events
  4305  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4306  	done bool                  // Whether the subscription completed delivering logs
  4307  	fail error                 // Occurred error to stop iteration
  4308  }
  4309  
  4310  // Next advances the iterator to the subsequent event, returning whether there
  4311  // are any more events found. In case of a retrieval or parsing error, false is
  4312  // returned and Error() can be queried for the exact failure.
  4313  func (it *RootChainBaseRequestCreatedIterator) Next() bool {
  4314  	// If the iterator failed, stop iterating
  4315  	if it.fail != nil {
  4316  		return false
  4317  	}
  4318  	// If the iterator completed, deliver directly whatever's available
  4319  	if it.done {
  4320  		select {
  4321  		case log := <-it.logs:
  4322  			it.Event = new(RootChainBaseRequestCreated)
  4323  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4324  				it.fail = err
  4325  				return false
  4326  			}
  4327  			it.Event.Raw = log
  4328  			return true
  4329  
  4330  		default:
  4331  			return false
  4332  		}
  4333  	}
  4334  	// Iterator still in progress, wait for either a data or an error event
  4335  	select {
  4336  	case log := <-it.logs:
  4337  		it.Event = new(RootChainBaseRequestCreated)
  4338  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4339  			it.fail = err
  4340  			return false
  4341  		}
  4342  		it.Event.Raw = log
  4343  		return true
  4344  
  4345  	case err := <-it.sub.Err():
  4346  		it.done = true
  4347  		it.fail = err
  4348  		return it.Next()
  4349  	}
  4350  }
  4351  
  4352  // Error returns any retrieval or parsing error occurred during filtering.
  4353  func (it *RootChainBaseRequestCreatedIterator) Error() error {
  4354  	return it.fail
  4355  }
  4356  
  4357  // Close terminates the iteration process, releasing any pending underlying
  4358  // resources.
  4359  func (it *RootChainBaseRequestCreatedIterator) Close() error {
  4360  	it.sub.Unsubscribe()
  4361  	return nil
  4362  }
  4363  
  4364  // RootChainBaseRequestCreated represents a RequestCreated event raised by the RootChainBase contract.
  4365  type RootChainBaseRequestCreated struct {
  4366  	RequestId     *big.Int
  4367  	Requestor     common.Address
  4368  	To            common.Address
  4369  	WeiAmount     *big.Int
  4370  	TrieKey       [32]byte
  4371  	TrieValue     []byte
  4372  	IsExit        bool
  4373  	UserActivated bool
  4374  	Raw           types.Log // Blockchain specific contextual infos
  4375  }
  4376  
  4377  // FilterRequestCreated is a free log retrieval operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
  4378  //
  4379  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
  4380  func (_RootChainBase *RootChainBaseFilterer) FilterRequestCreated(opts *bind.FilterOpts) (*RootChainBaseRequestCreatedIterator, error) {
  4381  
  4382  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "RequestCreated")
  4383  	if err != nil {
  4384  		return nil, err
  4385  	}
  4386  	return &RootChainBaseRequestCreatedIterator{contract: _RootChainBase.contract, event: "RequestCreated", logs: logs, sub: sub}, nil
  4387  }
  4388  
  4389  // WatchRequestCreated is a free log subscription operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
  4390  //
  4391  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
  4392  func (_RootChainBase *RootChainBaseFilterer) WatchRequestCreated(opts *bind.WatchOpts, sink chan<- *RootChainBaseRequestCreated) (event.Subscription, error) {
  4393  
  4394  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "RequestCreated")
  4395  	if err != nil {
  4396  		return nil, err
  4397  	}
  4398  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4399  		defer sub.Unsubscribe()
  4400  		for {
  4401  			select {
  4402  			case log := <-logs:
  4403  				// New log arrived, parse the event and forward to the user
  4404  				event := new(RootChainBaseRequestCreated)
  4405  				if err := _RootChainBase.contract.UnpackLog(event, "RequestCreated", log); err != nil {
  4406  					return err
  4407  				}
  4408  				event.Raw = log
  4409  
  4410  				select {
  4411  				case sink <- event:
  4412  				case err := <-sub.Err():
  4413  					return err
  4414  				case <-quit:
  4415  					return nil
  4416  				}
  4417  			case err := <-sub.Err():
  4418  				return err
  4419  			case <-quit:
  4420  				return nil
  4421  			}
  4422  		}
  4423  	}), nil
  4424  }
  4425  
  4426  // ParseRequestCreated is a log parse operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
  4427  //
  4428  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
  4429  func (_RootChainBase *RootChainBaseFilterer) ParseRequestCreated(log types.Log) (*RootChainBaseRequestCreated, error) {
  4430  	event := new(RootChainBaseRequestCreated)
  4431  	if err := _RootChainBase.contract.UnpackLog(event, "RequestCreated", log); err != nil {
  4432  		return nil, err
  4433  	}
  4434  	return event, nil
  4435  }
  4436  
  4437  // RootChainBaseRequestFinalizedIterator is returned from FilterRequestFinalized and is used to iterate over the raw logs and unpacked data for RequestFinalized events raised by the RootChainBase contract.
  4438  type RootChainBaseRequestFinalizedIterator struct {
  4439  	Event *RootChainBaseRequestFinalized // Event containing the contract specifics and raw log
  4440  
  4441  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4442  	event    string              // Event name to use for unpacking event data
  4443  
  4444  	logs chan types.Log        // Log channel receiving the found contract events
  4445  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4446  	done bool                  // Whether the subscription completed delivering logs
  4447  	fail error                 // Occurred error to stop iteration
  4448  }
  4449  
  4450  // Next advances the iterator to the subsequent event, returning whether there
  4451  // are any more events found. In case of a retrieval or parsing error, false is
  4452  // returned and Error() can be queried for the exact failure.
  4453  func (it *RootChainBaseRequestFinalizedIterator) Next() bool {
  4454  	// If the iterator failed, stop iterating
  4455  	if it.fail != nil {
  4456  		return false
  4457  	}
  4458  	// If the iterator completed, deliver directly whatever's available
  4459  	if it.done {
  4460  		select {
  4461  		case log := <-it.logs:
  4462  			it.Event = new(RootChainBaseRequestFinalized)
  4463  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4464  				it.fail = err
  4465  				return false
  4466  			}
  4467  			it.Event.Raw = log
  4468  			return true
  4469  
  4470  		default:
  4471  			return false
  4472  		}
  4473  	}
  4474  	// Iterator still in progress, wait for either a data or an error event
  4475  	select {
  4476  	case log := <-it.logs:
  4477  		it.Event = new(RootChainBaseRequestFinalized)
  4478  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4479  			it.fail = err
  4480  			return false
  4481  		}
  4482  		it.Event.Raw = log
  4483  		return true
  4484  
  4485  	case err := <-it.sub.Err():
  4486  		it.done = true
  4487  		it.fail = err
  4488  		return it.Next()
  4489  	}
  4490  }
  4491  
  4492  // Error returns any retrieval or parsing error occurred during filtering.
  4493  func (it *RootChainBaseRequestFinalizedIterator) Error() error {
  4494  	return it.fail
  4495  }
  4496  
  4497  // Close terminates the iteration process, releasing any pending underlying
  4498  // resources.
  4499  func (it *RootChainBaseRequestFinalizedIterator) Close() error {
  4500  	it.sub.Unsubscribe()
  4501  	return nil
  4502  }
  4503  
  4504  // RootChainBaseRequestFinalized represents a RequestFinalized event raised by the RootChainBase contract.
  4505  type RootChainBaseRequestFinalized struct {
  4506  	RequestId     *big.Int
  4507  	UserActivated bool
  4508  	Raw           types.Log // Blockchain specific contextual infos
  4509  }
  4510  
  4511  // FilterRequestFinalized is a free log retrieval operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
  4512  //
  4513  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
  4514  func (_RootChainBase *RootChainBaseFilterer) FilterRequestFinalized(opts *bind.FilterOpts) (*RootChainBaseRequestFinalizedIterator, error) {
  4515  
  4516  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "RequestFinalized")
  4517  	if err != nil {
  4518  		return nil, err
  4519  	}
  4520  	return &RootChainBaseRequestFinalizedIterator{contract: _RootChainBase.contract, event: "RequestFinalized", logs: logs, sub: sub}, nil
  4521  }
  4522  
  4523  // WatchRequestFinalized is a free log subscription operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
  4524  //
  4525  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
  4526  func (_RootChainBase *RootChainBaseFilterer) WatchRequestFinalized(opts *bind.WatchOpts, sink chan<- *RootChainBaseRequestFinalized) (event.Subscription, error) {
  4527  
  4528  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "RequestFinalized")
  4529  	if err != nil {
  4530  		return nil, err
  4531  	}
  4532  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4533  		defer sub.Unsubscribe()
  4534  		for {
  4535  			select {
  4536  			case log := <-logs:
  4537  				// New log arrived, parse the event and forward to the user
  4538  				event := new(RootChainBaseRequestFinalized)
  4539  				if err := _RootChainBase.contract.UnpackLog(event, "RequestFinalized", log); err != nil {
  4540  					return err
  4541  				}
  4542  				event.Raw = log
  4543  
  4544  				select {
  4545  				case sink <- event:
  4546  				case err := <-sub.Err():
  4547  					return err
  4548  				case <-quit:
  4549  					return nil
  4550  				}
  4551  			case err := <-sub.Err():
  4552  				return err
  4553  			case <-quit:
  4554  				return nil
  4555  			}
  4556  		}
  4557  	}), nil
  4558  }
  4559  
  4560  // ParseRequestFinalized is a log parse operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
  4561  //
  4562  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
  4563  func (_RootChainBase *RootChainBaseFilterer) ParseRequestFinalized(log types.Log) (*RootChainBaseRequestFinalized, error) {
  4564  	event := new(RootChainBaseRequestFinalized)
  4565  	if err := _RootChainBase.contract.UnpackLog(event, "RequestFinalized", log); err != nil {
  4566  		return nil, err
  4567  	}
  4568  	return event, nil
  4569  }
  4570  
  4571  // RootChainBaseRequestableContractMappedIterator is returned from FilterRequestableContractMapped and is used to iterate over the raw logs and unpacked data for RequestableContractMapped events raised by the RootChainBase contract.
  4572  type RootChainBaseRequestableContractMappedIterator struct {
  4573  	Event *RootChainBaseRequestableContractMapped // Event containing the contract specifics and raw log
  4574  
  4575  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4576  	event    string              // Event name to use for unpacking event data
  4577  
  4578  	logs chan types.Log        // Log channel receiving the found contract events
  4579  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4580  	done bool                  // Whether the subscription completed delivering logs
  4581  	fail error                 // Occurred error to stop iteration
  4582  }
  4583  
  4584  // Next advances the iterator to the subsequent event, returning whether there
  4585  // are any more events found. In case of a retrieval or parsing error, false is
  4586  // returned and Error() can be queried for the exact failure.
  4587  func (it *RootChainBaseRequestableContractMappedIterator) Next() bool {
  4588  	// If the iterator failed, stop iterating
  4589  	if it.fail != nil {
  4590  		return false
  4591  	}
  4592  	// If the iterator completed, deliver directly whatever's available
  4593  	if it.done {
  4594  		select {
  4595  		case log := <-it.logs:
  4596  			it.Event = new(RootChainBaseRequestableContractMapped)
  4597  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4598  				it.fail = err
  4599  				return false
  4600  			}
  4601  			it.Event.Raw = log
  4602  			return true
  4603  
  4604  		default:
  4605  			return false
  4606  		}
  4607  	}
  4608  	// Iterator still in progress, wait for either a data or an error event
  4609  	select {
  4610  	case log := <-it.logs:
  4611  		it.Event = new(RootChainBaseRequestableContractMapped)
  4612  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4613  			it.fail = err
  4614  			return false
  4615  		}
  4616  		it.Event.Raw = log
  4617  		return true
  4618  
  4619  	case err := <-it.sub.Err():
  4620  		it.done = true
  4621  		it.fail = err
  4622  		return it.Next()
  4623  	}
  4624  }
  4625  
  4626  // Error returns any retrieval or parsing error occurred during filtering.
  4627  func (it *RootChainBaseRequestableContractMappedIterator) Error() error {
  4628  	return it.fail
  4629  }
  4630  
  4631  // Close terminates the iteration process, releasing any pending underlying
  4632  // resources.
  4633  func (it *RootChainBaseRequestableContractMappedIterator) Close() error {
  4634  	it.sub.Unsubscribe()
  4635  	return nil
  4636  }
  4637  
  4638  // RootChainBaseRequestableContractMapped represents a RequestableContractMapped event raised by the RootChainBase contract.
  4639  type RootChainBaseRequestableContractMapped struct {
  4640  	ContractInRootchain  common.Address
  4641  	ContractInChildchain common.Address
  4642  	Raw                  types.Log // Blockchain specific contextual infos
  4643  }
  4644  
  4645  // FilterRequestableContractMapped is a free log retrieval operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
  4646  //
  4647  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
  4648  func (_RootChainBase *RootChainBaseFilterer) FilterRequestableContractMapped(opts *bind.FilterOpts) (*RootChainBaseRequestableContractMappedIterator, error) {
  4649  
  4650  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "RequestableContractMapped")
  4651  	if err != nil {
  4652  		return nil, err
  4653  	}
  4654  	return &RootChainBaseRequestableContractMappedIterator{contract: _RootChainBase.contract, event: "RequestableContractMapped", logs: logs, sub: sub}, nil
  4655  }
  4656  
  4657  // WatchRequestableContractMapped is a free log subscription operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
  4658  //
  4659  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
  4660  func (_RootChainBase *RootChainBaseFilterer) WatchRequestableContractMapped(opts *bind.WatchOpts, sink chan<- *RootChainBaseRequestableContractMapped) (event.Subscription, error) {
  4661  
  4662  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "RequestableContractMapped")
  4663  	if err != nil {
  4664  		return nil, err
  4665  	}
  4666  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4667  		defer sub.Unsubscribe()
  4668  		for {
  4669  			select {
  4670  			case log := <-logs:
  4671  				// New log arrived, parse the event and forward to the user
  4672  				event := new(RootChainBaseRequestableContractMapped)
  4673  				if err := _RootChainBase.contract.UnpackLog(event, "RequestableContractMapped", log); err != nil {
  4674  					return err
  4675  				}
  4676  				event.Raw = log
  4677  
  4678  				select {
  4679  				case sink <- event:
  4680  				case err := <-sub.Err():
  4681  					return err
  4682  				case <-quit:
  4683  					return nil
  4684  				}
  4685  			case err := <-sub.Err():
  4686  				return err
  4687  			case <-quit:
  4688  				return nil
  4689  			}
  4690  		}
  4691  	}), nil
  4692  }
  4693  
  4694  // ParseRequestableContractMapped is a log parse operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
  4695  //
  4696  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
  4697  func (_RootChainBase *RootChainBaseFilterer) ParseRequestableContractMapped(log types.Log) (*RootChainBaseRequestableContractMapped, error) {
  4698  	event := new(RootChainBaseRequestableContractMapped)
  4699  	if err := _RootChainBase.contract.UnpackLog(event, "RequestableContractMapped", log); err != nil {
  4700  		return nil, err
  4701  	}
  4702  	return event, nil
  4703  }
  4704  
  4705  // RootChainBaseSessionTimeoutIterator is returned from FilterSessionTimeout and is used to iterate over the raw logs and unpacked data for SessionTimeout events raised by the RootChainBase contract.
  4706  type RootChainBaseSessionTimeoutIterator struct {
  4707  	Event *RootChainBaseSessionTimeout // Event containing the contract specifics and raw log
  4708  
  4709  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4710  	event    string              // Event name to use for unpacking event data
  4711  
  4712  	logs chan types.Log        // Log channel receiving the found contract events
  4713  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4714  	done bool                  // Whether the subscription completed delivering logs
  4715  	fail error                 // Occurred error to stop iteration
  4716  }
  4717  
  4718  // Next advances the iterator to the subsequent event, returning whether there
  4719  // are any more events found. In case of a retrieval or parsing error, false is
  4720  // returned and Error() can be queried for the exact failure.
  4721  func (it *RootChainBaseSessionTimeoutIterator) Next() bool {
  4722  	// If the iterator failed, stop iterating
  4723  	if it.fail != nil {
  4724  		return false
  4725  	}
  4726  	// If the iterator completed, deliver directly whatever's available
  4727  	if it.done {
  4728  		select {
  4729  		case log := <-it.logs:
  4730  			it.Event = new(RootChainBaseSessionTimeout)
  4731  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4732  				it.fail = err
  4733  				return false
  4734  			}
  4735  			it.Event.Raw = log
  4736  			return true
  4737  
  4738  		default:
  4739  			return false
  4740  		}
  4741  	}
  4742  	// Iterator still in progress, wait for either a data or an error event
  4743  	select {
  4744  	case log := <-it.logs:
  4745  		it.Event = new(RootChainBaseSessionTimeout)
  4746  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4747  			it.fail = err
  4748  			return false
  4749  		}
  4750  		it.Event.Raw = log
  4751  		return true
  4752  
  4753  	case err := <-it.sub.Err():
  4754  		it.done = true
  4755  		it.fail = err
  4756  		return it.Next()
  4757  	}
  4758  }
  4759  
  4760  // Error returns any retrieval or parsing error occurred during filtering.
  4761  func (it *RootChainBaseSessionTimeoutIterator) Error() error {
  4762  	return it.fail
  4763  }
  4764  
  4765  // Close terminates the iteration process, releasing any pending underlying
  4766  // resources.
  4767  func (it *RootChainBaseSessionTimeoutIterator) Close() error {
  4768  	it.sub.Unsubscribe()
  4769  	return nil
  4770  }
  4771  
  4772  // RootChainBaseSessionTimeout represents a SessionTimeout event raised by the RootChainBase contract.
  4773  type RootChainBaseSessionTimeout struct {
  4774  	UserActivated bool
  4775  	Raw           types.Log // Blockchain specific contextual infos
  4776  }
  4777  
  4778  // FilterSessionTimeout is a free log retrieval operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
  4779  //
  4780  // Solidity: event SessionTimeout(bool userActivated)
  4781  func (_RootChainBase *RootChainBaseFilterer) FilterSessionTimeout(opts *bind.FilterOpts) (*RootChainBaseSessionTimeoutIterator, error) {
  4782  
  4783  	logs, sub, err := _RootChainBase.contract.FilterLogs(opts, "SessionTimeout")
  4784  	if err != nil {
  4785  		return nil, err
  4786  	}
  4787  	return &RootChainBaseSessionTimeoutIterator{contract: _RootChainBase.contract, event: "SessionTimeout", logs: logs, sub: sub}, nil
  4788  }
  4789  
  4790  // WatchSessionTimeout is a free log subscription operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
  4791  //
  4792  // Solidity: event SessionTimeout(bool userActivated)
  4793  func (_RootChainBase *RootChainBaseFilterer) WatchSessionTimeout(opts *bind.WatchOpts, sink chan<- *RootChainBaseSessionTimeout) (event.Subscription, error) {
  4794  
  4795  	logs, sub, err := _RootChainBase.contract.WatchLogs(opts, "SessionTimeout")
  4796  	if err != nil {
  4797  		return nil, err
  4798  	}
  4799  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4800  		defer sub.Unsubscribe()
  4801  		for {
  4802  			select {
  4803  			case log := <-logs:
  4804  				// New log arrived, parse the event and forward to the user
  4805  				event := new(RootChainBaseSessionTimeout)
  4806  				if err := _RootChainBase.contract.UnpackLog(event, "SessionTimeout", log); err != nil {
  4807  					return err
  4808  				}
  4809  				event.Raw = log
  4810  
  4811  				select {
  4812  				case sink <- event:
  4813  				case err := <-sub.Err():
  4814  					return err
  4815  				case <-quit:
  4816  					return nil
  4817  				}
  4818  			case err := <-sub.Err():
  4819  				return err
  4820  			case <-quit:
  4821  				return nil
  4822  			}
  4823  		}
  4824  	}), nil
  4825  }
  4826  
  4827  // ParseSessionTimeout is a log parse operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
  4828  //
  4829  // Solidity: event SessionTimeout(bool userActivated)
  4830  func (_RootChainBase *RootChainBaseFilterer) ParseSessionTimeout(log types.Log) (*RootChainBaseSessionTimeout, error) {
  4831  	event := new(RootChainBaseSessionTimeout)
  4832  	if err := _RootChainBase.contract.UnpackLog(event, "SessionTimeout", log); err != nil {
  4833  		return nil, err
  4834  	}
  4835  	return event, nil
  4836  }
  4837  
  4838  // RootChainEventABI is the input ABI used to generate the binding from.
  4839  const RootChainEventABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"BlockFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fork\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"BlockSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trieKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trieValue\",\"type\":\"bytes32\"}],\"name\":\"ERUCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFilling\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"epochIsEmpty\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"rebase\",\"type\":\"bool\"}],\"name\":\"EpochPrepared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"epochIsEmpty\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"EpochRebased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newFork\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkedBlockNumber\",\"type\":\"uint256\"}],\"name\":\"Forked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"OperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestChallenged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weiAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractInRootchain\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractInChildchain\",\"type\":\"address\"}],\"name\":\"RequestableContractMapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"SessionTimeout\",\"type\":\"event\"}]"
  4840  
  4841  // RootChainEventBin is the compiled bytecode used for deploying new contracts.
  4842  var RootChainEventBin = "0x6080604052348015600f57600080fd5b50603e80601d6000396000f3fe6080604052600080fdfea265627a7a723158209eca3e6c0985f0e87007d8dee1de52ecce4b4b712a00ee740621f2a988b3d29764736f6c634300050c0032"
  4843  
  4844  // DeployRootChainEvent deploys a new Ethereum contract, binding an instance of RootChainEvent to it.
  4845  func DeployRootChainEvent(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RootChainEvent, error) {
  4846  	parsed, err := abi.JSON(strings.NewReader(RootChainEventABI))
  4847  	if err != nil {
  4848  		return common.Address{}, nil, nil, err
  4849  	}
  4850  
  4851  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RootChainEventBin), backend)
  4852  	if err != nil {
  4853  		return common.Address{}, nil, nil, err
  4854  	}
  4855  	return address, tx, &RootChainEvent{RootChainEventCaller: RootChainEventCaller{contract: contract}, RootChainEventTransactor: RootChainEventTransactor{contract: contract}, RootChainEventFilterer: RootChainEventFilterer{contract: contract}}, nil
  4856  }
  4857  
  4858  // RootChainEvent is an auto generated Go binding around an Ethereum contract.
  4859  type RootChainEvent struct {
  4860  	RootChainEventCaller     // Read-only binding to the contract
  4861  	RootChainEventTransactor // Write-only binding to the contract
  4862  	RootChainEventFilterer   // Log filterer for contract events
  4863  }
  4864  
  4865  // RootChainEventCaller is an auto generated read-only Go binding around an Ethereum contract.
  4866  type RootChainEventCaller struct {
  4867  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4868  }
  4869  
  4870  // RootChainEventTransactor is an auto generated write-only Go binding around an Ethereum contract.
  4871  type RootChainEventTransactor struct {
  4872  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4873  }
  4874  
  4875  // RootChainEventFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  4876  type RootChainEventFilterer struct {
  4877  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4878  }
  4879  
  4880  // RootChainEventSession is an auto generated Go binding around an Ethereum contract,
  4881  // with pre-set call and transact options.
  4882  type RootChainEventSession struct {
  4883  	Contract     *RootChainEvent   // Generic contract binding to set the session for
  4884  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  4885  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  4886  }
  4887  
  4888  // RootChainEventCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  4889  // with pre-set call options.
  4890  type RootChainEventCallerSession struct {
  4891  	Contract *RootChainEventCaller // Generic contract caller binding to set the session for
  4892  	CallOpts bind.CallOpts         // Call options to use throughout this session
  4893  }
  4894  
  4895  // RootChainEventTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  4896  // with pre-set transact options.
  4897  type RootChainEventTransactorSession struct {
  4898  	Contract     *RootChainEventTransactor // Generic contract transactor binding to set the session for
  4899  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  4900  }
  4901  
  4902  // RootChainEventRaw is an auto generated low-level Go binding around an Ethereum contract.
  4903  type RootChainEventRaw struct {
  4904  	Contract *RootChainEvent // Generic contract binding to access the raw methods on
  4905  }
  4906  
  4907  // RootChainEventCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  4908  type RootChainEventCallerRaw struct {
  4909  	Contract *RootChainEventCaller // Generic read-only contract binding to access the raw methods on
  4910  }
  4911  
  4912  // RootChainEventTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  4913  type RootChainEventTransactorRaw struct {
  4914  	Contract *RootChainEventTransactor // Generic write-only contract binding to access the raw methods on
  4915  }
  4916  
  4917  // NewRootChainEvent creates a new instance of RootChainEvent, bound to a specific deployed contract.
  4918  func NewRootChainEvent(address common.Address, backend bind.ContractBackend) (*RootChainEvent, error) {
  4919  	contract, err := bindRootChainEvent(address, backend, backend, backend)
  4920  	if err != nil {
  4921  		return nil, err
  4922  	}
  4923  	return &RootChainEvent{RootChainEventCaller: RootChainEventCaller{contract: contract}, RootChainEventTransactor: RootChainEventTransactor{contract: contract}, RootChainEventFilterer: RootChainEventFilterer{contract: contract}}, nil
  4924  }
  4925  
  4926  // NewRootChainEventCaller creates a new read-only instance of RootChainEvent, bound to a specific deployed contract.
  4927  func NewRootChainEventCaller(address common.Address, caller bind.ContractCaller) (*RootChainEventCaller, error) {
  4928  	contract, err := bindRootChainEvent(address, caller, nil, nil)
  4929  	if err != nil {
  4930  		return nil, err
  4931  	}
  4932  	return &RootChainEventCaller{contract: contract}, nil
  4933  }
  4934  
  4935  // NewRootChainEventTransactor creates a new write-only instance of RootChainEvent, bound to a specific deployed contract.
  4936  func NewRootChainEventTransactor(address common.Address, transactor bind.ContractTransactor) (*RootChainEventTransactor, error) {
  4937  	contract, err := bindRootChainEvent(address, nil, transactor, nil)
  4938  	if err != nil {
  4939  		return nil, err
  4940  	}
  4941  	return &RootChainEventTransactor{contract: contract}, nil
  4942  }
  4943  
  4944  // NewRootChainEventFilterer creates a new log filterer instance of RootChainEvent, bound to a specific deployed contract.
  4945  func NewRootChainEventFilterer(address common.Address, filterer bind.ContractFilterer) (*RootChainEventFilterer, error) {
  4946  	contract, err := bindRootChainEvent(address, nil, nil, filterer)
  4947  	if err != nil {
  4948  		return nil, err
  4949  	}
  4950  	return &RootChainEventFilterer{contract: contract}, nil
  4951  }
  4952  
  4953  // bindRootChainEvent binds a generic wrapper to an already deployed contract.
  4954  func bindRootChainEvent(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4955  	parsed, err := abi.JSON(strings.NewReader(RootChainEventABI))
  4956  	if err != nil {
  4957  		return nil, err
  4958  	}
  4959  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  4960  }
  4961  
  4962  // Call invokes the (constant) contract method with params as input values and
  4963  // sets the output to result. The result type might be a single field for simple
  4964  // returns, a slice of interfaces for anonymous returns and a struct for named
  4965  // returns.
  4966  func (_RootChainEvent *RootChainEventRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  4967  	return _RootChainEvent.Contract.RootChainEventCaller.contract.Call(opts, result, method, params...)
  4968  }
  4969  
  4970  // Transfer initiates a plain transaction to move funds to the contract, calling
  4971  // its default method if one is available.
  4972  func (_RootChainEvent *RootChainEventRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4973  	return _RootChainEvent.Contract.RootChainEventTransactor.contract.Transfer(opts)
  4974  }
  4975  
  4976  // Transact invokes the (paid) contract method with params as input values.
  4977  func (_RootChainEvent *RootChainEventRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4978  	return _RootChainEvent.Contract.RootChainEventTransactor.contract.Transact(opts, method, params...)
  4979  }
  4980  
  4981  // Call invokes the (constant) contract method with params as input values and
  4982  // sets the output to result. The result type might be a single field for simple
  4983  // returns, a slice of interfaces for anonymous returns and a struct for named
  4984  // returns.
  4985  func (_RootChainEvent *RootChainEventCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  4986  	return _RootChainEvent.Contract.contract.Call(opts, result, method, params...)
  4987  }
  4988  
  4989  // Transfer initiates a plain transaction to move funds to the contract, calling
  4990  // its default method if one is available.
  4991  func (_RootChainEvent *RootChainEventTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4992  	return _RootChainEvent.Contract.contract.Transfer(opts)
  4993  }
  4994  
  4995  // Transact invokes the (paid) contract method with params as input values.
  4996  func (_RootChainEvent *RootChainEventTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4997  	return _RootChainEvent.Contract.contract.Transact(opts, method, params...)
  4998  }
  4999  
  5000  // RootChainEventBlockFinalizedIterator is returned from FilterBlockFinalized and is used to iterate over the raw logs and unpacked data for BlockFinalized events raised by the RootChainEvent contract.
  5001  type RootChainEventBlockFinalizedIterator struct {
  5002  	Event *RootChainEventBlockFinalized // Event containing the contract specifics and raw log
  5003  
  5004  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5005  	event    string              // Event name to use for unpacking event data
  5006  
  5007  	logs chan types.Log        // Log channel receiving the found contract events
  5008  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5009  	done bool                  // Whether the subscription completed delivering logs
  5010  	fail error                 // Occurred error to stop iteration
  5011  }
  5012  
  5013  // Next advances the iterator to the subsequent event, returning whether there
  5014  // are any more events found. In case of a retrieval or parsing error, false is
  5015  // returned and Error() can be queried for the exact failure.
  5016  func (it *RootChainEventBlockFinalizedIterator) Next() bool {
  5017  	// If the iterator failed, stop iterating
  5018  	if it.fail != nil {
  5019  		return false
  5020  	}
  5021  	// If the iterator completed, deliver directly whatever's available
  5022  	if it.done {
  5023  		select {
  5024  		case log := <-it.logs:
  5025  			it.Event = new(RootChainEventBlockFinalized)
  5026  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5027  				it.fail = err
  5028  				return false
  5029  			}
  5030  			it.Event.Raw = log
  5031  			return true
  5032  
  5033  		default:
  5034  			return false
  5035  		}
  5036  	}
  5037  	// Iterator still in progress, wait for either a data or an error event
  5038  	select {
  5039  	case log := <-it.logs:
  5040  		it.Event = new(RootChainEventBlockFinalized)
  5041  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5042  			it.fail = err
  5043  			return false
  5044  		}
  5045  		it.Event.Raw = log
  5046  		return true
  5047  
  5048  	case err := <-it.sub.Err():
  5049  		it.done = true
  5050  		it.fail = err
  5051  		return it.Next()
  5052  	}
  5053  }
  5054  
  5055  // Error returns any retrieval or parsing error occurred during filtering.
  5056  func (it *RootChainEventBlockFinalizedIterator) Error() error {
  5057  	return it.fail
  5058  }
  5059  
  5060  // Close terminates the iteration process, releasing any pending underlying
  5061  // resources.
  5062  func (it *RootChainEventBlockFinalizedIterator) Close() error {
  5063  	it.sub.Unsubscribe()
  5064  	return nil
  5065  }
  5066  
  5067  // RootChainEventBlockFinalized represents a BlockFinalized event raised by the RootChainEvent contract.
  5068  type RootChainEventBlockFinalized struct {
  5069  	ForkNumber  *big.Int
  5070  	BlockNumber *big.Int
  5071  	Raw         types.Log // Blockchain specific contextual infos
  5072  }
  5073  
  5074  // FilterBlockFinalized is a free log retrieval operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
  5075  //
  5076  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
  5077  func (_RootChainEvent *RootChainEventFilterer) FilterBlockFinalized(opts *bind.FilterOpts) (*RootChainEventBlockFinalizedIterator, error) {
  5078  
  5079  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "BlockFinalized")
  5080  	if err != nil {
  5081  		return nil, err
  5082  	}
  5083  	return &RootChainEventBlockFinalizedIterator{contract: _RootChainEvent.contract, event: "BlockFinalized", logs: logs, sub: sub}, nil
  5084  }
  5085  
  5086  // WatchBlockFinalized is a free log subscription operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
  5087  //
  5088  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
  5089  func (_RootChainEvent *RootChainEventFilterer) WatchBlockFinalized(opts *bind.WatchOpts, sink chan<- *RootChainEventBlockFinalized) (event.Subscription, error) {
  5090  
  5091  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "BlockFinalized")
  5092  	if err != nil {
  5093  		return nil, err
  5094  	}
  5095  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5096  		defer sub.Unsubscribe()
  5097  		for {
  5098  			select {
  5099  			case log := <-logs:
  5100  				// New log arrived, parse the event and forward to the user
  5101  				event := new(RootChainEventBlockFinalized)
  5102  				if err := _RootChainEvent.contract.UnpackLog(event, "BlockFinalized", log); err != nil {
  5103  					return err
  5104  				}
  5105  				event.Raw = log
  5106  
  5107  				select {
  5108  				case sink <- event:
  5109  				case err := <-sub.Err():
  5110  					return err
  5111  				case <-quit:
  5112  					return nil
  5113  				}
  5114  			case err := <-sub.Err():
  5115  				return err
  5116  			case <-quit:
  5117  				return nil
  5118  			}
  5119  		}
  5120  	}), nil
  5121  }
  5122  
  5123  // ParseBlockFinalized is a log parse operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
  5124  //
  5125  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
  5126  func (_RootChainEvent *RootChainEventFilterer) ParseBlockFinalized(log types.Log) (*RootChainEventBlockFinalized, error) {
  5127  	event := new(RootChainEventBlockFinalized)
  5128  	if err := _RootChainEvent.contract.UnpackLog(event, "BlockFinalized", log); err != nil {
  5129  		return nil, err
  5130  	}
  5131  	return event, nil
  5132  }
  5133  
  5134  // RootChainEventBlockSubmittedIterator is returned from FilterBlockSubmitted and is used to iterate over the raw logs and unpacked data for BlockSubmitted events raised by the RootChainEvent contract.
  5135  type RootChainEventBlockSubmittedIterator struct {
  5136  	Event *RootChainEventBlockSubmitted // Event containing the contract specifics and raw log
  5137  
  5138  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5139  	event    string              // Event name to use for unpacking event data
  5140  
  5141  	logs chan types.Log        // Log channel receiving the found contract events
  5142  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5143  	done bool                  // Whether the subscription completed delivering logs
  5144  	fail error                 // Occurred error to stop iteration
  5145  }
  5146  
  5147  // Next advances the iterator to the subsequent event, returning whether there
  5148  // are any more events found. In case of a retrieval or parsing error, false is
  5149  // returned and Error() can be queried for the exact failure.
  5150  func (it *RootChainEventBlockSubmittedIterator) Next() bool {
  5151  	// If the iterator failed, stop iterating
  5152  	if it.fail != nil {
  5153  		return false
  5154  	}
  5155  	// If the iterator completed, deliver directly whatever's available
  5156  	if it.done {
  5157  		select {
  5158  		case log := <-it.logs:
  5159  			it.Event = new(RootChainEventBlockSubmitted)
  5160  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5161  				it.fail = err
  5162  				return false
  5163  			}
  5164  			it.Event.Raw = log
  5165  			return true
  5166  
  5167  		default:
  5168  			return false
  5169  		}
  5170  	}
  5171  	// Iterator still in progress, wait for either a data or an error event
  5172  	select {
  5173  	case log := <-it.logs:
  5174  		it.Event = new(RootChainEventBlockSubmitted)
  5175  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5176  			it.fail = err
  5177  			return false
  5178  		}
  5179  		it.Event.Raw = log
  5180  		return true
  5181  
  5182  	case err := <-it.sub.Err():
  5183  		it.done = true
  5184  		it.fail = err
  5185  		return it.Next()
  5186  	}
  5187  }
  5188  
  5189  // Error returns any retrieval or parsing error occurred during filtering.
  5190  func (it *RootChainEventBlockSubmittedIterator) Error() error {
  5191  	return it.fail
  5192  }
  5193  
  5194  // Close terminates the iteration process, releasing any pending underlying
  5195  // resources.
  5196  func (it *RootChainEventBlockSubmittedIterator) Close() error {
  5197  	it.sub.Unsubscribe()
  5198  	return nil
  5199  }
  5200  
  5201  // RootChainEventBlockSubmitted represents a BlockSubmitted event raised by the RootChainEvent contract.
  5202  type RootChainEventBlockSubmitted struct {
  5203  	Fork          *big.Int
  5204  	EpochNumber   *big.Int
  5205  	BlockNumber   *big.Int
  5206  	IsRequest     bool
  5207  	UserActivated bool
  5208  	Raw           types.Log // Blockchain specific contextual infos
  5209  }
  5210  
  5211  // FilterBlockSubmitted is a free log retrieval operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
  5212  //
  5213  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
  5214  func (_RootChainEvent *RootChainEventFilterer) FilterBlockSubmitted(opts *bind.FilterOpts) (*RootChainEventBlockSubmittedIterator, error) {
  5215  
  5216  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "BlockSubmitted")
  5217  	if err != nil {
  5218  		return nil, err
  5219  	}
  5220  	return &RootChainEventBlockSubmittedIterator{contract: _RootChainEvent.contract, event: "BlockSubmitted", logs: logs, sub: sub}, nil
  5221  }
  5222  
  5223  // WatchBlockSubmitted is a free log subscription operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
  5224  //
  5225  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
  5226  func (_RootChainEvent *RootChainEventFilterer) WatchBlockSubmitted(opts *bind.WatchOpts, sink chan<- *RootChainEventBlockSubmitted) (event.Subscription, error) {
  5227  
  5228  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "BlockSubmitted")
  5229  	if err != nil {
  5230  		return nil, err
  5231  	}
  5232  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5233  		defer sub.Unsubscribe()
  5234  		for {
  5235  			select {
  5236  			case log := <-logs:
  5237  				// New log arrived, parse the event and forward to the user
  5238  				event := new(RootChainEventBlockSubmitted)
  5239  				if err := _RootChainEvent.contract.UnpackLog(event, "BlockSubmitted", log); err != nil {
  5240  					return err
  5241  				}
  5242  				event.Raw = log
  5243  
  5244  				select {
  5245  				case sink <- event:
  5246  				case err := <-sub.Err():
  5247  					return err
  5248  				case <-quit:
  5249  					return nil
  5250  				}
  5251  			case err := <-sub.Err():
  5252  				return err
  5253  			case <-quit:
  5254  				return nil
  5255  			}
  5256  		}
  5257  	}), nil
  5258  }
  5259  
  5260  // ParseBlockSubmitted is a log parse operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
  5261  //
  5262  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
  5263  func (_RootChainEvent *RootChainEventFilterer) ParseBlockSubmitted(log types.Log) (*RootChainEventBlockSubmitted, error) {
  5264  	event := new(RootChainEventBlockSubmitted)
  5265  	if err := _RootChainEvent.contract.UnpackLog(event, "BlockSubmitted", log); err != nil {
  5266  		return nil, err
  5267  	}
  5268  	return event, nil
  5269  }
  5270  
  5271  // RootChainEventERUCreatedIterator is returned from FilterERUCreated and is used to iterate over the raw logs and unpacked data for ERUCreated events raised by the RootChainEvent contract.
  5272  type RootChainEventERUCreatedIterator struct {
  5273  	Event *RootChainEventERUCreated // Event containing the contract specifics and raw log
  5274  
  5275  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5276  	event    string              // Event name to use for unpacking event data
  5277  
  5278  	logs chan types.Log        // Log channel receiving the found contract events
  5279  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5280  	done bool                  // Whether the subscription completed delivering logs
  5281  	fail error                 // Occurred error to stop iteration
  5282  }
  5283  
  5284  // Next advances the iterator to the subsequent event, returning whether there
  5285  // are any more events found. In case of a retrieval or parsing error, false is
  5286  // returned and Error() can be queried for the exact failure.
  5287  func (it *RootChainEventERUCreatedIterator) Next() bool {
  5288  	// If the iterator failed, stop iterating
  5289  	if it.fail != nil {
  5290  		return false
  5291  	}
  5292  	// If the iterator completed, deliver directly whatever's available
  5293  	if it.done {
  5294  		select {
  5295  		case log := <-it.logs:
  5296  			it.Event = new(RootChainEventERUCreated)
  5297  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5298  				it.fail = err
  5299  				return false
  5300  			}
  5301  			it.Event.Raw = log
  5302  			return true
  5303  
  5304  		default:
  5305  			return false
  5306  		}
  5307  	}
  5308  	// Iterator still in progress, wait for either a data or an error event
  5309  	select {
  5310  	case log := <-it.logs:
  5311  		it.Event = new(RootChainEventERUCreated)
  5312  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5313  			it.fail = err
  5314  			return false
  5315  		}
  5316  		it.Event.Raw = log
  5317  		return true
  5318  
  5319  	case err := <-it.sub.Err():
  5320  		it.done = true
  5321  		it.fail = err
  5322  		return it.Next()
  5323  	}
  5324  }
  5325  
  5326  // Error returns any retrieval or parsing error occurred during filtering.
  5327  func (it *RootChainEventERUCreatedIterator) Error() error {
  5328  	return it.fail
  5329  }
  5330  
  5331  // Close terminates the iteration process, releasing any pending underlying
  5332  // resources.
  5333  func (it *RootChainEventERUCreatedIterator) Close() error {
  5334  	it.sub.Unsubscribe()
  5335  	return nil
  5336  }
  5337  
  5338  // RootChainEventERUCreated represents a ERUCreated event raised by the RootChainEvent contract.
  5339  type RootChainEventERUCreated struct {
  5340  	RequestId *big.Int
  5341  	Requestor common.Address
  5342  	To        common.Address
  5343  	TrieKey   []byte
  5344  	TrieValue [32]byte
  5345  	Raw       types.Log // Blockchain specific contextual infos
  5346  }
  5347  
  5348  // FilterERUCreated is a free log retrieval operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
  5349  //
  5350  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
  5351  func (_RootChainEvent *RootChainEventFilterer) FilterERUCreated(opts *bind.FilterOpts) (*RootChainEventERUCreatedIterator, error) {
  5352  
  5353  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "ERUCreated")
  5354  	if err != nil {
  5355  		return nil, err
  5356  	}
  5357  	return &RootChainEventERUCreatedIterator{contract: _RootChainEvent.contract, event: "ERUCreated", logs: logs, sub: sub}, nil
  5358  }
  5359  
  5360  // WatchERUCreated is a free log subscription operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
  5361  //
  5362  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
  5363  func (_RootChainEvent *RootChainEventFilterer) WatchERUCreated(opts *bind.WatchOpts, sink chan<- *RootChainEventERUCreated) (event.Subscription, error) {
  5364  
  5365  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "ERUCreated")
  5366  	if err != nil {
  5367  		return nil, err
  5368  	}
  5369  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5370  		defer sub.Unsubscribe()
  5371  		for {
  5372  			select {
  5373  			case log := <-logs:
  5374  				// New log arrived, parse the event and forward to the user
  5375  				event := new(RootChainEventERUCreated)
  5376  				if err := _RootChainEvent.contract.UnpackLog(event, "ERUCreated", log); err != nil {
  5377  					return err
  5378  				}
  5379  				event.Raw = log
  5380  
  5381  				select {
  5382  				case sink <- event:
  5383  				case err := <-sub.Err():
  5384  					return err
  5385  				case <-quit:
  5386  					return nil
  5387  				}
  5388  			case err := <-sub.Err():
  5389  				return err
  5390  			case <-quit:
  5391  				return nil
  5392  			}
  5393  		}
  5394  	}), nil
  5395  }
  5396  
  5397  // ParseERUCreated is a log parse operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
  5398  //
  5399  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
  5400  func (_RootChainEvent *RootChainEventFilterer) ParseERUCreated(log types.Log) (*RootChainEventERUCreated, error) {
  5401  	event := new(RootChainEventERUCreated)
  5402  	if err := _RootChainEvent.contract.UnpackLog(event, "ERUCreated", log); err != nil {
  5403  		return nil, err
  5404  	}
  5405  	return event, nil
  5406  }
  5407  
  5408  // RootChainEventEpochFilledIterator is returned from FilterEpochFilled and is used to iterate over the raw logs and unpacked data for EpochFilled events raised by the RootChainEvent contract.
  5409  type RootChainEventEpochFilledIterator struct {
  5410  	Event *RootChainEventEpochFilled // Event containing the contract specifics and raw log
  5411  
  5412  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5413  	event    string              // Event name to use for unpacking event data
  5414  
  5415  	logs chan types.Log        // Log channel receiving the found contract events
  5416  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5417  	done bool                  // Whether the subscription completed delivering logs
  5418  	fail error                 // Occurred error to stop iteration
  5419  }
  5420  
  5421  // Next advances the iterator to the subsequent event, returning whether there
  5422  // are any more events found. In case of a retrieval or parsing error, false is
  5423  // returned and Error() can be queried for the exact failure.
  5424  func (it *RootChainEventEpochFilledIterator) Next() bool {
  5425  	// If the iterator failed, stop iterating
  5426  	if it.fail != nil {
  5427  		return false
  5428  	}
  5429  	// If the iterator completed, deliver directly whatever's available
  5430  	if it.done {
  5431  		select {
  5432  		case log := <-it.logs:
  5433  			it.Event = new(RootChainEventEpochFilled)
  5434  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5435  				it.fail = err
  5436  				return false
  5437  			}
  5438  			it.Event.Raw = log
  5439  			return true
  5440  
  5441  		default:
  5442  			return false
  5443  		}
  5444  	}
  5445  	// Iterator still in progress, wait for either a data or an error event
  5446  	select {
  5447  	case log := <-it.logs:
  5448  		it.Event = new(RootChainEventEpochFilled)
  5449  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5450  			it.fail = err
  5451  			return false
  5452  		}
  5453  		it.Event.Raw = log
  5454  		return true
  5455  
  5456  	case err := <-it.sub.Err():
  5457  		it.done = true
  5458  		it.fail = err
  5459  		return it.Next()
  5460  	}
  5461  }
  5462  
  5463  // Error returns any retrieval or parsing error occurred during filtering.
  5464  func (it *RootChainEventEpochFilledIterator) Error() error {
  5465  	return it.fail
  5466  }
  5467  
  5468  // Close terminates the iteration process, releasing any pending underlying
  5469  // resources.
  5470  func (it *RootChainEventEpochFilledIterator) Close() error {
  5471  	it.sub.Unsubscribe()
  5472  	return nil
  5473  }
  5474  
  5475  // RootChainEventEpochFilled represents a EpochFilled event raised by the RootChainEvent contract.
  5476  type RootChainEventEpochFilled struct {
  5477  	ForkNumber  *big.Int
  5478  	EpochNumber *big.Int
  5479  	Raw         types.Log // Blockchain specific contextual infos
  5480  }
  5481  
  5482  // FilterEpochFilled is a free log retrieval operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
  5483  //
  5484  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
  5485  func (_RootChainEvent *RootChainEventFilterer) FilterEpochFilled(opts *bind.FilterOpts) (*RootChainEventEpochFilledIterator, error) {
  5486  
  5487  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "EpochFilled")
  5488  	if err != nil {
  5489  		return nil, err
  5490  	}
  5491  	return &RootChainEventEpochFilledIterator{contract: _RootChainEvent.contract, event: "EpochFilled", logs: logs, sub: sub}, nil
  5492  }
  5493  
  5494  // WatchEpochFilled is a free log subscription operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
  5495  //
  5496  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
  5497  func (_RootChainEvent *RootChainEventFilterer) WatchEpochFilled(opts *bind.WatchOpts, sink chan<- *RootChainEventEpochFilled) (event.Subscription, error) {
  5498  
  5499  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "EpochFilled")
  5500  	if err != nil {
  5501  		return nil, err
  5502  	}
  5503  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5504  		defer sub.Unsubscribe()
  5505  		for {
  5506  			select {
  5507  			case log := <-logs:
  5508  				// New log arrived, parse the event and forward to the user
  5509  				event := new(RootChainEventEpochFilled)
  5510  				if err := _RootChainEvent.contract.UnpackLog(event, "EpochFilled", log); err != nil {
  5511  					return err
  5512  				}
  5513  				event.Raw = log
  5514  
  5515  				select {
  5516  				case sink <- event:
  5517  				case err := <-sub.Err():
  5518  					return err
  5519  				case <-quit:
  5520  					return nil
  5521  				}
  5522  			case err := <-sub.Err():
  5523  				return err
  5524  			case <-quit:
  5525  				return nil
  5526  			}
  5527  		}
  5528  	}), nil
  5529  }
  5530  
  5531  // ParseEpochFilled is a log parse operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
  5532  //
  5533  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
  5534  func (_RootChainEvent *RootChainEventFilterer) ParseEpochFilled(log types.Log) (*RootChainEventEpochFilled, error) {
  5535  	event := new(RootChainEventEpochFilled)
  5536  	if err := _RootChainEvent.contract.UnpackLog(event, "EpochFilled", log); err != nil {
  5537  		return nil, err
  5538  	}
  5539  	return event, nil
  5540  }
  5541  
  5542  // RootChainEventEpochFillingIterator is returned from FilterEpochFilling and is used to iterate over the raw logs and unpacked data for EpochFilling events raised by the RootChainEvent contract.
  5543  type RootChainEventEpochFillingIterator struct {
  5544  	Event *RootChainEventEpochFilling // Event containing the contract specifics and raw log
  5545  
  5546  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5547  	event    string              // Event name to use for unpacking event data
  5548  
  5549  	logs chan types.Log        // Log channel receiving the found contract events
  5550  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5551  	done bool                  // Whether the subscription completed delivering logs
  5552  	fail error                 // Occurred error to stop iteration
  5553  }
  5554  
  5555  // Next advances the iterator to the subsequent event, returning whether there
  5556  // are any more events found. In case of a retrieval or parsing error, false is
  5557  // returned and Error() can be queried for the exact failure.
  5558  func (it *RootChainEventEpochFillingIterator) Next() bool {
  5559  	// If the iterator failed, stop iterating
  5560  	if it.fail != nil {
  5561  		return false
  5562  	}
  5563  	// If the iterator completed, deliver directly whatever's available
  5564  	if it.done {
  5565  		select {
  5566  		case log := <-it.logs:
  5567  			it.Event = new(RootChainEventEpochFilling)
  5568  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5569  				it.fail = err
  5570  				return false
  5571  			}
  5572  			it.Event.Raw = log
  5573  			return true
  5574  
  5575  		default:
  5576  			return false
  5577  		}
  5578  	}
  5579  	// Iterator still in progress, wait for either a data or an error event
  5580  	select {
  5581  	case log := <-it.logs:
  5582  		it.Event = new(RootChainEventEpochFilling)
  5583  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5584  			it.fail = err
  5585  			return false
  5586  		}
  5587  		it.Event.Raw = log
  5588  		return true
  5589  
  5590  	case err := <-it.sub.Err():
  5591  		it.done = true
  5592  		it.fail = err
  5593  		return it.Next()
  5594  	}
  5595  }
  5596  
  5597  // Error returns any retrieval or parsing error occurred during filtering.
  5598  func (it *RootChainEventEpochFillingIterator) Error() error {
  5599  	return it.fail
  5600  }
  5601  
  5602  // Close terminates the iteration process, releasing any pending underlying
  5603  // resources.
  5604  func (it *RootChainEventEpochFillingIterator) Close() error {
  5605  	it.sub.Unsubscribe()
  5606  	return nil
  5607  }
  5608  
  5609  // RootChainEventEpochFilling represents a EpochFilling event raised by the RootChainEvent contract.
  5610  type RootChainEventEpochFilling struct {
  5611  	ForkNumber  *big.Int
  5612  	EpochNumber *big.Int
  5613  	Raw         types.Log // Blockchain specific contextual infos
  5614  }
  5615  
  5616  // FilterEpochFilling is a free log retrieval operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
  5617  //
  5618  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
  5619  func (_RootChainEvent *RootChainEventFilterer) FilterEpochFilling(opts *bind.FilterOpts) (*RootChainEventEpochFillingIterator, error) {
  5620  
  5621  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "EpochFilling")
  5622  	if err != nil {
  5623  		return nil, err
  5624  	}
  5625  	return &RootChainEventEpochFillingIterator{contract: _RootChainEvent.contract, event: "EpochFilling", logs: logs, sub: sub}, nil
  5626  }
  5627  
  5628  // WatchEpochFilling is a free log subscription operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
  5629  //
  5630  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
  5631  func (_RootChainEvent *RootChainEventFilterer) WatchEpochFilling(opts *bind.WatchOpts, sink chan<- *RootChainEventEpochFilling) (event.Subscription, error) {
  5632  
  5633  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "EpochFilling")
  5634  	if err != nil {
  5635  		return nil, err
  5636  	}
  5637  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5638  		defer sub.Unsubscribe()
  5639  		for {
  5640  			select {
  5641  			case log := <-logs:
  5642  				// New log arrived, parse the event and forward to the user
  5643  				event := new(RootChainEventEpochFilling)
  5644  				if err := _RootChainEvent.contract.UnpackLog(event, "EpochFilling", log); err != nil {
  5645  					return err
  5646  				}
  5647  				event.Raw = log
  5648  
  5649  				select {
  5650  				case sink <- event:
  5651  				case err := <-sub.Err():
  5652  					return err
  5653  				case <-quit:
  5654  					return nil
  5655  				}
  5656  			case err := <-sub.Err():
  5657  				return err
  5658  			case <-quit:
  5659  				return nil
  5660  			}
  5661  		}
  5662  	}), nil
  5663  }
  5664  
  5665  // ParseEpochFilling is a log parse operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
  5666  //
  5667  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
  5668  func (_RootChainEvent *RootChainEventFilterer) ParseEpochFilling(log types.Log) (*RootChainEventEpochFilling, error) {
  5669  	event := new(RootChainEventEpochFilling)
  5670  	if err := _RootChainEvent.contract.UnpackLog(event, "EpochFilling", log); err != nil {
  5671  		return nil, err
  5672  	}
  5673  	return event, nil
  5674  }
  5675  
  5676  // RootChainEventEpochFinalizedIterator is returned from FilterEpochFinalized and is used to iterate over the raw logs and unpacked data for EpochFinalized events raised by the RootChainEvent contract.
  5677  type RootChainEventEpochFinalizedIterator struct {
  5678  	Event *RootChainEventEpochFinalized // Event containing the contract specifics and raw log
  5679  
  5680  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5681  	event    string              // Event name to use for unpacking event data
  5682  
  5683  	logs chan types.Log        // Log channel receiving the found contract events
  5684  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5685  	done bool                  // Whether the subscription completed delivering logs
  5686  	fail error                 // Occurred error to stop iteration
  5687  }
  5688  
  5689  // Next advances the iterator to the subsequent event, returning whether there
  5690  // are any more events found. In case of a retrieval or parsing error, false is
  5691  // returned and Error() can be queried for the exact failure.
  5692  func (it *RootChainEventEpochFinalizedIterator) Next() bool {
  5693  	// If the iterator failed, stop iterating
  5694  	if it.fail != nil {
  5695  		return false
  5696  	}
  5697  	// If the iterator completed, deliver directly whatever's available
  5698  	if it.done {
  5699  		select {
  5700  		case log := <-it.logs:
  5701  			it.Event = new(RootChainEventEpochFinalized)
  5702  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5703  				it.fail = err
  5704  				return false
  5705  			}
  5706  			it.Event.Raw = log
  5707  			return true
  5708  
  5709  		default:
  5710  			return false
  5711  		}
  5712  	}
  5713  	// Iterator still in progress, wait for either a data or an error event
  5714  	select {
  5715  	case log := <-it.logs:
  5716  		it.Event = new(RootChainEventEpochFinalized)
  5717  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5718  			it.fail = err
  5719  			return false
  5720  		}
  5721  		it.Event.Raw = log
  5722  		return true
  5723  
  5724  	case err := <-it.sub.Err():
  5725  		it.done = true
  5726  		it.fail = err
  5727  		return it.Next()
  5728  	}
  5729  }
  5730  
  5731  // Error returns any retrieval or parsing error occurred during filtering.
  5732  func (it *RootChainEventEpochFinalizedIterator) Error() error {
  5733  	return it.fail
  5734  }
  5735  
  5736  // Close terminates the iteration process, releasing any pending underlying
  5737  // resources.
  5738  func (it *RootChainEventEpochFinalizedIterator) Close() error {
  5739  	it.sub.Unsubscribe()
  5740  	return nil
  5741  }
  5742  
  5743  // RootChainEventEpochFinalized represents a EpochFinalized event raised by the RootChainEvent contract.
  5744  type RootChainEventEpochFinalized struct {
  5745  	ForkNumber       *big.Int
  5746  	EpochNumber      *big.Int
  5747  	StartBlockNumber *big.Int
  5748  	EndBlockNumber   *big.Int
  5749  	Raw              types.Log // Blockchain specific contextual infos
  5750  }
  5751  
  5752  // FilterEpochFinalized is a free log retrieval operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
  5753  //
  5754  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
  5755  func (_RootChainEvent *RootChainEventFilterer) FilterEpochFinalized(opts *bind.FilterOpts) (*RootChainEventEpochFinalizedIterator, error) {
  5756  
  5757  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "EpochFinalized")
  5758  	if err != nil {
  5759  		return nil, err
  5760  	}
  5761  	return &RootChainEventEpochFinalizedIterator{contract: _RootChainEvent.contract, event: "EpochFinalized", logs: logs, sub: sub}, nil
  5762  }
  5763  
  5764  // WatchEpochFinalized is a free log subscription operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
  5765  //
  5766  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
  5767  func (_RootChainEvent *RootChainEventFilterer) WatchEpochFinalized(opts *bind.WatchOpts, sink chan<- *RootChainEventEpochFinalized) (event.Subscription, error) {
  5768  
  5769  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "EpochFinalized")
  5770  	if err != nil {
  5771  		return nil, err
  5772  	}
  5773  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5774  		defer sub.Unsubscribe()
  5775  		for {
  5776  			select {
  5777  			case log := <-logs:
  5778  				// New log arrived, parse the event and forward to the user
  5779  				event := new(RootChainEventEpochFinalized)
  5780  				if err := _RootChainEvent.contract.UnpackLog(event, "EpochFinalized", log); err != nil {
  5781  					return err
  5782  				}
  5783  				event.Raw = log
  5784  
  5785  				select {
  5786  				case sink <- event:
  5787  				case err := <-sub.Err():
  5788  					return err
  5789  				case <-quit:
  5790  					return nil
  5791  				}
  5792  			case err := <-sub.Err():
  5793  				return err
  5794  			case <-quit:
  5795  				return nil
  5796  			}
  5797  		}
  5798  	}), nil
  5799  }
  5800  
  5801  // ParseEpochFinalized is a log parse operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
  5802  //
  5803  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
  5804  func (_RootChainEvent *RootChainEventFilterer) ParseEpochFinalized(log types.Log) (*RootChainEventEpochFinalized, error) {
  5805  	event := new(RootChainEventEpochFinalized)
  5806  	if err := _RootChainEvent.contract.UnpackLog(event, "EpochFinalized", log); err != nil {
  5807  		return nil, err
  5808  	}
  5809  	return event, nil
  5810  }
  5811  
  5812  // RootChainEventEpochPreparedIterator is returned from FilterEpochPrepared and is used to iterate over the raw logs and unpacked data for EpochPrepared events raised by the RootChainEvent contract.
  5813  type RootChainEventEpochPreparedIterator struct {
  5814  	Event *RootChainEventEpochPrepared // Event containing the contract specifics and raw log
  5815  
  5816  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5817  	event    string              // Event name to use for unpacking event data
  5818  
  5819  	logs chan types.Log        // Log channel receiving the found contract events
  5820  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5821  	done bool                  // Whether the subscription completed delivering logs
  5822  	fail error                 // Occurred error to stop iteration
  5823  }
  5824  
  5825  // Next advances the iterator to the subsequent event, returning whether there
  5826  // are any more events found. In case of a retrieval or parsing error, false is
  5827  // returned and Error() can be queried for the exact failure.
  5828  func (it *RootChainEventEpochPreparedIterator) Next() bool {
  5829  	// If the iterator failed, stop iterating
  5830  	if it.fail != nil {
  5831  		return false
  5832  	}
  5833  	// If the iterator completed, deliver directly whatever's available
  5834  	if it.done {
  5835  		select {
  5836  		case log := <-it.logs:
  5837  			it.Event = new(RootChainEventEpochPrepared)
  5838  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5839  				it.fail = err
  5840  				return false
  5841  			}
  5842  			it.Event.Raw = log
  5843  			return true
  5844  
  5845  		default:
  5846  			return false
  5847  		}
  5848  	}
  5849  	// Iterator still in progress, wait for either a data or an error event
  5850  	select {
  5851  	case log := <-it.logs:
  5852  		it.Event = new(RootChainEventEpochPrepared)
  5853  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5854  			it.fail = err
  5855  			return false
  5856  		}
  5857  		it.Event.Raw = log
  5858  		return true
  5859  
  5860  	case err := <-it.sub.Err():
  5861  		it.done = true
  5862  		it.fail = err
  5863  		return it.Next()
  5864  	}
  5865  }
  5866  
  5867  // Error returns any retrieval or parsing error occurred during filtering.
  5868  func (it *RootChainEventEpochPreparedIterator) Error() error {
  5869  	return it.fail
  5870  }
  5871  
  5872  // Close terminates the iteration process, releasing any pending underlying
  5873  // resources.
  5874  func (it *RootChainEventEpochPreparedIterator) Close() error {
  5875  	it.sub.Unsubscribe()
  5876  	return nil
  5877  }
  5878  
  5879  // RootChainEventEpochPrepared represents a EpochPrepared event raised by the RootChainEvent contract.
  5880  type RootChainEventEpochPrepared struct {
  5881  	ForkNumber       *big.Int
  5882  	EpochNumber      *big.Int
  5883  	StartBlockNumber *big.Int
  5884  	EndBlockNumber   *big.Int
  5885  	RequestStart     *big.Int
  5886  	RequestEnd       *big.Int
  5887  	EpochIsEmpty     bool
  5888  	IsRequest        bool
  5889  	UserActivated    bool
  5890  	Rebase           bool
  5891  	Raw              types.Log // Blockchain specific contextual infos
  5892  }
  5893  
  5894  // FilterEpochPrepared is a free log retrieval operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
  5895  //
  5896  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
  5897  func (_RootChainEvent *RootChainEventFilterer) FilterEpochPrepared(opts *bind.FilterOpts) (*RootChainEventEpochPreparedIterator, error) {
  5898  
  5899  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "EpochPrepared")
  5900  	if err != nil {
  5901  		return nil, err
  5902  	}
  5903  	return &RootChainEventEpochPreparedIterator{contract: _RootChainEvent.contract, event: "EpochPrepared", logs: logs, sub: sub}, nil
  5904  }
  5905  
  5906  // WatchEpochPrepared is a free log subscription operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
  5907  //
  5908  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
  5909  func (_RootChainEvent *RootChainEventFilterer) WatchEpochPrepared(opts *bind.WatchOpts, sink chan<- *RootChainEventEpochPrepared) (event.Subscription, error) {
  5910  
  5911  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "EpochPrepared")
  5912  	if err != nil {
  5913  		return nil, err
  5914  	}
  5915  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5916  		defer sub.Unsubscribe()
  5917  		for {
  5918  			select {
  5919  			case log := <-logs:
  5920  				// New log arrived, parse the event and forward to the user
  5921  				event := new(RootChainEventEpochPrepared)
  5922  				if err := _RootChainEvent.contract.UnpackLog(event, "EpochPrepared", log); err != nil {
  5923  					return err
  5924  				}
  5925  				event.Raw = log
  5926  
  5927  				select {
  5928  				case sink <- event:
  5929  				case err := <-sub.Err():
  5930  					return err
  5931  				case <-quit:
  5932  					return nil
  5933  				}
  5934  			case err := <-sub.Err():
  5935  				return err
  5936  			case <-quit:
  5937  				return nil
  5938  			}
  5939  		}
  5940  	}), nil
  5941  }
  5942  
  5943  // ParseEpochPrepared is a log parse operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
  5944  //
  5945  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
  5946  func (_RootChainEvent *RootChainEventFilterer) ParseEpochPrepared(log types.Log) (*RootChainEventEpochPrepared, error) {
  5947  	event := new(RootChainEventEpochPrepared)
  5948  	if err := _RootChainEvent.contract.UnpackLog(event, "EpochPrepared", log); err != nil {
  5949  		return nil, err
  5950  	}
  5951  	return event, nil
  5952  }
  5953  
  5954  // RootChainEventEpochRebasedIterator is returned from FilterEpochRebased and is used to iterate over the raw logs and unpacked data for EpochRebased events raised by the RootChainEvent contract.
  5955  type RootChainEventEpochRebasedIterator struct {
  5956  	Event *RootChainEventEpochRebased // Event containing the contract specifics and raw log
  5957  
  5958  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5959  	event    string              // Event name to use for unpacking event data
  5960  
  5961  	logs chan types.Log        // Log channel receiving the found contract events
  5962  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5963  	done bool                  // Whether the subscription completed delivering logs
  5964  	fail error                 // Occurred error to stop iteration
  5965  }
  5966  
  5967  // Next advances the iterator to the subsequent event, returning whether there
  5968  // are any more events found. In case of a retrieval or parsing error, false is
  5969  // returned and Error() can be queried for the exact failure.
  5970  func (it *RootChainEventEpochRebasedIterator) Next() bool {
  5971  	// If the iterator failed, stop iterating
  5972  	if it.fail != nil {
  5973  		return false
  5974  	}
  5975  	// If the iterator completed, deliver directly whatever's available
  5976  	if it.done {
  5977  		select {
  5978  		case log := <-it.logs:
  5979  			it.Event = new(RootChainEventEpochRebased)
  5980  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5981  				it.fail = err
  5982  				return false
  5983  			}
  5984  			it.Event.Raw = log
  5985  			return true
  5986  
  5987  		default:
  5988  			return false
  5989  		}
  5990  	}
  5991  	// Iterator still in progress, wait for either a data or an error event
  5992  	select {
  5993  	case log := <-it.logs:
  5994  		it.Event = new(RootChainEventEpochRebased)
  5995  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5996  			it.fail = err
  5997  			return false
  5998  		}
  5999  		it.Event.Raw = log
  6000  		return true
  6001  
  6002  	case err := <-it.sub.Err():
  6003  		it.done = true
  6004  		it.fail = err
  6005  		return it.Next()
  6006  	}
  6007  }
  6008  
  6009  // Error returns any retrieval or parsing error occurred during filtering.
  6010  func (it *RootChainEventEpochRebasedIterator) Error() error {
  6011  	return it.fail
  6012  }
  6013  
  6014  // Close terminates the iteration process, releasing any pending underlying
  6015  // resources.
  6016  func (it *RootChainEventEpochRebasedIterator) Close() error {
  6017  	it.sub.Unsubscribe()
  6018  	return nil
  6019  }
  6020  
  6021  // RootChainEventEpochRebased represents a EpochRebased event raised by the RootChainEvent contract.
  6022  type RootChainEventEpochRebased struct {
  6023  	ForkNumber       *big.Int
  6024  	EpochNumber      *big.Int
  6025  	StartBlockNumber *big.Int
  6026  	EndBlockNumber   *big.Int
  6027  	RequestStart     *big.Int
  6028  	RequestEnd       *big.Int
  6029  	EpochIsEmpty     bool
  6030  	IsRequest        bool
  6031  	UserActivated    bool
  6032  	Raw              types.Log // Blockchain specific contextual infos
  6033  }
  6034  
  6035  // FilterEpochRebased is a free log retrieval operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
  6036  //
  6037  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
  6038  func (_RootChainEvent *RootChainEventFilterer) FilterEpochRebased(opts *bind.FilterOpts) (*RootChainEventEpochRebasedIterator, error) {
  6039  
  6040  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "EpochRebased")
  6041  	if err != nil {
  6042  		return nil, err
  6043  	}
  6044  	return &RootChainEventEpochRebasedIterator{contract: _RootChainEvent.contract, event: "EpochRebased", logs: logs, sub: sub}, nil
  6045  }
  6046  
  6047  // WatchEpochRebased is a free log subscription operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
  6048  //
  6049  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
  6050  func (_RootChainEvent *RootChainEventFilterer) WatchEpochRebased(opts *bind.WatchOpts, sink chan<- *RootChainEventEpochRebased) (event.Subscription, error) {
  6051  
  6052  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "EpochRebased")
  6053  	if err != nil {
  6054  		return nil, err
  6055  	}
  6056  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6057  		defer sub.Unsubscribe()
  6058  		for {
  6059  			select {
  6060  			case log := <-logs:
  6061  				// New log arrived, parse the event and forward to the user
  6062  				event := new(RootChainEventEpochRebased)
  6063  				if err := _RootChainEvent.contract.UnpackLog(event, "EpochRebased", log); err != nil {
  6064  					return err
  6065  				}
  6066  				event.Raw = log
  6067  
  6068  				select {
  6069  				case sink <- event:
  6070  				case err := <-sub.Err():
  6071  					return err
  6072  				case <-quit:
  6073  					return nil
  6074  				}
  6075  			case err := <-sub.Err():
  6076  				return err
  6077  			case <-quit:
  6078  				return nil
  6079  			}
  6080  		}
  6081  	}), nil
  6082  }
  6083  
  6084  // ParseEpochRebased is a log parse operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
  6085  //
  6086  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
  6087  func (_RootChainEvent *RootChainEventFilterer) ParseEpochRebased(log types.Log) (*RootChainEventEpochRebased, error) {
  6088  	event := new(RootChainEventEpochRebased)
  6089  	if err := _RootChainEvent.contract.UnpackLog(event, "EpochRebased", log); err != nil {
  6090  		return nil, err
  6091  	}
  6092  	return event, nil
  6093  }
  6094  
  6095  // RootChainEventForkedIterator is returned from FilterForked and is used to iterate over the raw logs and unpacked data for Forked events raised by the RootChainEvent contract.
  6096  type RootChainEventForkedIterator struct {
  6097  	Event *RootChainEventForked // Event containing the contract specifics and raw log
  6098  
  6099  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6100  	event    string              // Event name to use for unpacking event data
  6101  
  6102  	logs chan types.Log        // Log channel receiving the found contract events
  6103  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6104  	done bool                  // Whether the subscription completed delivering logs
  6105  	fail error                 // Occurred error to stop iteration
  6106  }
  6107  
  6108  // Next advances the iterator to the subsequent event, returning whether there
  6109  // are any more events found. In case of a retrieval or parsing error, false is
  6110  // returned and Error() can be queried for the exact failure.
  6111  func (it *RootChainEventForkedIterator) Next() bool {
  6112  	// If the iterator failed, stop iterating
  6113  	if it.fail != nil {
  6114  		return false
  6115  	}
  6116  	// If the iterator completed, deliver directly whatever's available
  6117  	if it.done {
  6118  		select {
  6119  		case log := <-it.logs:
  6120  			it.Event = new(RootChainEventForked)
  6121  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6122  				it.fail = err
  6123  				return false
  6124  			}
  6125  			it.Event.Raw = log
  6126  			return true
  6127  
  6128  		default:
  6129  			return false
  6130  		}
  6131  	}
  6132  	// Iterator still in progress, wait for either a data or an error event
  6133  	select {
  6134  	case log := <-it.logs:
  6135  		it.Event = new(RootChainEventForked)
  6136  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6137  			it.fail = err
  6138  			return false
  6139  		}
  6140  		it.Event.Raw = log
  6141  		return true
  6142  
  6143  	case err := <-it.sub.Err():
  6144  		it.done = true
  6145  		it.fail = err
  6146  		return it.Next()
  6147  	}
  6148  }
  6149  
  6150  // Error returns any retrieval or parsing error occurred during filtering.
  6151  func (it *RootChainEventForkedIterator) Error() error {
  6152  	return it.fail
  6153  }
  6154  
  6155  // Close terminates the iteration process, releasing any pending underlying
  6156  // resources.
  6157  func (it *RootChainEventForkedIterator) Close() error {
  6158  	it.sub.Unsubscribe()
  6159  	return nil
  6160  }
  6161  
  6162  // RootChainEventForked represents a Forked event raised by the RootChainEvent contract.
  6163  type RootChainEventForked struct {
  6164  	NewFork           *big.Int
  6165  	EpochNumber       *big.Int
  6166  	ForkedBlockNumber *big.Int
  6167  	Raw               types.Log // Blockchain specific contextual infos
  6168  }
  6169  
  6170  // FilterForked is a free log retrieval operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
  6171  //
  6172  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
  6173  func (_RootChainEvent *RootChainEventFilterer) FilterForked(opts *bind.FilterOpts) (*RootChainEventForkedIterator, error) {
  6174  
  6175  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "Forked")
  6176  	if err != nil {
  6177  		return nil, err
  6178  	}
  6179  	return &RootChainEventForkedIterator{contract: _RootChainEvent.contract, event: "Forked", logs: logs, sub: sub}, nil
  6180  }
  6181  
  6182  // WatchForked is a free log subscription operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
  6183  //
  6184  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
  6185  func (_RootChainEvent *RootChainEventFilterer) WatchForked(opts *bind.WatchOpts, sink chan<- *RootChainEventForked) (event.Subscription, error) {
  6186  
  6187  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "Forked")
  6188  	if err != nil {
  6189  		return nil, err
  6190  	}
  6191  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6192  		defer sub.Unsubscribe()
  6193  		for {
  6194  			select {
  6195  			case log := <-logs:
  6196  				// New log arrived, parse the event and forward to the user
  6197  				event := new(RootChainEventForked)
  6198  				if err := _RootChainEvent.contract.UnpackLog(event, "Forked", log); err != nil {
  6199  					return err
  6200  				}
  6201  				event.Raw = log
  6202  
  6203  				select {
  6204  				case sink <- event:
  6205  				case err := <-sub.Err():
  6206  					return err
  6207  				case <-quit:
  6208  					return nil
  6209  				}
  6210  			case err := <-sub.Err():
  6211  				return err
  6212  			case <-quit:
  6213  				return nil
  6214  			}
  6215  		}
  6216  	}), nil
  6217  }
  6218  
  6219  // ParseForked is a log parse operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
  6220  //
  6221  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
  6222  func (_RootChainEvent *RootChainEventFilterer) ParseForked(log types.Log) (*RootChainEventForked, error) {
  6223  	event := new(RootChainEventForked)
  6224  	if err := _RootChainEvent.contract.UnpackLog(event, "Forked", log); err != nil {
  6225  		return nil, err
  6226  	}
  6227  	return event, nil
  6228  }
  6229  
  6230  // RootChainEventOperatorChangedIterator is returned from FilterOperatorChanged and is used to iterate over the raw logs and unpacked data for OperatorChanged events raised by the RootChainEvent contract.
  6231  type RootChainEventOperatorChangedIterator struct {
  6232  	Event *RootChainEventOperatorChanged // Event containing the contract specifics and raw log
  6233  
  6234  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6235  	event    string              // Event name to use for unpacking event data
  6236  
  6237  	logs chan types.Log        // Log channel receiving the found contract events
  6238  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6239  	done bool                  // Whether the subscription completed delivering logs
  6240  	fail error                 // Occurred error to stop iteration
  6241  }
  6242  
  6243  // Next advances the iterator to the subsequent event, returning whether there
  6244  // are any more events found. In case of a retrieval or parsing error, false is
  6245  // returned and Error() can be queried for the exact failure.
  6246  func (it *RootChainEventOperatorChangedIterator) Next() bool {
  6247  	// If the iterator failed, stop iterating
  6248  	if it.fail != nil {
  6249  		return false
  6250  	}
  6251  	// If the iterator completed, deliver directly whatever's available
  6252  	if it.done {
  6253  		select {
  6254  		case log := <-it.logs:
  6255  			it.Event = new(RootChainEventOperatorChanged)
  6256  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6257  				it.fail = err
  6258  				return false
  6259  			}
  6260  			it.Event.Raw = log
  6261  			return true
  6262  
  6263  		default:
  6264  			return false
  6265  		}
  6266  	}
  6267  	// Iterator still in progress, wait for either a data or an error event
  6268  	select {
  6269  	case log := <-it.logs:
  6270  		it.Event = new(RootChainEventOperatorChanged)
  6271  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6272  			it.fail = err
  6273  			return false
  6274  		}
  6275  		it.Event.Raw = log
  6276  		return true
  6277  
  6278  	case err := <-it.sub.Err():
  6279  		it.done = true
  6280  		it.fail = err
  6281  		return it.Next()
  6282  	}
  6283  }
  6284  
  6285  // Error returns any retrieval or parsing error occurred during filtering.
  6286  func (it *RootChainEventOperatorChangedIterator) Error() error {
  6287  	return it.fail
  6288  }
  6289  
  6290  // Close terminates the iteration process, releasing any pending underlying
  6291  // resources.
  6292  func (it *RootChainEventOperatorChangedIterator) Close() error {
  6293  	it.sub.Unsubscribe()
  6294  	return nil
  6295  }
  6296  
  6297  // RootChainEventOperatorChanged represents a OperatorChanged event raised by the RootChainEvent contract.
  6298  type RootChainEventOperatorChanged struct {
  6299  	NewOperator common.Address
  6300  	Raw         types.Log // Blockchain specific contextual infos
  6301  }
  6302  
  6303  // FilterOperatorChanged is a free log retrieval operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
  6304  //
  6305  // Solidity: event OperatorChanged(address _newOperator)
  6306  func (_RootChainEvent *RootChainEventFilterer) FilterOperatorChanged(opts *bind.FilterOpts) (*RootChainEventOperatorChangedIterator, error) {
  6307  
  6308  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "OperatorChanged")
  6309  	if err != nil {
  6310  		return nil, err
  6311  	}
  6312  	return &RootChainEventOperatorChangedIterator{contract: _RootChainEvent.contract, event: "OperatorChanged", logs: logs, sub: sub}, nil
  6313  }
  6314  
  6315  // WatchOperatorChanged is a free log subscription operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
  6316  //
  6317  // Solidity: event OperatorChanged(address _newOperator)
  6318  func (_RootChainEvent *RootChainEventFilterer) WatchOperatorChanged(opts *bind.WatchOpts, sink chan<- *RootChainEventOperatorChanged) (event.Subscription, error) {
  6319  
  6320  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "OperatorChanged")
  6321  	if err != nil {
  6322  		return nil, err
  6323  	}
  6324  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6325  		defer sub.Unsubscribe()
  6326  		for {
  6327  			select {
  6328  			case log := <-logs:
  6329  				// New log arrived, parse the event and forward to the user
  6330  				event := new(RootChainEventOperatorChanged)
  6331  				if err := _RootChainEvent.contract.UnpackLog(event, "OperatorChanged", log); err != nil {
  6332  					return err
  6333  				}
  6334  				event.Raw = log
  6335  
  6336  				select {
  6337  				case sink <- event:
  6338  				case err := <-sub.Err():
  6339  					return err
  6340  				case <-quit:
  6341  					return nil
  6342  				}
  6343  			case err := <-sub.Err():
  6344  				return err
  6345  			case <-quit:
  6346  				return nil
  6347  			}
  6348  		}
  6349  	}), nil
  6350  }
  6351  
  6352  // ParseOperatorChanged is a log parse operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
  6353  //
  6354  // Solidity: event OperatorChanged(address _newOperator)
  6355  func (_RootChainEvent *RootChainEventFilterer) ParseOperatorChanged(log types.Log) (*RootChainEventOperatorChanged, error) {
  6356  	event := new(RootChainEventOperatorChanged)
  6357  	if err := _RootChainEvent.contract.UnpackLog(event, "OperatorChanged", log); err != nil {
  6358  		return nil, err
  6359  	}
  6360  	return event, nil
  6361  }
  6362  
  6363  // RootChainEventRequestAppliedIterator is returned from FilterRequestApplied and is used to iterate over the raw logs and unpacked data for RequestApplied events raised by the RootChainEvent contract.
  6364  type RootChainEventRequestAppliedIterator struct {
  6365  	Event *RootChainEventRequestApplied // Event containing the contract specifics and raw log
  6366  
  6367  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6368  	event    string              // Event name to use for unpacking event data
  6369  
  6370  	logs chan types.Log        // Log channel receiving the found contract events
  6371  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6372  	done bool                  // Whether the subscription completed delivering logs
  6373  	fail error                 // Occurred error to stop iteration
  6374  }
  6375  
  6376  // Next advances the iterator to the subsequent event, returning whether there
  6377  // are any more events found. In case of a retrieval or parsing error, false is
  6378  // returned and Error() can be queried for the exact failure.
  6379  func (it *RootChainEventRequestAppliedIterator) Next() bool {
  6380  	// If the iterator failed, stop iterating
  6381  	if it.fail != nil {
  6382  		return false
  6383  	}
  6384  	// If the iterator completed, deliver directly whatever's available
  6385  	if it.done {
  6386  		select {
  6387  		case log := <-it.logs:
  6388  			it.Event = new(RootChainEventRequestApplied)
  6389  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6390  				it.fail = err
  6391  				return false
  6392  			}
  6393  			it.Event.Raw = log
  6394  			return true
  6395  
  6396  		default:
  6397  			return false
  6398  		}
  6399  	}
  6400  	// Iterator still in progress, wait for either a data or an error event
  6401  	select {
  6402  	case log := <-it.logs:
  6403  		it.Event = new(RootChainEventRequestApplied)
  6404  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6405  			it.fail = err
  6406  			return false
  6407  		}
  6408  		it.Event.Raw = log
  6409  		return true
  6410  
  6411  	case err := <-it.sub.Err():
  6412  		it.done = true
  6413  		it.fail = err
  6414  		return it.Next()
  6415  	}
  6416  }
  6417  
  6418  // Error returns any retrieval or parsing error occurred during filtering.
  6419  func (it *RootChainEventRequestAppliedIterator) Error() error {
  6420  	return it.fail
  6421  }
  6422  
  6423  // Close terminates the iteration process, releasing any pending underlying
  6424  // resources.
  6425  func (it *RootChainEventRequestAppliedIterator) Close() error {
  6426  	it.sub.Unsubscribe()
  6427  	return nil
  6428  }
  6429  
  6430  // RootChainEventRequestApplied represents a RequestApplied event raised by the RootChainEvent contract.
  6431  type RootChainEventRequestApplied struct {
  6432  	RequestId     *big.Int
  6433  	UserActivated bool
  6434  	Raw           types.Log // Blockchain specific contextual infos
  6435  }
  6436  
  6437  // FilterRequestApplied is a free log retrieval operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
  6438  //
  6439  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
  6440  func (_RootChainEvent *RootChainEventFilterer) FilterRequestApplied(opts *bind.FilterOpts) (*RootChainEventRequestAppliedIterator, error) {
  6441  
  6442  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "RequestApplied")
  6443  	if err != nil {
  6444  		return nil, err
  6445  	}
  6446  	return &RootChainEventRequestAppliedIterator{contract: _RootChainEvent.contract, event: "RequestApplied", logs: logs, sub: sub}, nil
  6447  }
  6448  
  6449  // WatchRequestApplied is a free log subscription operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
  6450  //
  6451  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
  6452  func (_RootChainEvent *RootChainEventFilterer) WatchRequestApplied(opts *bind.WatchOpts, sink chan<- *RootChainEventRequestApplied) (event.Subscription, error) {
  6453  
  6454  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "RequestApplied")
  6455  	if err != nil {
  6456  		return nil, err
  6457  	}
  6458  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6459  		defer sub.Unsubscribe()
  6460  		for {
  6461  			select {
  6462  			case log := <-logs:
  6463  				// New log arrived, parse the event and forward to the user
  6464  				event := new(RootChainEventRequestApplied)
  6465  				if err := _RootChainEvent.contract.UnpackLog(event, "RequestApplied", log); err != nil {
  6466  					return err
  6467  				}
  6468  				event.Raw = log
  6469  
  6470  				select {
  6471  				case sink <- event:
  6472  				case err := <-sub.Err():
  6473  					return err
  6474  				case <-quit:
  6475  					return nil
  6476  				}
  6477  			case err := <-sub.Err():
  6478  				return err
  6479  			case <-quit:
  6480  				return nil
  6481  			}
  6482  		}
  6483  	}), nil
  6484  }
  6485  
  6486  // ParseRequestApplied is a log parse operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
  6487  //
  6488  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
  6489  func (_RootChainEvent *RootChainEventFilterer) ParseRequestApplied(log types.Log) (*RootChainEventRequestApplied, error) {
  6490  	event := new(RootChainEventRequestApplied)
  6491  	if err := _RootChainEvent.contract.UnpackLog(event, "RequestApplied", log); err != nil {
  6492  		return nil, err
  6493  	}
  6494  	return event, nil
  6495  }
  6496  
  6497  // RootChainEventRequestChallengedIterator is returned from FilterRequestChallenged and is used to iterate over the raw logs and unpacked data for RequestChallenged events raised by the RootChainEvent contract.
  6498  type RootChainEventRequestChallengedIterator struct {
  6499  	Event *RootChainEventRequestChallenged // Event containing the contract specifics and raw log
  6500  
  6501  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6502  	event    string              // Event name to use for unpacking event data
  6503  
  6504  	logs chan types.Log        // Log channel receiving the found contract events
  6505  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6506  	done bool                  // Whether the subscription completed delivering logs
  6507  	fail error                 // Occurred error to stop iteration
  6508  }
  6509  
  6510  // Next advances the iterator to the subsequent event, returning whether there
  6511  // are any more events found. In case of a retrieval or parsing error, false is
  6512  // returned and Error() can be queried for the exact failure.
  6513  func (it *RootChainEventRequestChallengedIterator) Next() bool {
  6514  	// If the iterator failed, stop iterating
  6515  	if it.fail != nil {
  6516  		return false
  6517  	}
  6518  	// If the iterator completed, deliver directly whatever's available
  6519  	if it.done {
  6520  		select {
  6521  		case log := <-it.logs:
  6522  			it.Event = new(RootChainEventRequestChallenged)
  6523  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6524  				it.fail = err
  6525  				return false
  6526  			}
  6527  			it.Event.Raw = log
  6528  			return true
  6529  
  6530  		default:
  6531  			return false
  6532  		}
  6533  	}
  6534  	// Iterator still in progress, wait for either a data or an error event
  6535  	select {
  6536  	case log := <-it.logs:
  6537  		it.Event = new(RootChainEventRequestChallenged)
  6538  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6539  			it.fail = err
  6540  			return false
  6541  		}
  6542  		it.Event.Raw = log
  6543  		return true
  6544  
  6545  	case err := <-it.sub.Err():
  6546  		it.done = true
  6547  		it.fail = err
  6548  		return it.Next()
  6549  	}
  6550  }
  6551  
  6552  // Error returns any retrieval or parsing error occurred during filtering.
  6553  func (it *RootChainEventRequestChallengedIterator) Error() error {
  6554  	return it.fail
  6555  }
  6556  
  6557  // Close terminates the iteration process, releasing any pending underlying
  6558  // resources.
  6559  func (it *RootChainEventRequestChallengedIterator) Close() error {
  6560  	it.sub.Unsubscribe()
  6561  	return nil
  6562  }
  6563  
  6564  // RootChainEventRequestChallenged represents a RequestChallenged event raised by the RootChainEvent contract.
  6565  type RootChainEventRequestChallenged struct {
  6566  	RequestId     *big.Int
  6567  	UserActivated bool
  6568  	Raw           types.Log // Blockchain specific contextual infos
  6569  }
  6570  
  6571  // FilterRequestChallenged is a free log retrieval operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
  6572  //
  6573  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
  6574  func (_RootChainEvent *RootChainEventFilterer) FilterRequestChallenged(opts *bind.FilterOpts) (*RootChainEventRequestChallengedIterator, error) {
  6575  
  6576  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "RequestChallenged")
  6577  	if err != nil {
  6578  		return nil, err
  6579  	}
  6580  	return &RootChainEventRequestChallengedIterator{contract: _RootChainEvent.contract, event: "RequestChallenged", logs: logs, sub: sub}, nil
  6581  }
  6582  
  6583  // WatchRequestChallenged is a free log subscription operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
  6584  //
  6585  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
  6586  func (_RootChainEvent *RootChainEventFilterer) WatchRequestChallenged(opts *bind.WatchOpts, sink chan<- *RootChainEventRequestChallenged) (event.Subscription, error) {
  6587  
  6588  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "RequestChallenged")
  6589  	if err != nil {
  6590  		return nil, err
  6591  	}
  6592  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6593  		defer sub.Unsubscribe()
  6594  		for {
  6595  			select {
  6596  			case log := <-logs:
  6597  				// New log arrived, parse the event and forward to the user
  6598  				event := new(RootChainEventRequestChallenged)
  6599  				if err := _RootChainEvent.contract.UnpackLog(event, "RequestChallenged", log); err != nil {
  6600  					return err
  6601  				}
  6602  				event.Raw = log
  6603  
  6604  				select {
  6605  				case sink <- event:
  6606  				case err := <-sub.Err():
  6607  					return err
  6608  				case <-quit:
  6609  					return nil
  6610  				}
  6611  			case err := <-sub.Err():
  6612  				return err
  6613  			case <-quit:
  6614  				return nil
  6615  			}
  6616  		}
  6617  	}), nil
  6618  }
  6619  
  6620  // ParseRequestChallenged is a log parse operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
  6621  //
  6622  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
  6623  func (_RootChainEvent *RootChainEventFilterer) ParseRequestChallenged(log types.Log) (*RootChainEventRequestChallenged, error) {
  6624  	event := new(RootChainEventRequestChallenged)
  6625  	if err := _RootChainEvent.contract.UnpackLog(event, "RequestChallenged", log); err != nil {
  6626  		return nil, err
  6627  	}
  6628  	return event, nil
  6629  }
  6630  
  6631  // RootChainEventRequestCreatedIterator is returned from FilterRequestCreated and is used to iterate over the raw logs and unpacked data for RequestCreated events raised by the RootChainEvent contract.
  6632  type RootChainEventRequestCreatedIterator struct {
  6633  	Event *RootChainEventRequestCreated // Event containing the contract specifics and raw log
  6634  
  6635  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6636  	event    string              // Event name to use for unpacking event data
  6637  
  6638  	logs chan types.Log        // Log channel receiving the found contract events
  6639  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6640  	done bool                  // Whether the subscription completed delivering logs
  6641  	fail error                 // Occurred error to stop iteration
  6642  }
  6643  
  6644  // Next advances the iterator to the subsequent event, returning whether there
  6645  // are any more events found. In case of a retrieval or parsing error, false is
  6646  // returned and Error() can be queried for the exact failure.
  6647  func (it *RootChainEventRequestCreatedIterator) Next() bool {
  6648  	// If the iterator failed, stop iterating
  6649  	if it.fail != nil {
  6650  		return false
  6651  	}
  6652  	// If the iterator completed, deliver directly whatever's available
  6653  	if it.done {
  6654  		select {
  6655  		case log := <-it.logs:
  6656  			it.Event = new(RootChainEventRequestCreated)
  6657  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6658  				it.fail = err
  6659  				return false
  6660  			}
  6661  			it.Event.Raw = log
  6662  			return true
  6663  
  6664  		default:
  6665  			return false
  6666  		}
  6667  	}
  6668  	// Iterator still in progress, wait for either a data or an error event
  6669  	select {
  6670  	case log := <-it.logs:
  6671  		it.Event = new(RootChainEventRequestCreated)
  6672  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6673  			it.fail = err
  6674  			return false
  6675  		}
  6676  		it.Event.Raw = log
  6677  		return true
  6678  
  6679  	case err := <-it.sub.Err():
  6680  		it.done = true
  6681  		it.fail = err
  6682  		return it.Next()
  6683  	}
  6684  }
  6685  
  6686  // Error returns any retrieval or parsing error occurred during filtering.
  6687  func (it *RootChainEventRequestCreatedIterator) Error() error {
  6688  	return it.fail
  6689  }
  6690  
  6691  // Close terminates the iteration process, releasing any pending underlying
  6692  // resources.
  6693  func (it *RootChainEventRequestCreatedIterator) Close() error {
  6694  	it.sub.Unsubscribe()
  6695  	return nil
  6696  }
  6697  
  6698  // RootChainEventRequestCreated represents a RequestCreated event raised by the RootChainEvent contract.
  6699  type RootChainEventRequestCreated struct {
  6700  	RequestId     *big.Int
  6701  	Requestor     common.Address
  6702  	To            common.Address
  6703  	WeiAmount     *big.Int
  6704  	TrieKey       [32]byte
  6705  	TrieValue     []byte
  6706  	IsExit        bool
  6707  	UserActivated bool
  6708  	Raw           types.Log // Blockchain specific contextual infos
  6709  }
  6710  
  6711  // FilterRequestCreated is a free log retrieval operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
  6712  //
  6713  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
  6714  func (_RootChainEvent *RootChainEventFilterer) FilterRequestCreated(opts *bind.FilterOpts) (*RootChainEventRequestCreatedIterator, error) {
  6715  
  6716  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "RequestCreated")
  6717  	if err != nil {
  6718  		return nil, err
  6719  	}
  6720  	return &RootChainEventRequestCreatedIterator{contract: _RootChainEvent.contract, event: "RequestCreated", logs: logs, sub: sub}, nil
  6721  }
  6722  
  6723  // WatchRequestCreated is a free log subscription operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
  6724  //
  6725  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
  6726  func (_RootChainEvent *RootChainEventFilterer) WatchRequestCreated(opts *bind.WatchOpts, sink chan<- *RootChainEventRequestCreated) (event.Subscription, error) {
  6727  
  6728  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "RequestCreated")
  6729  	if err != nil {
  6730  		return nil, err
  6731  	}
  6732  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6733  		defer sub.Unsubscribe()
  6734  		for {
  6735  			select {
  6736  			case log := <-logs:
  6737  				// New log arrived, parse the event and forward to the user
  6738  				event := new(RootChainEventRequestCreated)
  6739  				if err := _RootChainEvent.contract.UnpackLog(event, "RequestCreated", log); err != nil {
  6740  					return err
  6741  				}
  6742  				event.Raw = log
  6743  
  6744  				select {
  6745  				case sink <- event:
  6746  				case err := <-sub.Err():
  6747  					return err
  6748  				case <-quit:
  6749  					return nil
  6750  				}
  6751  			case err := <-sub.Err():
  6752  				return err
  6753  			case <-quit:
  6754  				return nil
  6755  			}
  6756  		}
  6757  	}), nil
  6758  }
  6759  
  6760  // ParseRequestCreated is a log parse operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
  6761  //
  6762  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
  6763  func (_RootChainEvent *RootChainEventFilterer) ParseRequestCreated(log types.Log) (*RootChainEventRequestCreated, error) {
  6764  	event := new(RootChainEventRequestCreated)
  6765  	if err := _RootChainEvent.contract.UnpackLog(event, "RequestCreated", log); err != nil {
  6766  		return nil, err
  6767  	}
  6768  	return event, nil
  6769  }
  6770  
  6771  // RootChainEventRequestFinalizedIterator is returned from FilterRequestFinalized and is used to iterate over the raw logs and unpacked data for RequestFinalized events raised by the RootChainEvent contract.
  6772  type RootChainEventRequestFinalizedIterator struct {
  6773  	Event *RootChainEventRequestFinalized // Event containing the contract specifics and raw log
  6774  
  6775  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6776  	event    string              // Event name to use for unpacking event data
  6777  
  6778  	logs chan types.Log        // Log channel receiving the found contract events
  6779  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6780  	done bool                  // Whether the subscription completed delivering logs
  6781  	fail error                 // Occurred error to stop iteration
  6782  }
  6783  
  6784  // Next advances the iterator to the subsequent event, returning whether there
  6785  // are any more events found. In case of a retrieval or parsing error, false is
  6786  // returned and Error() can be queried for the exact failure.
  6787  func (it *RootChainEventRequestFinalizedIterator) Next() bool {
  6788  	// If the iterator failed, stop iterating
  6789  	if it.fail != nil {
  6790  		return false
  6791  	}
  6792  	// If the iterator completed, deliver directly whatever's available
  6793  	if it.done {
  6794  		select {
  6795  		case log := <-it.logs:
  6796  			it.Event = new(RootChainEventRequestFinalized)
  6797  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6798  				it.fail = err
  6799  				return false
  6800  			}
  6801  			it.Event.Raw = log
  6802  			return true
  6803  
  6804  		default:
  6805  			return false
  6806  		}
  6807  	}
  6808  	// Iterator still in progress, wait for either a data or an error event
  6809  	select {
  6810  	case log := <-it.logs:
  6811  		it.Event = new(RootChainEventRequestFinalized)
  6812  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6813  			it.fail = err
  6814  			return false
  6815  		}
  6816  		it.Event.Raw = log
  6817  		return true
  6818  
  6819  	case err := <-it.sub.Err():
  6820  		it.done = true
  6821  		it.fail = err
  6822  		return it.Next()
  6823  	}
  6824  }
  6825  
  6826  // Error returns any retrieval or parsing error occurred during filtering.
  6827  func (it *RootChainEventRequestFinalizedIterator) Error() error {
  6828  	return it.fail
  6829  }
  6830  
  6831  // Close terminates the iteration process, releasing any pending underlying
  6832  // resources.
  6833  func (it *RootChainEventRequestFinalizedIterator) Close() error {
  6834  	it.sub.Unsubscribe()
  6835  	return nil
  6836  }
  6837  
  6838  // RootChainEventRequestFinalized represents a RequestFinalized event raised by the RootChainEvent contract.
  6839  type RootChainEventRequestFinalized struct {
  6840  	RequestId     *big.Int
  6841  	UserActivated bool
  6842  	Raw           types.Log // Blockchain specific contextual infos
  6843  }
  6844  
  6845  // FilterRequestFinalized is a free log retrieval operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
  6846  //
  6847  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
  6848  func (_RootChainEvent *RootChainEventFilterer) FilterRequestFinalized(opts *bind.FilterOpts) (*RootChainEventRequestFinalizedIterator, error) {
  6849  
  6850  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "RequestFinalized")
  6851  	if err != nil {
  6852  		return nil, err
  6853  	}
  6854  	return &RootChainEventRequestFinalizedIterator{contract: _RootChainEvent.contract, event: "RequestFinalized", logs: logs, sub: sub}, nil
  6855  }
  6856  
  6857  // WatchRequestFinalized is a free log subscription operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
  6858  //
  6859  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
  6860  func (_RootChainEvent *RootChainEventFilterer) WatchRequestFinalized(opts *bind.WatchOpts, sink chan<- *RootChainEventRequestFinalized) (event.Subscription, error) {
  6861  
  6862  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "RequestFinalized")
  6863  	if err != nil {
  6864  		return nil, err
  6865  	}
  6866  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6867  		defer sub.Unsubscribe()
  6868  		for {
  6869  			select {
  6870  			case log := <-logs:
  6871  				// New log arrived, parse the event and forward to the user
  6872  				event := new(RootChainEventRequestFinalized)
  6873  				if err := _RootChainEvent.contract.UnpackLog(event, "RequestFinalized", log); err != nil {
  6874  					return err
  6875  				}
  6876  				event.Raw = log
  6877  
  6878  				select {
  6879  				case sink <- event:
  6880  				case err := <-sub.Err():
  6881  					return err
  6882  				case <-quit:
  6883  					return nil
  6884  				}
  6885  			case err := <-sub.Err():
  6886  				return err
  6887  			case <-quit:
  6888  				return nil
  6889  			}
  6890  		}
  6891  	}), nil
  6892  }
  6893  
  6894  // ParseRequestFinalized is a log parse operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
  6895  //
  6896  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
  6897  func (_RootChainEvent *RootChainEventFilterer) ParseRequestFinalized(log types.Log) (*RootChainEventRequestFinalized, error) {
  6898  	event := new(RootChainEventRequestFinalized)
  6899  	if err := _RootChainEvent.contract.UnpackLog(event, "RequestFinalized", log); err != nil {
  6900  		return nil, err
  6901  	}
  6902  	return event, nil
  6903  }
  6904  
  6905  // RootChainEventRequestableContractMappedIterator is returned from FilterRequestableContractMapped and is used to iterate over the raw logs and unpacked data for RequestableContractMapped events raised by the RootChainEvent contract.
  6906  type RootChainEventRequestableContractMappedIterator struct {
  6907  	Event *RootChainEventRequestableContractMapped // Event containing the contract specifics and raw log
  6908  
  6909  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6910  	event    string              // Event name to use for unpacking event data
  6911  
  6912  	logs chan types.Log        // Log channel receiving the found contract events
  6913  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6914  	done bool                  // Whether the subscription completed delivering logs
  6915  	fail error                 // Occurred error to stop iteration
  6916  }
  6917  
  6918  // Next advances the iterator to the subsequent event, returning whether there
  6919  // are any more events found. In case of a retrieval or parsing error, false is
  6920  // returned and Error() can be queried for the exact failure.
  6921  func (it *RootChainEventRequestableContractMappedIterator) Next() bool {
  6922  	// If the iterator failed, stop iterating
  6923  	if it.fail != nil {
  6924  		return false
  6925  	}
  6926  	// If the iterator completed, deliver directly whatever's available
  6927  	if it.done {
  6928  		select {
  6929  		case log := <-it.logs:
  6930  			it.Event = new(RootChainEventRequestableContractMapped)
  6931  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6932  				it.fail = err
  6933  				return false
  6934  			}
  6935  			it.Event.Raw = log
  6936  			return true
  6937  
  6938  		default:
  6939  			return false
  6940  		}
  6941  	}
  6942  	// Iterator still in progress, wait for either a data or an error event
  6943  	select {
  6944  	case log := <-it.logs:
  6945  		it.Event = new(RootChainEventRequestableContractMapped)
  6946  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6947  			it.fail = err
  6948  			return false
  6949  		}
  6950  		it.Event.Raw = log
  6951  		return true
  6952  
  6953  	case err := <-it.sub.Err():
  6954  		it.done = true
  6955  		it.fail = err
  6956  		return it.Next()
  6957  	}
  6958  }
  6959  
  6960  // Error returns any retrieval or parsing error occurred during filtering.
  6961  func (it *RootChainEventRequestableContractMappedIterator) Error() error {
  6962  	return it.fail
  6963  }
  6964  
  6965  // Close terminates the iteration process, releasing any pending underlying
  6966  // resources.
  6967  func (it *RootChainEventRequestableContractMappedIterator) Close() error {
  6968  	it.sub.Unsubscribe()
  6969  	return nil
  6970  }
  6971  
  6972  // RootChainEventRequestableContractMapped represents a RequestableContractMapped event raised by the RootChainEvent contract.
  6973  type RootChainEventRequestableContractMapped struct {
  6974  	ContractInRootchain  common.Address
  6975  	ContractInChildchain common.Address
  6976  	Raw                  types.Log // Blockchain specific contextual infos
  6977  }
  6978  
  6979  // FilterRequestableContractMapped is a free log retrieval operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
  6980  //
  6981  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
  6982  func (_RootChainEvent *RootChainEventFilterer) FilterRequestableContractMapped(opts *bind.FilterOpts) (*RootChainEventRequestableContractMappedIterator, error) {
  6983  
  6984  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "RequestableContractMapped")
  6985  	if err != nil {
  6986  		return nil, err
  6987  	}
  6988  	return &RootChainEventRequestableContractMappedIterator{contract: _RootChainEvent.contract, event: "RequestableContractMapped", logs: logs, sub: sub}, nil
  6989  }
  6990  
  6991  // WatchRequestableContractMapped is a free log subscription operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
  6992  //
  6993  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
  6994  func (_RootChainEvent *RootChainEventFilterer) WatchRequestableContractMapped(opts *bind.WatchOpts, sink chan<- *RootChainEventRequestableContractMapped) (event.Subscription, error) {
  6995  
  6996  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "RequestableContractMapped")
  6997  	if err != nil {
  6998  		return nil, err
  6999  	}
  7000  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7001  		defer sub.Unsubscribe()
  7002  		for {
  7003  			select {
  7004  			case log := <-logs:
  7005  				// New log arrived, parse the event and forward to the user
  7006  				event := new(RootChainEventRequestableContractMapped)
  7007  				if err := _RootChainEvent.contract.UnpackLog(event, "RequestableContractMapped", log); err != nil {
  7008  					return err
  7009  				}
  7010  				event.Raw = log
  7011  
  7012  				select {
  7013  				case sink <- event:
  7014  				case err := <-sub.Err():
  7015  					return err
  7016  				case <-quit:
  7017  					return nil
  7018  				}
  7019  			case err := <-sub.Err():
  7020  				return err
  7021  			case <-quit:
  7022  				return nil
  7023  			}
  7024  		}
  7025  	}), nil
  7026  }
  7027  
  7028  // ParseRequestableContractMapped is a log parse operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
  7029  //
  7030  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
  7031  func (_RootChainEvent *RootChainEventFilterer) ParseRequestableContractMapped(log types.Log) (*RootChainEventRequestableContractMapped, error) {
  7032  	event := new(RootChainEventRequestableContractMapped)
  7033  	if err := _RootChainEvent.contract.UnpackLog(event, "RequestableContractMapped", log); err != nil {
  7034  		return nil, err
  7035  	}
  7036  	return event, nil
  7037  }
  7038  
  7039  // RootChainEventSessionTimeoutIterator is returned from FilterSessionTimeout and is used to iterate over the raw logs and unpacked data for SessionTimeout events raised by the RootChainEvent contract.
  7040  type RootChainEventSessionTimeoutIterator struct {
  7041  	Event *RootChainEventSessionTimeout // Event containing the contract specifics and raw log
  7042  
  7043  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7044  	event    string              // Event name to use for unpacking event data
  7045  
  7046  	logs chan types.Log        // Log channel receiving the found contract events
  7047  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  7048  	done bool                  // Whether the subscription completed delivering logs
  7049  	fail error                 // Occurred error to stop iteration
  7050  }
  7051  
  7052  // Next advances the iterator to the subsequent event, returning whether there
  7053  // are any more events found. In case of a retrieval or parsing error, false is
  7054  // returned and Error() can be queried for the exact failure.
  7055  func (it *RootChainEventSessionTimeoutIterator) Next() bool {
  7056  	// If the iterator failed, stop iterating
  7057  	if it.fail != nil {
  7058  		return false
  7059  	}
  7060  	// If the iterator completed, deliver directly whatever's available
  7061  	if it.done {
  7062  		select {
  7063  		case log := <-it.logs:
  7064  			it.Event = new(RootChainEventSessionTimeout)
  7065  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7066  				it.fail = err
  7067  				return false
  7068  			}
  7069  			it.Event.Raw = log
  7070  			return true
  7071  
  7072  		default:
  7073  			return false
  7074  		}
  7075  	}
  7076  	// Iterator still in progress, wait for either a data or an error event
  7077  	select {
  7078  	case log := <-it.logs:
  7079  		it.Event = new(RootChainEventSessionTimeout)
  7080  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7081  			it.fail = err
  7082  			return false
  7083  		}
  7084  		it.Event.Raw = log
  7085  		return true
  7086  
  7087  	case err := <-it.sub.Err():
  7088  		it.done = true
  7089  		it.fail = err
  7090  		return it.Next()
  7091  	}
  7092  }
  7093  
  7094  // Error returns any retrieval or parsing error occurred during filtering.
  7095  func (it *RootChainEventSessionTimeoutIterator) Error() error {
  7096  	return it.fail
  7097  }
  7098  
  7099  // Close terminates the iteration process, releasing any pending underlying
  7100  // resources.
  7101  func (it *RootChainEventSessionTimeoutIterator) Close() error {
  7102  	it.sub.Unsubscribe()
  7103  	return nil
  7104  }
  7105  
  7106  // RootChainEventSessionTimeout represents a SessionTimeout event raised by the RootChainEvent contract.
  7107  type RootChainEventSessionTimeout struct {
  7108  	UserActivated bool
  7109  	Raw           types.Log // Blockchain specific contextual infos
  7110  }
  7111  
  7112  // FilterSessionTimeout is a free log retrieval operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
  7113  //
  7114  // Solidity: event SessionTimeout(bool userActivated)
  7115  func (_RootChainEvent *RootChainEventFilterer) FilterSessionTimeout(opts *bind.FilterOpts) (*RootChainEventSessionTimeoutIterator, error) {
  7116  
  7117  	logs, sub, err := _RootChainEvent.contract.FilterLogs(opts, "SessionTimeout")
  7118  	if err != nil {
  7119  		return nil, err
  7120  	}
  7121  	return &RootChainEventSessionTimeoutIterator{contract: _RootChainEvent.contract, event: "SessionTimeout", logs: logs, sub: sub}, nil
  7122  }
  7123  
  7124  // WatchSessionTimeout is a free log subscription operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
  7125  //
  7126  // Solidity: event SessionTimeout(bool userActivated)
  7127  func (_RootChainEvent *RootChainEventFilterer) WatchSessionTimeout(opts *bind.WatchOpts, sink chan<- *RootChainEventSessionTimeout) (event.Subscription, error) {
  7128  
  7129  	logs, sub, err := _RootChainEvent.contract.WatchLogs(opts, "SessionTimeout")
  7130  	if err != nil {
  7131  		return nil, err
  7132  	}
  7133  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7134  		defer sub.Unsubscribe()
  7135  		for {
  7136  			select {
  7137  			case log := <-logs:
  7138  				// New log arrived, parse the event and forward to the user
  7139  				event := new(RootChainEventSessionTimeout)
  7140  				if err := _RootChainEvent.contract.UnpackLog(event, "SessionTimeout", log); err != nil {
  7141  					return err
  7142  				}
  7143  				event.Raw = log
  7144  
  7145  				select {
  7146  				case sink <- event:
  7147  				case err := <-sub.Err():
  7148  					return err
  7149  				case <-quit:
  7150  					return nil
  7151  				}
  7152  			case err := <-sub.Err():
  7153  				return err
  7154  			case <-quit:
  7155  				return nil
  7156  			}
  7157  		}
  7158  	}), nil
  7159  }
  7160  
  7161  // ParseSessionTimeout is a log parse operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
  7162  //
  7163  // Solidity: event SessionTimeout(bool userActivated)
  7164  func (_RootChainEvent *RootChainEventFilterer) ParseSessionTimeout(log types.Log) (*RootChainEventSessionTimeout, error) {
  7165  	event := new(RootChainEventSessionTimeout)
  7166  	if err := _RootChainEvent.contract.UnpackLog(event, "SessionTimeout", log); err != nil {
  7167  		return nil, err
  7168  	}
  7169  	return event, nil
  7170  }
  7171  
  7172  // RootChainStorageABI is the input ABI used to generate the binding from.
  7173  const RootChainStorageABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"COST_ERO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ERU\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_NRB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ORB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_URB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_URB_PREPARE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_COMPUTATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_EXIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_WITHHOLDING\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EROIdToFinalize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"EROs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransfer\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finalized\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"challenged\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"addresspayable\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ERUIdToFinalize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ERUs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransfer\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finalized\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"challenged\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"addresspayable\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NRELength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ORBs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"numEnter\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"epochNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestEnd\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"trie\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PREPARE_TIMEOUT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"REQUEST_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"URBs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"numEnter\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"epochNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestEnd\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"trie\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"development\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"epochHandler\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"etherToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"firstFilledORENumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"firstNonEmptyRequestEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"forks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"forkedBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastFinalizedEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastFinalizedBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstEnterEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastEnterEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextBlockToRebase\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"rebased\",\"type\":\"bool\"}],\"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\":[],\"name\":\"lastAppliedBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastAppliedEpochNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastAppliedForkNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lastNonEmptyRequestEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numEnterForORB\",\"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\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"requestableContracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submitHandler\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  7174  
  7175  // RootChainStorageFuncSigs maps the 4-byte function signature to its string representation.
  7176  var RootChainStorageFuncSigs = map[string]string{
  7177  	"d691acd8": "COST_ERO()",
  7178  	"8b5172d0": "COST_ERU()",
  7179  	"94be3aa5": "COST_NRB()",
  7180  	"b2ae9ba8": "COST_ORB()",
  7181  	"192adc5b": "COST_URB()",
  7182  	"033cfbed": "COST_URB_PREPARE()",
  7183  	"08c4fff0": "CP_COMPUTATION()",
  7184  	"8155717d": "CP_EXIT()",
  7185  	"b17fa6e9": "CP_WITHHOLDING()",
  7186  	"2dc6bb7b": "EROIdToFinalize()",
  7187  	"b443f3cc": "EROs(uint256)",
  7188  	"c54626cc": "ERUIdToFinalize()",
  7189  	"f4f31de4": "ERUs(uint256)",
  7190  	"ab96da2d": "NRELength()",
  7191  	"de0ce17d": "NULL_ADDRESS()",
  7192  	"ea7f22a8": "ORBs(uint256)",
  7193  	"c2bc88fa": "PREPARE_TIMEOUT()",
  7194  	"8eb288ca": "REQUEST_GAS()",
  7195  	"c0e86064": "URBs(uint256)",
  7196  	"183d2d1c": "currentFork()",
  7197  	"7b929c27": "development()",
  7198  	"e7b88b80": "epochHandler()",
  7199  	"b8066bcb": "etherToken()",
  7200  	"72ecb9a8": "firstFilledORENumber(uint256)",
  7201  	"ca6f6380": "firstNonEmptyRequestEpoch(uint256)",
  7202  	"4ba3a126": "forks(uint256)",
  7203  	"420bb4b8": "isRootChain()",
  7204  	"fb788a27": "lastAppliedBlockNumber()",
  7205  	"c8ad329f": "lastAppliedEpochNumber()",
  7206  	"164bc2ae": "lastAppliedForkNumber()",
  7207  	"b6715647": "lastNonEmptyRequestEpoch(uint256)",
  7208  	"23691566": "numEnterForORB()",
  7209  	"570ca735": "operator()",
  7210  	"da0185f8": "requestableContracts(address)",
  7211  	"6fb7f558": "seigManager()",
  7212  	"e259faf7": "submitHandler()",
  7213  }
  7214  
  7215  // RootChainStorageBin is the compiled bytecode used for deploying new contracts.
  7216  var RootChainStorageBin = "0x608060405234801561001057600080fd5b50610955806100206000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063b17fa6e911610125578063ca6f6380116100ad578063e259faf71161007c578063e259faf714610595578063e7b88b801461059d578063ea7f22a8146105a5578063f4f31de4146105c2578063fb788a27146105df5761021c565b8063ca6f63801461054a578063d691acd814610221578063da0185f814610567578063de0ce17d1461058d5761021c565b8063b8066bcb116100f4578063b8066bcb146104c1578063c0e86064146104c9578063c2bc88fa14610532578063c54626cc1461053a578063c8ad329f146105425761021c565b8063b17fa6e91461038c578063b2ae9ba814610221578063b443f3cc14610394578063b6715647146104a45761021c565b8063570ca735116101a85780638155717d116101775780638155717d1461036c5780638b5172d0146103745780638eb288ca1461037c57806394be3aa514610221578063ab96da2d146103845761021c565b8063570ca7351461031b5780636fb7f5581461033f57806372ecb9a8146103475780637b929c27146103645761021c565b8063192adc5b116101ef578063192adc5b14610253578063236915661461025b5780632dc6bb7b14610263578063420bb4b81461026b5780634ba3a126146102875761021c565b8063033cfbed1461022157806308c4fff01461023b578063164bc2ae14610243578063183d2d1c1461024b575b600080fd5b6102296105e7565b60408051918252519081900360200190f35b6102296105f1565b6102296105f6565b6102296105fc565b610229610602565b61022961060c565b610229610612565b610273610618565b604080519115158252519081900360200190f35b6102a46004803603602081101561029d57600080fd5b503561061d565b6040805167ffffffffffffffff9d8e1681529b8d1660208d0152998c168b8b0152978b1660608b0152958a1660808a015293891660a089015291881660c0880152871660e0870152861661010086015285166101208501529093166101408301529115156101608201529051908190036101800190f35b610323610695565b604080516001600160a01b039092168252519081900360200190f35b6103236106a9565b6102296004803603602081101561035d57600080fd5b50356106b8565b6102736106ca565b6102296106d3565b6102296106d8565b6102296106e2565b6102296106e9565b6102296106ef565b6103b1600480360360208110156103aa57600080fd5b50356106f4565b6040805167ffffffffffffffff8d1681528b15156020808301919091528b151592820192909252891515606082015288151560808201526001600160801b03881660a08201526001600160a01b0380881660c0830152861660e082015261010081018590526101208101849052610160610140820181815284519183019190915283519192909161018084019185019080838360005b8381101561045f578181015183820152602001610447565b50505050905090810190601f16801561048c5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390f35b610229600480360360208110156104ba57600080fd5b5035610816565b610323610828565b6104e6600480360360208110156104df57600080fd5b5035610837565b60408051961515875267ffffffffffffffff958616602088015293851686850152918416606086015290921660808401526001600160a01b0390911660a0830152519081900360c00190f35b61022961089f565b6102296108a4565b6102296108aa565b6102296004803603602081101561056057600080fd5b50356108b0565b6103236004803603602081101561057d57600080fd5b50356001600160a01b03166108c2565b6103236108dd565b6103236108e2565b6103236108f1565b6104e6600480360360208110156105bb57600080fd5b5035610900565b6103b1600480360360208110156105d857600080fd5b503561090d565b61022961091a565b6509184e72a00081565b600f81565b60105481565b60065481565b6551dac207a00081565b600d5481565b60135481565b600181565b60086020526000908152604090208054600182015460029092015467ffffffffffffffff80831693600160401b808504831694600160801b808204851695600160c01b92839004861695858116958581048216958482048316959182900483169484841694918204841693908204169160ff9104168c565b60005461010090046001600160a01b031681565b6004546001600160a01b031681565b60076020526000908152604090205481565b60005460ff1681565b600a81565b6512309ce5400081565b620186a081565b60055481565b601481565b6009818154811061070157fe5b6000918252602091829020600691909102018054600180830154600280850154600386015460048701546005880180546040805161010099831615999099026000190190911695909504601f81018b90048b0288018b0190955284875267ffffffffffffffff88169a50600160401b880460ff9081169a600160481b8a0482169a600160501b8b0483169a600160581b810490931699600160601b9093046001600160801b0316986001600160a01b039081169897169690939183018282801561080c5780601f106107e15761010080835404028352916020019161080c565b820191906000526020600020905b8154815290600101906020018083116107ef57829003601f168201915b505050505090508b565b600e6020526000908152604090205481565b6003546001600160a01b031681565b600c818154811061084457fe5b60009182526020909120600290910201805460019091015460ff8216925067ffffffffffffffff6101008304811692600160481b8104821692600160881b9091048216918116906001600160a01b03600160401b9091041686565b603c81565b60145481565b60115481565b600f6020526000908152604090205481565b6015602052600090815260409020546001600160a01b031681565b600081565b6002546001600160a01b031681565b6001546001600160a01b031681565b600b818154811061084457fe5b600a818154811061070157fe5b6012548156fea265627a7a723158208658500c8e7688e6b2b532a144651710b608708a6e1f8775e1e146893a74b19164736f6c634300050c0032"
  7217  
  7218  // DeployRootChainStorage deploys a new Ethereum contract, binding an instance of RootChainStorage to it.
  7219  func DeployRootChainStorage(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RootChainStorage, error) {
  7220  	parsed, err := abi.JSON(strings.NewReader(RootChainStorageABI))
  7221  	if err != nil {
  7222  		return common.Address{}, nil, nil, err
  7223  	}
  7224  
  7225  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RootChainStorageBin), backend)
  7226  	if err != nil {
  7227  		return common.Address{}, nil, nil, err
  7228  	}
  7229  	return address, tx, &RootChainStorage{RootChainStorageCaller: RootChainStorageCaller{contract: contract}, RootChainStorageTransactor: RootChainStorageTransactor{contract: contract}, RootChainStorageFilterer: RootChainStorageFilterer{contract: contract}}, nil
  7230  }
  7231  
  7232  // RootChainStorage is an auto generated Go binding around an Ethereum contract.
  7233  type RootChainStorage struct {
  7234  	RootChainStorageCaller     // Read-only binding to the contract
  7235  	RootChainStorageTransactor // Write-only binding to the contract
  7236  	RootChainStorageFilterer   // Log filterer for contract events
  7237  }
  7238  
  7239  // RootChainStorageCaller is an auto generated read-only Go binding around an Ethereum contract.
  7240  type RootChainStorageCaller struct {
  7241  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7242  }
  7243  
  7244  // RootChainStorageTransactor is an auto generated write-only Go binding around an Ethereum contract.
  7245  type RootChainStorageTransactor struct {
  7246  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7247  }
  7248  
  7249  // RootChainStorageFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  7250  type RootChainStorageFilterer struct {
  7251  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7252  }
  7253  
  7254  // RootChainStorageSession is an auto generated Go binding around an Ethereum contract,
  7255  // with pre-set call and transact options.
  7256  type RootChainStorageSession struct {
  7257  	Contract     *RootChainStorage // Generic contract binding to set the session for
  7258  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  7259  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  7260  }
  7261  
  7262  // RootChainStorageCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  7263  // with pre-set call options.
  7264  type RootChainStorageCallerSession struct {
  7265  	Contract *RootChainStorageCaller // Generic contract caller binding to set the session for
  7266  	CallOpts bind.CallOpts           // Call options to use throughout this session
  7267  }
  7268  
  7269  // RootChainStorageTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  7270  // with pre-set transact options.
  7271  type RootChainStorageTransactorSession struct {
  7272  	Contract     *RootChainStorageTransactor // Generic contract transactor binding to set the session for
  7273  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
  7274  }
  7275  
  7276  // RootChainStorageRaw is an auto generated low-level Go binding around an Ethereum contract.
  7277  type RootChainStorageRaw struct {
  7278  	Contract *RootChainStorage // Generic contract binding to access the raw methods on
  7279  }
  7280  
  7281  // RootChainStorageCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  7282  type RootChainStorageCallerRaw struct {
  7283  	Contract *RootChainStorageCaller // Generic read-only contract binding to access the raw methods on
  7284  }
  7285  
  7286  // RootChainStorageTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  7287  type RootChainStorageTransactorRaw struct {
  7288  	Contract *RootChainStorageTransactor // Generic write-only contract binding to access the raw methods on
  7289  }
  7290  
  7291  // NewRootChainStorage creates a new instance of RootChainStorage, bound to a specific deployed contract.
  7292  func NewRootChainStorage(address common.Address, backend bind.ContractBackend) (*RootChainStorage, error) {
  7293  	contract, err := bindRootChainStorage(address, backend, backend, backend)
  7294  	if err != nil {
  7295  		return nil, err
  7296  	}
  7297  	return &RootChainStorage{RootChainStorageCaller: RootChainStorageCaller{contract: contract}, RootChainStorageTransactor: RootChainStorageTransactor{contract: contract}, RootChainStorageFilterer: RootChainStorageFilterer{contract: contract}}, nil
  7298  }
  7299  
  7300  // NewRootChainStorageCaller creates a new read-only instance of RootChainStorage, bound to a specific deployed contract.
  7301  func NewRootChainStorageCaller(address common.Address, caller bind.ContractCaller) (*RootChainStorageCaller, error) {
  7302  	contract, err := bindRootChainStorage(address, caller, nil, nil)
  7303  	if err != nil {
  7304  		return nil, err
  7305  	}
  7306  	return &RootChainStorageCaller{contract: contract}, nil
  7307  }
  7308  
  7309  // NewRootChainStorageTransactor creates a new write-only instance of RootChainStorage, bound to a specific deployed contract.
  7310  func NewRootChainStorageTransactor(address common.Address, transactor bind.ContractTransactor) (*RootChainStorageTransactor, error) {
  7311  	contract, err := bindRootChainStorage(address, nil, transactor, nil)
  7312  	if err != nil {
  7313  		return nil, err
  7314  	}
  7315  	return &RootChainStorageTransactor{contract: contract}, nil
  7316  }
  7317  
  7318  // NewRootChainStorageFilterer creates a new log filterer instance of RootChainStorage, bound to a specific deployed contract.
  7319  func NewRootChainStorageFilterer(address common.Address, filterer bind.ContractFilterer) (*RootChainStorageFilterer, error) {
  7320  	contract, err := bindRootChainStorage(address, nil, nil, filterer)
  7321  	if err != nil {
  7322  		return nil, err
  7323  	}
  7324  	return &RootChainStorageFilterer{contract: contract}, nil
  7325  }
  7326  
  7327  // bindRootChainStorage binds a generic wrapper to an already deployed contract.
  7328  func bindRootChainStorage(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7329  	parsed, err := abi.JSON(strings.NewReader(RootChainStorageABI))
  7330  	if err != nil {
  7331  		return nil, err
  7332  	}
  7333  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  7334  }
  7335  
  7336  // Call invokes the (constant) contract method with params as input values and
  7337  // sets the output to result. The result type might be a single field for simple
  7338  // returns, a slice of interfaces for anonymous returns and a struct for named
  7339  // returns.
  7340  func (_RootChainStorage *RootChainStorageRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  7341  	return _RootChainStorage.Contract.RootChainStorageCaller.contract.Call(opts, result, method, params...)
  7342  }
  7343  
  7344  // Transfer initiates a plain transaction to move funds to the contract, calling
  7345  // its default method if one is available.
  7346  func (_RootChainStorage *RootChainStorageRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7347  	return _RootChainStorage.Contract.RootChainStorageTransactor.contract.Transfer(opts)
  7348  }
  7349  
  7350  // Transact invokes the (paid) contract method with params as input values.
  7351  func (_RootChainStorage *RootChainStorageRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7352  	return _RootChainStorage.Contract.RootChainStorageTransactor.contract.Transact(opts, method, params...)
  7353  }
  7354  
  7355  // Call invokes the (constant) contract method with params as input values and
  7356  // sets the output to result. The result type might be a single field for simple
  7357  // returns, a slice of interfaces for anonymous returns and a struct for named
  7358  // returns.
  7359  func (_RootChainStorage *RootChainStorageCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  7360  	return _RootChainStorage.Contract.contract.Call(opts, result, method, params...)
  7361  }
  7362  
  7363  // Transfer initiates a plain transaction to move funds to the contract, calling
  7364  // its default method if one is available.
  7365  func (_RootChainStorage *RootChainStorageTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7366  	return _RootChainStorage.Contract.contract.Transfer(opts)
  7367  }
  7368  
  7369  // Transact invokes the (paid) contract method with params as input values.
  7370  func (_RootChainStorage *RootChainStorageTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7371  	return _RootChainStorage.Contract.contract.Transact(opts, method, params...)
  7372  }
  7373  
  7374  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  7375  //
  7376  // Solidity: function COST_ERO() constant returns(uint256)
  7377  func (_RootChainStorage *RootChainStorageCaller) COSTERO(opts *bind.CallOpts) (*big.Int, error) {
  7378  	var (
  7379  		ret0 = new(*big.Int)
  7380  	)
  7381  	out := ret0
  7382  	err := _RootChainStorage.contract.Call(opts, out, "COST_ERO")
  7383  	return *ret0, err
  7384  }
  7385  
  7386  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  7387  //
  7388  // Solidity: function COST_ERO() constant returns(uint256)
  7389  func (_RootChainStorage *RootChainStorageSession) COSTERO() (*big.Int, error) {
  7390  	return _RootChainStorage.Contract.COSTERO(&_RootChainStorage.CallOpts)
  7391  }
  7392  
  7393  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  7394  //
  7395  // Solidity: function COST_ERO() constant returns(uint256)
  7396  func (_RootChainStorage *RootChainStorageCallerSession) COSTERO() (*big.Int, error) {
  7397  	return _RootChainStorage.Contract.COSTERO(&_RootChainStorage.CallOpts)
  7398  }
  7399  
  7400  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  7401  //
  7402  // Solidity: function COST_ERU() constant returns(uint256)
  7403  func (_RootChainStorage *RootChainStorageCaller) COSTERU(opts *bind.CallOpts) (*big.Int, error) {
  7404  	var (
  7405  		ret0 = new(*big.Int)
  7406  	)
  7407  	out := ret0
  7408  	err := _RootChainStorage.contract.Call(opts, out, "COST_ERU")
  7409  	return *ret0, err
  7410  }
  7411  
  7412  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  7413  //
  7414  // Solidity: function COST_ERU() constant returns(uint256)
  7415  func (_RootChainStorage *RootChainStorageSession) COSTERU() (*big.Int, error) {
  7416  	return _RootChainStorage.Contract.COSTERU(&_RootChainStorage.CallOpts)
  7417  }
  7418  
  7419  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  7420  //
  7421  // Solidity: function COST_ERU() constant returns(uint256)
  7422  func (_RootChainStorage *RootChainStorageCallerSession) COSTERU() (*big.Int, error) {
  7423  	return _RootChainStorage.Contract.COSTERU(&_RootChainStorage.CallOpts)
  7424  }
  7425  
  7426  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  7427  //
  7428  // Solidity: function COST_NRB() constant returns(uint256)
  7429  func (_RootChainStorage *RootChainStorageCaller) COSTNRB(opts *bind.CallOpts) (*big.Int, error) {
  7430  	var (
  7431  		ret0 = new(*big.Int)
  7432  	)
  7433  	out := ret0
  7434  	err := _RootChainStorage.contract.Call(opts, out, "COST_NRB")
  7435  	return *ret0, err
  7436  }
  7437  
  7438  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  7439  //
  7440  // Solidity: function COST_NRB() constant returns(uint256)
  7441  func (_RootChainStorage *RootChainStorageSession) COSTNRB() (*big.Int, error) {
  7442  	return _RootChainStorage.Contract.COSTNRB(&_RootChainStorage.CallOpts)
  7443  }
  7444  
  7445  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  7446  //
  7447  // Solidity: function COST_NRB() constant returns(uint256)
  7448  func (_RootChainStorage *RootChainStorageCallerSession) COSTNRB() (*big.Int, error) {
  7449  	return _RootChainStorage.Contract.COSTNRB(&_RootChainStorage.CallOpts)
  7450  }
  7451  
  7452  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  7453  //
  7454  // Solidity: function COST_ORB() constant returns(uint256)
  7455  func (_RootChainStorage *RootChainStorageCaller) COSTORB(opts *bind.CallOpts) (*big.Int, error) {
  7456  	var (
  7457  		ret0 = new(*big.Int)
  7458  	)
  7459  	out := ret0
  7460  	err := _RootChainStorage.contract.Call(opts, out, "COST_ORB")
  7461  	return *ret0, err
  7462  }
  7463  
  7464  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  7465  //
  7466  // Solidity: function COST_ORB() constant returns(uint256)
  7467  func (_RootChainStorage *RootChainStorageSession) COSTORB() (*big.Int, error) {
  7468  	return _RootChainStorage.Contract.COSTORB(&_RootChainStorage.CallOpts)
  7469  }
  7470  
  7471  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  7472  //
  7473  // Solidity: function COST_ORB() constant returns(uint256)
  7474  func (_RootChainStorage *RootChainStorageCallerSession) COSTORB() (*big.Int, error) {
  7475  	return _RootChainStorage.Contract.COSTORB(&_RootChainStorage.CallOpts)
  7476  }
  7477  
  7478  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  7479  //
  7480  // Solidity: function COST_URB() constant returns(uint256)
  7481  func (_RootChainStorage *RootChainStorageCaller) COSTURB(opts *bind.CallOpts) (*big.Int, error) {
  7482  	var (
  7483  		ret0 = new(*big.Int)
  7484  	)
  7485  	out := ret0
  7486  	err := _RootChainStorage.contract.Call(opts, out, "COST_URB")
  7487  	return *ret0, err
  7488  }
  7489  
  7490  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  7491  //
  7492  // Solidity: function COST_URB() constant returns(uint256)
  7493  func (_RootChainStorage *RootChainStorageSession) COSTURB() (*big.Int, error) {
  7494  	return _RootChainStorage.Contract.COSTURB(&_RootChainStorage.CallOpts)
  7495  }
  7496  
  7497  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  7498  //
  7499  // Solidity: function COST_URB() constant returns(uint256)
  7500  func (_RootChainStorage *RootChainStorageCallerSession) COSTURB() (*big.Int, error) {
  7501  	return _RootChainStorage.Contract.COSTURB(&_RootChainStorage.CallOpts)
  7502  }
  7503  
  7504  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  7505  //
  7506  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  7507  func (_RootChainStorage *RootChainStorageCaller) COSTURBPREPARE(opts *bind.CallOpts) (*big.Int, error) {
  7508  	var (
  7509  		ret0 = new(*big.Int)
  7510  	)
  7511  	out := ret0
  7512  	err := _RootChainStorage.contract.Call(opts, out, "COST_URB_PREPARE")
  7513  	return *ret0, err
  7514  }
  7515  
  7516  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  7517  //
  7518  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  7519  func (_RootChainStorage *RootChainStorageSession) COSTURBPREPARE() (*big.Int, error) {
  7520  	return _RootChainStorage.Contract.COSTURBPREPARE(&_RootChainStorage.CallOpts)
  7521  }
  7522  
  7523  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  7524  //
  7525  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  7526  func (_RootChainStorage *RootChainStorageCallerSession) COSTURBPREPARE() (*big.Int, error) {
  7527  	return _RootChainStorage.Contract.COSTURBPREPARE(&_RootChainStorage.CallOpts)
  7528  }
  7529  
  7530  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  7531  //
  7532  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  7533  func (_RootChainStorage *RootChainStorageCaller) CPCOMPUTATION(opts *bind.CallOpts) (*big.Int, error) {
  7534  	var (
  7535  		ret0 = new(*big.Int)
  7536  	)
  7537  	out := ret0
  7538  	err := _RootChainStorage.contract.Call(opts, out, "CP_COMPUTATION")
  7539  	return *ret0, err
  7540  }
  7541  
  7542  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  7543  //
  7544  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  7545  func (_RootChainStorage *RootChainStorageSession) CPCOMPUTATION() (*big.Int, error) {
  7546  	return _RootChainStorage.Contract.CPCOMPUTATION(&_RootChainStorage.CallOpts)
  7547  }
  7548  
  7549  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  7550  //
  7551  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  7552  func (_RootChainStorage *RootChainStorageCallerSession) CPCOMPUTATION() (*big.Int, error) {
  7553  	return _RootChainStorage.Contract.CPCOMPUTATION(&_RootChainStorage.CallOpts)
  7554  }
  7555  
  7556  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  7557  //
  7558  // Solidity: function CP_EXIT() constant returns(uint256)
  7559  func (_RootChainStorage *RootChainStorageCaller) CPEXIT(opts *bind.CallOpts) (*big.Int, error) {
  7560  	var (
  7561  		ret0 = new(*big.Int)
  7562  	)
  7563  	out := ret0
  7564  	err := _RootChainStorage.contract.Call(opts, out, "CP_EXIT")
  7565  	return *ret0, err
  7566  }
  7567  
  7568  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  7569  //
  7570  // Solidity: function CP_EXIT() constant returns(uint256)
  7571  func (_RootChainStorage *RootChainStorageSession) CPEXIT() (*big.Int, error) {
  7572  	return _RootChainStorage.Contract.CPEXIT(&_RootChainStorage.CallOpts)
  7573  }
  7574  
  7575  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  7576  //
  7577  // Solidity: function CP_EXIT() constant returns(uint256)
  7578  func (_RootChainStorage *RootChainStorageCallerSession) CPEXIT() (*big.Int, error) {
  7579  	return _RootChainStorage.Contract.CPEXIT(&_RootChainStorage.CallOpts)
  7580  }
  7581  
  7582  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  7583  //
  7584  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  7585  func (_RootChainStorage *RootChainStorageCaller) CPWITHHOLDING(opts *bind.CallOpts) (*big.Int, error) {
  7586  	var (
  7587  		ret0 = new(*big.Int)
  7588  	)
  7589  	out := ret0
  7590  	err := _RootChainStorage.contract.Call(opts, out, "CP_WITHHOLDING")
  7591  	return *ret0, err
  7592  }
  7593  
  7594  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  7595  //
  7596  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  7597  func (_RootChainStorage *RootChainStorageSession) CPWITHHOLDING() (*big.Int, error) {
  7598  	return _RootChainStorage.Contract.CPWITHHOLDING(&_RootChainStorage.CallOpts)
  7599  }
  7600  
  7601  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  7602  //
  7603  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  7604  func (_RootChainStorage *RootChainStorageCallerSession) CPWITHHOLDING() (*big.Int, error) {
  7605  	return _RootChainStorage.Contract.CPWITHHOLDING(&_RootChainStorage.CallOpts)
  7606  }
  7607  
  7608  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  7609  //
  7610  // Solidity: function EROIdToFinalize() constant returns(uint256)
  7611  func (_RootChainStorage *RootChainStorageCaller) EROIdToFinalize(opts *bind.CallOpts) (*big.Int, error) {
  7612  	var (
  7613  		ret0 = new(*big.Int)
  7614  	)
  7615  	out := ret0
  7616  	err := _RootChainStorage.contract.Call(opts, out, "EROIdToFinalize")
  7617  	return *ret0, err
  7618  }
  7619  
  7620  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  7621  //
  7622  // Solidity: function EROIdToFinalize() constant returns(uint256)
  7623  func (_RootChainStorage *RootChainStorageSession) EROIdToFinalize() (*big.Int, error) {
  7624  	return _RootChainStorage.Contract.EROIdToFinalize(&_RootChainStorage.CallOpts)
  7625  }
  7626  
  7627  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  7628  //
  7629  // Solidity: function EROIdToFinalize() constant returns(uint256)
  7630  func (_RootChainStorage *RootChainStorageCallerSession) EROIdToFinalize() (*big.Int, error) {
  7631  	return _RootChainStorage.Contract.EROIdToFinalize(&_RootChainStorage.CallOpts)
  7632  }
  7633  
  7634  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  7635  //
  7636  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  7637  func (_RootChainStorage *RootChainStorageCaller) EROs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  7638  	Timestamp  uint64
  7639  	IsExit     bool
  7640  	IsTransfer bool
  7641  	Finalized  bool
  7642  	Challenged bool
  7643  	Value      *big.Int
  7644  	Requestor  common.Address
  7645  	To         common.Address
  7646  	TrieKey    [32]byte
  7647  	Hash       [32]byte
  7648  	TrieValue  []byte
  7649  }, error) {
  7650  	ret := new(struct {
  7651  		Timestamp  uint64
  7652  		IsExit     bool
  7653  		IsTransfer bool
  7654  		Finalized  bool
  7655  		Challenged bool
  7656  		Value      *big.Int
  7657  		Requestor  common.Address
  7658  		To         common.Address
  7659  		TrieKey    [32]byte
  7660  		Hash       [32]byte
  7661  		TrieValue  []byte
  7662  	})
  7663  	out := ret
  7664  	err := _RootChainStorage.contract.Call(opts, out, "EROs", arg0)
  7665  	return *ret, err
  7666  }
  7667  
  7668  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  7669  //
  7670  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  7671  func (_RootChainStorage *RootChainStorageSession) EROs(arg0 *big.Int) (struct {
  7672  	Timestamp  uint64
  7673  	IsExit     bool
  7674  	IsTransfer bool
  7675  	Finalized  bool
  7676  	Challenged bool
  7677  	Value      *big.Int
  7678  	Requestor  common.Address
  7679  	To         common.Address
  7680  	TrieKey    [32]byte
  7681  	Hash       [32]byte
  7682  	TrieValue  []byte
  7683  }, error) {
  7684  	return _RootChainStorage.Contract.EROs(&_RootChainStorage.CallOpts, arg0)
  7685  }
  7686  
  7687  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  7688  //
  7689  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  7690  func (_RootChainStorage *RootChainStorageCallerSession) EROs(arg0 *big.Int) (struct {
  7691  	Timestamp  uint64
  7692  	IsExit     bool
  7693  	IsTransfer bool
  7694  	Finalized  bool
  7695  	Challenged bool
  7696  	Value      *big.Int
  7697  	Requestor  common.Address
  7698  	To         common.Address
  7699  	TrieKey    [32]byte
  7700  	Hash       [32]byte
  7701  	TrieValue  []byte
  7702  }, error) {
  7703  	return _RootChainStorage.Contract.EROs(&_RootChainStorage.CallOpts, arg0)
  7704  }
  7705  
  7706  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  7707  //
  7708  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  7709  func (_RootChainStorage *RootChainStorageCaller) ERUIdToFinalize(opts *bind.CallOpts) (*big.Int, error) {
  7710  	var (
  7711  		ret0 = new(*big.Int)
  7712  	)
  7713  	out := ret0
  7714  	err := _RootChainStorage.contract.Call(opts, out, "ERUIdToFinalize")
  7715  	return *ret0, err
  7716  }
  7717  
  7718  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  7719  //
  7720  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  7721  func (_RootChainStorage *RootChainStorageSession) ERUIdToFinalize() (*big.Int, error) {
  7722  	return _RootChainStorage.Contract.ERUIdToFinalize(&_RootChainStorage.CallOpts)
  7723  }
  7724  
  7725  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  7726  //
  7727  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  7728  func (_RootChainStorage *RootChainStorageCallerSession) ERUIdToFinalize() (*big.Int, error) {
  7729  	return _RootChainStorage.Contract.ERUIdToFinalize(&_RootChainStorage.CallOpts)
  7730  }
  7731  
  7732  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  7733  //
  7734  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  7735  func (_RootChainStorage *RootChainStorageCaller) ERUs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  7736  	Timestamp  uint64
  7737  	IsExit     bool
  7738  	IsTransfer bool
  7739  	Finalized  bool
  7740  	Challenged bool
  7741  	Value      *big.Int
  7742  	Requestor  common.Address
  7743  	To         common.Address
  7744  	TrieKey    [32]byte
  7745  	Hash       [32]byte
  7746  	TrieValue  []byte
  7747  }, error) {
  7748  	ret := new(struct {
  7749  		Timestamp  uint64
  7750  		IsExit     bool
  7751  		IsTransfer bool
  7752  		Finalized  bool
  7753  		Challenged bool
  7754  		Value      *big.Int
  7755  		Requestor  common.Address
  7756  		To         common.Address
  7757  		TrieKey    [32]byte
  7758  		Hash       [32]byte
  7759  		TrieValue  []byte
  7760  	})
  7761  	out := ret
  7762  	err := _RootChainStorage.contract.Call(opts, out, "ERUs", arg0)
  7763  	return *ret, err
  7764  }
  7765  
  7766  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  7767  //
  7768  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  7769  func (_RootChainStorage *RootChainStorageSession) ERUs(arg0 *big.Int) (struct {
  7770  	Timestamp  uint64
  7771  	IsExit     bool
  7772  	IsTransfer bool
  7773  	Finalized  bool
  7774  	Challenged bool
  7775  	Value      *big.Int
  7776  	Requestor  common.Address
  7777  	To         common.Address
  7778  	TrieKey    [32]byte
  7779  	Hash       [32]byte
  7780  	TrieValue  []byte
  7781  }, error) {
  7782  	return _RootChainStorage.Contract.ERUs(&_RootChainStorage.CallOpts, arg0)
  7783  }
  7784  
  7785  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  7786  //
  7787  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  7788  func (_RootChainStorage *RootChainStorageCallerSession) ERUs(arg0 *big.Int) (struct {
  7789  	Timestamp  uint64
  7790  	IsExit     bool
  7791  	IsTransfer bool
  7792  	Finalized  bool
  7793  	Challenged bool
  7794  	Value      *big.Int
  7795  	Requestor  common.Address
  7796  	To         common.Address
  7797  	TrieKey    [32]byte
  7798  	Hash       [32]byte
  7799  	TrieValue  []byte
  7800  }, error) {
  7801  	return _RootChainStorage.Contract.ERUs(&_RootChainStorage.CallOpts, arg0)
  7802  }
  7803  
  7804  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
  7805  //
  7806  // Solidity: function NRELength() constant returns(uint256)
  7807  func (_RootChainStorage *RootChainStorageCaller) NRELength(opts *bind.CallOpts) (*big.Int, error) {
  7808  	var (
  7809  		ret0 = new(*big.Int)
  7810  	)
  7811  	out := ret0
  7812  	err := _RootChainStorage.contract.Call(opts, out, "NRELength")
  7813  	return *ret0, err
  7814  }
  7815  
  7816  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
  7817  //
  7818  // Solidity: function NRELength() constant returns(uint256)
  7819  func (_RootChainStorage *RootChainStorageSession) NRELength() (*big.Int, error) {
  7820  	return _RootChainStorage.Contract.NRELength(&_RootChainStorage.CallOpts)
  7821  }
  7822  
  7823  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
  7824  //
  7825  // Solidity: function NRELength() constant returns(uint256)
  7826  func (_RootChainStorage *RootChainStorageCallerSession) NRELength() (*big.Int, error) {
  7827  	return _RootChainStorage.Contract.NRELength(&_RootChainStorage.CallOpts)
  7828  }
  7829  
  7830  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
  7831  //
  7832  // Solidity: function NULL_ADDRESS() constant returns(address)
  7833  func (_RootChainStorage *RootChainStorageCaller) NULLADDRESS(opts *bind.CallOpts) (common.Address, error) {
  7834  	var (
  7835  		ret0 = new(common.Address)
  7836  	)
  7837  	out := ret0
  7838  	err := _RootChainStorage.contract.Call(opts, out, "NULL_ADDRESS")
  7839  	return *ret0, err
  7840  }
  7841  
  7842  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
  7843  //
  7844  // Solidity: function NULL_ADDRESS() constant returns(address)
  7845  func (_RootChainStorage *RootChainStorageSession) NULLADDRESS() (common.Address, error) {
  7846  	return _RootChainStorage.Contract.NULLADDRESS(&_RootChainStorage.CallOpts)
  7847  }
  7848  
  7849  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
  7850  //
  7851  // Solidity: function NULL_ADDRESS() constant returns(address)
  7852  func (_RootChainStorage *RootChainStorageCallerSession) NULLADDRESS() (common.Address, error) {
  7853  	return _RootChainStorage.Contract.NULLADDRESS(&_RootChainStorage.CallOpts)
  7854  }
  7855  
  7856  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
  7857  //
  7858  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  7859  func (_RootChainStorage *RootChainStorageCaller) ORBs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  7860  	Submitted    bool
  7861  	NumEnter     uint64
  7862  	EpochNumber  uint64
  7863  	RequestStart uint64
  7864  	RequestEnd   uint64
  7865  	Trie         common.Address
  7866  }, error) {
  7867  	ret := new(struct {
  7868  		Submitted    bool
  7869  		NumEnter     uint64
  7870  		EpochNumber  uint64
  7871  		RequestStart uint64
  7872  		RequestEnd   uint64
  7873  		Trie         common.Address
  7874  	})
  7875  	out := ret
  7876  	err := _RootChainStorage.contract.Call(opts, out, "ORBs", arg0)
  7877  	return *ret, err
  7878  }
  7879  
  7880  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
  7881  //
  7882  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  7883  func (_RootChainStorage *RootChainStorageSession) ORBs(arg0 *big.Int) (struct {
  7884  	Submitted    bool
  7885  	NumEnter     uint64
  7886  	EpochNumber  uint64
  7887  	RequestStart uint64
  7888  	RequestEnd   uint64
  7889  	Trie         common.Address
  7890  }, error) {
  7891  	return _RootChainStorage.Contract.ORBs(&_RootChainStorage.CallOpts, arg0)
  7892  }
  7893  
  7894  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
  7895  //
  7896  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  7897  func (_RootChainStorage *RootChainStorageCallerSession) ORBs(arg0 *big.Int) (struct {
  7898  	Submitted    bool
  7899  	NumEnter     uint64
  7900  	EpochNumber  uint64
  7901  	RequestStart uint64
  7902  	RequestEnd   uint64
  7903  	Trie         common.Address
  7904  }, error) {
  7905  	return _RootChainStorage.Contract.ORBs(&_RootChainStorage.CallOpts, arg0)
  7906  }
  7907  
  7908  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
  7909  //
  7910  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
  7911  func (_RootChainStorage *RootChainStorageCaller) PREPARETIMEOUT(opts *bind.CallOpts) (*big.Int, error) {
  7912  	var (
  7913  		ret0 = new(*big.Int)
  7914  	)
  7915  	out := ret0
  7916  	err := _RootChainStorage.contract.Call(opts, out, "PREPARE_TIMEOUT")
  7917  	return *ret0, err
  7918  }
  7919  
  7920  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
  7921  //
  7922  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
  7923  func (_RootChainStorage *RootChainStorageSession) PREPARETIMEOUT() (*big.Int, error) {
  7924  	return _RootChainStorage.Contract.PREPARETIMEOUT(&_RootChainStorage.CallOpts)
  7925  }
  7926  
  7927  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
  7928  //
  7929  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
  7930  func (_RootChainStorage *RootChainStorageCallerSession) PREPARETIMEOUT() (*big.Int, error) {
  7931  	return _RootChainStorage.Contract.PREPARETIMEOUT(&_RootChainStorage.CallOpts)
  7932  }
  7933  
  7934  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
  7935  //
  7936  // Solidity: function REQUEST_GAS() constant returns(uint256)
  7937  func (_RootChainStorage *RootChainStorageCaller) REQUESTGAS(opts *bind.CallOpts) (*big.Int, error) {
  7938  	var (
  7939  		ret0 = new(*big.Int)
  7940  	)
  7941  	out := ret0
  7942  	err := _RootChainStorage.contract.Call(opts, out, "REQUEST_GAS")
  7943  	return *ret0, err
  7944  }
  7945  
  7946  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
  7947  //
  7948  // Solidity: function REQUEST_GAS() constant returns(uint256)
  7949  func (_RootChainStorage *RootChainStorageSession) REQUESTGAS() (*big.Int, error) {
  7950  	return _RootChainStorage.Contract.REQUESTGAS(&_RootChainStorage.CallOpts)
  7951  }
  7952  
  7953  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
  7954  //
  7955  // Solidity: function REQUEST_GAS() constant returns(uint256)
  7956  func (_RootChainStorage *RootChainStorageCallerSession) REQUESTGAS() (*big.Int, error) {
  7957  	return _RootChainStorage.Contract.REQUESTGAS(&_RootChainStorage.CallOpts)
  7958  }
  7959  
  7960  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
  7961  //
  7962  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  7963  func (_RootChainStorage *RootChainStorageCaller) URBs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  7964  	Submitted    bool
  7965  	NumEnter     uint64
  7966  	EpochNumber  uint64
  7967  	RequestStart uint64
  7968  	RequestEnd   uint64
  7969  	Trie         common.Address
  7970  }, error) {
  7971  	ret := new(struct {
  7972  		Submitted    bool
  7973  		NumEnter     uint64
  7974  		EpochNumber  uint64
  7975  		RequestStart uint64
  7976  		RequestEnd   uint64
  7977  		Trie         common.Address
  7978  	})
  7979  	out := ret
  7980  	err := _RootChainStorage.contract.Call(opts, out, "URBs", arg0)
  7981  	return *ret, err
  7982  }
  7983  
  7984  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
  7985  //
  7986  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  7987  func (_RootChainStorage *RootChainStorageSession) URBs(arg0 *big.Int) (struct {
  7988  	Submitted    bool
  7989  	NumEnter     uint64
  7990  	EpochNumber  uint64
  7991  	RequestStart uint64
  7992  	RequestEnd   uint64
  7993  	Trie         common.Address
  7994  }, error) {
  7995  	return _RootChainStorage.Contract.URBs(&_RootChainStorage.CallOpts, arg0)
  7996  }
  7997  
  7998  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
  7999  //
  8000  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
  8001  func (_RootChainStorage *RootChainStorageCallerSession) URBs(arg0 *big.Int) (struct {
  8002  	Submitted    bool
  8003  	NumEnter     uint64
  8004  	EpochNumber  uint64
  8005  	RequestStart uint64
  8006  	RequestEnd   uint64
  8007  	Trie         common.Address
  8008  }, error) {
  8009  	return _RootChainStorage.Contract.URBs(&_RootChainStorage.CallOpts, arg0)
  8010  }
  8011  
  8012  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
  8013  //
  8014  // Solidity: function currentFork() constant returns(uint256)
  8015  func (_RootChainStorage *RootChainStorageCaller) CurrentFork(opts *bind.CallOpts) (*big.Int, error) {
  8016  	var (
  8017  		ret0 = new(*big.Int)
  8018  	)
  8019  	out := ret0
  8020  	err := _RootChainStorage.contract.Call(opts, out, "currentFork")
  8021  	return *ret0, err
  8022  }
  8023  
  8024  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
  8025  //
  8026  // Solidity: function currentFork() constant returns(uint256)
  8027  func (_RootChainStorage *RootChainStorageSession) CurrentFork() (*big.Int, error) {
  8028  	return _RootChainStorage.Contract.CurrentFork(&_RootChainStorage.CallOpts)
  8029  }
  8030  
  8031  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
  8032  //
  8033  // Solidity: function currentFork() constant returns(uint256)
  8034  func (_RootChainStorage *RootChainStorageCallerSession) CurrentFork() (*big.Int, error) {
  8035  	return _RootChainStorage.Contract.CurrentFork(&_RootChainStorage.CallOpts)
  8036  }
  8037  
  8038  // Development is a free data retrieval call binding the contract method 0x7b929c27.
  8039  //
  8040  // Solidity: function development() constant returns(bool)
  8041  func (_RootChainStorage *RootChainStorageCaller) Development(opts *bind.CallOpts) (bool, error) {
  8042  	var (
  8043  		ret0 = new(bool)
  8044  	)
  8045  	out := ret0
  8046  	err := _RootChainStorage.contract.Call(opts, out, "development")
  8047  	return *ret0, err
  8048  }
  8049  
  8050  // Development is a free data retrieval call binding the contract method 0x7b929c27.
  8051  //
  8052  // Solidity: function development() constant returns(bool)
  8053  func (_RootChainStorage *RootChainStorageSession) Development() (bool, error) {
  8054  	return _RootChainStorage.Contract.Development(&_RootChainStorage.CallOpts)
  8055  }
  8056  
  8057  // Development is a free data retrieval call binding the contract method 0x7b929c27.
  8058  //
  8059  // Solidity: function development() constant returns(bool)
  8060  func (_RootChainStorage *RootChainStorageCallerSession) Development() (bool, error) {
  8061  	return _RootChainStorage.Contract.Development(&_RootChainStorage.CallOpts)
  8062  }
  8063  
  8064  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
  8065  //
  8066  // Solidity: function epochHandler() constant returns(address)
  8067  func (_RootChainStorage *RootChainStorageCaller) EpochHandler(opts *bind.CallOpts) (common.Address, error) {
  8068  	var (
  8069  		ret0 = new(common.Address)
  8070  	)
  8071  	out := ret0
  8072  	err := _RootChainStorage.contract.Call(opts, out, "epochHandler")
  8073  	return *ret0, err
  8074  }
  8075  
  8076  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
  8077  //
  8078  // Solidity: function epochHandler() constant returns(address)
  8079  func (_RootChainStorage *RootChainStorageSession) EpochHandler() (common.Address, error) {
  8080  	return _RootChainStorage.Contract.EpochHandler(&_RootChainStorage.CallOpts)
  8081  }
  8082  
  8083  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
  8084  //
  8085  // Solidity: function epochHandler() constant returns(address)
  8086  func (_RootChainStorage *RootChainStorageCallerSession) EpochHandler() (common.Address, error) {
  8087  	return _RootChainStorage.Contract.EpochHandler(&_RootChainStorage.CallOpts)
  8088  }
  8089  
  8090  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
  8091  //
  8092  // Solidity: function etherToken() constant returns(address)
  8093  func (_RootChainStorage *RootChainStorageCaller) EtherToken(opts *bind.CallOpts) (common.Address, error) {
  8094  	var (
  8095  		ret0 = new(common.Address)
  8096  	)
  8097  	out := ret0
  8098  	err := _RootChainStorage.contract.Call(opts, out, "etherToken")
  8099  	return *ret0, err
  8100  }
  8101  
  8102  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
  8103  //
  8104  // Solidity: function etherToken() constant returns(address)
  8105  func (_RootChainStorage *RootChainStorageSession) EtherToken() (common.Address, error) {
  8106  	return _RootChainStorage.Contract.EtherToken(&_RootChainStorage.CallOpts)
  8107  }
  8108  
  8109  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
  8110  //
  8111  // Solidity: function etherToken() constant returns(address)
  8112  func (_RootChainStorage *RootChainStorageCallerSession) EtherToken() (common.Address, error) {
  8113  	return _RootChainStorage.Contract.EtherToken(&_RootChainStorage.CallOpts)
  8114  }
  8115  
  8116  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
  8117  //
  8118  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
  8119  func (_RootChainStorage *RootChainStorageCaller) FirstFilledORENumber(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  8120  	var (
  8121  		ret0 = new(*big.Int)
  8122  	)
  8123  	out := ret0
  8124  	err := _RootChainStorage.contract.Call(opts, out, "firstFilledORENumber", arg0)
  8125  	return *ret0, err
  8126  }
  8127  
  8128  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
  8129  //
  8130  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
  8131  func (_RootChainStorage *RootChainStorageSession) FirstFilledORENumber(arg0 *big.Int) (*big.Int, error) {
  8132  	return _RootChainStorage.Contract.FirstFilledORENumber(&_RootChainStorage.CallOpts, arg0)
  8133  }
  8134  
  8135  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
  8136  //
  8137  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
  8138  func (_RootChainStorage *RootChainStorageCallerSession) FirstFilledORENumber(arg0 *big.Int) (*big.Int, error) {
  8139  	return _RootChainStorage.Contract.FirstFilledORENumber(&_RootChainStorage.CallOpts, arg0)
  8140  }
  8141  
  8142  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
  8143  //
  8144  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  8145  func (_RootChainStorage *RootChainStorageCaller) FirstNonEmptyRequestEpoch(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  8146  	var (
  8147  		ret0 = new(*big.Int)
  8148  	)
  8149  	out := ret0
  8150  	err := _RootChainStorage.contract.Call(opts, out, "firstNonEmptyRequestEpoch", arg0)
  8151  	return *ret0, err
  8152  }
  8153  
  8154  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
  8155  //
  8156  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  8157  func (_RootChainStorage *RootChainStorageSession) FirstNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  8158  	return _RootChainStorage.Contract.FirstNonEmptyRequestEpoch(&_RootChainStorage.CallOpts, arg0)
  8159  }
  8160  
  8161  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
  8162  //
  8163  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  8164  func (_RootChainStorage *RootChainStorageCallerSession) FirstNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  8165  	return _RootChainStorage.Contract.FirstNonEmptyRequestEpoch(&_RootChainStorage.CallOpts, arg0)
  8166  }
  8167  
  8168  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
  8169  //
  8170  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
  8171  func (_RootChainStorage *RootChainStorageCaller) Forks(opts *bind.CallOpts, arg0 *big.Int) (struct {
  8172  	ForkedBlock        uint64
  8173  	FirstEpoch         uint64
  8174  	LastEpoch          uint64
  8175  	FirstBlock         uint64
  8176  	LastBlock          uint64
  8177  	LastFinalizedEpoch uint64
  8178  	LastFinalizedBlock uint64
  8179  	Timestamp          uint64
  8180  	FirstEnterEpoch    uint64
  8181  	LastEnterEpoch     uint64
  8182  	NextBlockToRebase  uint64
  8183  	Rebased            bool
  8184  }, error) {
  8185  	ret := new(struct {
  8186  		ForkedBlock        uint64
  8187  		FirstEpoch         uint64
  8188  		LastEpoch          uint64
  8189  		FirstBlock         uint64
  8190  		LastBlock          uint64
  8191  		LastFinalizedEpoch uint64
  8192  		LastFinalizedBlock uint64
  8193  		Timestamp          uint64
  8194  		FirstEnterEpoch    uint64
  8195  		LastEnterEpoch     uint64
  8196  		NextBlockToRebase  uint64
  8197  		Rebased            bool
  8198  	})
  8199  	out := ret
  8200  	err := _RootChainStorage.contract.Call(opts, out, "forks", arg0)
  8201  	return *ret, err
  8202  }
  8203  
  8204  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
  8205  //
  8206  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
  8207  func (_RootChainStorage *RootChainStorageSession) Forks(arg0 *big.Int) (struct {
  8208  	ForkedBlock        uint64
  8209  	FirstEpoch         uint64
  8210  	LastEpoch          uint64
  8211  	FirstBlock         uint64
  8212  	LastBlock          uint64
  8213  	LastFinalizedEpoch uint64
  8214  	LastFinalizedBlock uint64
  8215  	Timestamp          uint64
  8216  	FirstEnterEpoch    uint64
  8217  	LastEnterEpoch     uint64
  8218  	NextBlockToRebase  uint64
  8219  	Rebased            bool
  8220  }, error) {
  8221  	return _RootChainStorage.Contract.Forks(&_RootChainStorage.CallOpts, arg0)
  8222  }
  8223  
  8224  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
  8225  //
  8226  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
  8227  func (_RootChainStorage *RootChainStorageCallerSession) Forks(arg0 *big.Int) (struct {
  8228  	ForkedBlock        uint64
  8229  	FirstEpoch         uint64
  8230  	LastEpoch          uint64
  8231  	FirstBlock         uint64
  8232  	LastBlock          uint64
  8233  	LastFinalizedEpoch uint64
  8234  	LastFinalizedBlock uint64
  8235  	Timestamp          uint64
  8236  	FirstEnterEpoch    uint64
  8237  	LastEnterEpoch     uint64
  8238  	NextBlockToRebase  uint64
  8239  	Rebased            bool
  8240  }, error) {
  8241  	return _RootChainStorage.Contract.Forks(&_RootChainStorage.CallOpts, arg0)
  8242  }
  8243  
  8244  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
  8245  //
  8246  // Solidity: function isRootChain() constant returns(bool)
  8247  func (_RootChainStorage *RootChainStorageCaller) IsRootChain(opts *bind.CallOpts) (bool, error) {
  8248  	var (
  8249  		ret0 = new(bool)
  8250  	)
  8251  	out := ret0
  8252  	err := _RootChainStorage.contract.Call(opts, out, "isRootChain")
  8253  	return *ret0, err
  8254  }
  8255  
  8256  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
  8257  //
  8258  // Solidity: function isRootChain() constant returns(bool)
  8259  func (_RootChainStorage *RootChainStorageSession) IsRootChain() (bool, error) {
  8260  	return _RootChainStorage.Contract.IsRootChain(&_RootChainStorage.CallOpts)
  8261  }
  8262  
  8263  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
  8264  //
  8265  // Solidity: function isRootChain() constant returns(bool)
  8266  func (_RootChainStorage *RootChainStorageCallerSession) IsRootChain() (bool, error) {
  8267  	return _RootChainStorage.Contract.IsRootChain(&_RootChainStorage.CallOpts)
  8268  }
  8269  
  8270  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
  8271  //
  8272  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
  8273  func (_RootChainStorage *RootChainStorageCaller) LastAppliedBlockNumber(opts *bind.CallOpts) (*big.Int, error) {
  8274  	var (
  8275  		ret0 = new(*big.Int)
  8276  	)
  8277  	out := ret0
  8278  	err := _RootChainStorage.contract.Call(opts, out, "lastAppliedBlockNumber")
  8279  	return *ret0, err
  8280  }
  8281  
  8282  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
  8283  //
  8284  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
  8285  func (_RootChainStorage *RootChainStorageSession) LastAppliedBlockNumber() (*big.Int, error) {
  8286  	return _RootChainStorage.Contract.LastAppliedBlockNumber(&_RootChainStorage.CallOpts)
  8287  }
  8288  
  8289  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
  8290  //
  8291  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
  8292  func (_RootChainStorage *RootChainStorageCallerSession) LastAppliedBlockNumber() (*big.Int, error) {
  8293  	return _RootChainStorage.Contract.LastAppliedBlockNumber(&_RootChainStorage.CallOpts)
  8294  }
  8295  
  8296  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
  8297  //
  8298  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
  8299  func (_RootChainStorage *RootChainStorageCaller) LastAppliedEpochNumber(opts *bind.CallOpts) (*big.Int, error) {
  8300  	var (
  8301  		ret0 = new(*big.Int)
  8302  	)
  8303  	out := ret0
  8304  	err := _RootChainStorage.contract.Call(opts, out, "lastAppliedEpochNumber")
  8305  	return *ret0, err
  8306  }
  8307  
  8308  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
  8309  //
  8310  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
  8311  func (_RootChainStorage *RootChainStorageSession) LastAppliedEpochNumber() (*big.Int, error) {
  8312  	return _RootChainStorage.Contract.LastAppliedEpochNumber(&_RootChainStorage.CallOpts)
  8313  }
  8314  
  8315  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
  8316  //
  8317  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
  8318  func (_RootChainStorage *RootChainStorageCallerSession) LastAppliedEpochNumber() (*big.Int, error) {
  8319  	return _RootChainStorage.Contract.LastAppliedEpochNumber(&_RootChainStorage.CallOpts)
  8320  }
  8321  
  8322  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
  8323  //
  8324  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
  8325  func (_RootChainStorage *RootChainStorageCaller) LastAppliedForkNumber(opts *bind.CallOpts) (*big.Int, error) {
  8326  	var (
  8327  		ret0 = new(*big.Int)
  8328  	)
  8329  	out := ret0
  8330  	err := _RootChainStorage.contract.Call(opts, out, "lastAppliedForkNumber")
  8331  	return *ret0, err
  8332  }
  8333  
  8334  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
  8335  //
  8336  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
  8337  func (_RootChainStorage *RootChainStorageSession) LastAppliedForkNumber() (*big.Int, error) {
  8338  	return _RootChainStorage.Contract.LastAppliedForkNumber(&_RootChainStorage.CallOpts)
  8339  }
  8340  
  8341  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
  8342  //
  8343  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
  8344  func (_RootChainStorage *RootChainStorageCallerSession) LastAppliedForkNumber() (*big.Int, error) {
  8345  	return _RootChainStorage.Contract.LastAppliedForkNumber(&_RootChainStorage.CallOpts)
  8346  }
  8347  
  8348  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
  8349  //
  8350  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  8351  func (_RootChainStorage *RootChainStorageCaller) LastNonEmptyRequestEpoch(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  8352  	var (
  8353  		ret0 = new(*big.Int)
  8354  	)
  8355  	out := ret0
  8356  	err := _RootChainStorage.contract.Call(opts, out, "lastNonEmptyRequestEpoch", arg0)
  8357  	return *ret0, err
  8358  }
  8359  
  8360  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
  8361  //
  8362  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  8363  func (_RootChainStorage *RootChainStorageSession) LastNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  8364  	return _RootChainStorage.Contract.LastNonEmptyRequestEpoch(&_RootChainStorage.CallOpts, arg0)
  8365  }
  8366  
  8367  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
  8368  //
  8369  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
  8370  func (_RootChainStorage *RootChainStorageCallerSession) LastNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
  8371  	return _RootChainStorage.Contract.LastNonEmptyRequestEpoch(&_RootChainStorage.CallOpts, arg0)
  8372  }
  8373  
  8374  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
  8375  //
  8376  // Solidity: function numEnterForORB() constant returns(uint256)
  8377  func (_RootChainStorage *RootChainStorageCaller) NumEnterForORB(opts *bind.CallOpts) (*big.Int, error) {
  8378  	var (
  8379  		ret0 = new(*big.Int)
  8380  	)
  8381  	out := ret0
  8382  	err := _RootChainStorage.contract.Call(opts, out, "numEnterForORB")
  8383  	return *ret0, err
  8384  }
  8385  
  8386  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
  8387  //
  8388  // Solidity: function numEnterForORB() constant returns(uint256)
  8389  func (_RootChainStorage *RootChainStorageSession) NumEnterForORB() (*big.Int, error) {
  8390  	return _RootChainStorage.Contract.NumEnterForORB(&_RootChainStorage.CallOpts)
  8391  }
  8392  
  8393  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
  8394  //
  8395  // Solidity: function numEnterForORB() constant returns(uint256)
  8396  func (_RootChainStorage *RootChainStorageCallerSession) NumEnterForORB() (*big.Int, error) {
  8397  	return _RootChainStorage.Contract.NumEnterForORB(&_RootChainStorage.CallOpts)
  8398  }
  8399  
  8400  // Operator is a free data retrieval call binding the contract method 0x570ca735.
  8401  //
  8402  // Solidity: function operator() constant returns(address)
  8403  func (_RootChainStorage *RootChainStorageCaller) Operator(opts *bind.CallOpts) (common.Address, error) {
  8404  	var (
  8405  		ret0 = new(common.Address)
  8406  	)
  8407  	out := ret0
  8408  	err := _RootChainStorage.contract.Call(opts, out, "operator")
  8409  	return *ret0, err
  8410  }
  8411  
  8412  // Operator is a free data retrieval call binding the contract method 0x570ca735.
  8413  //
  8414  // Solidity: function operator() constant returns(address)
  8415  func (_RootChainStorage *RootChainStorageSession) Operator() (common.Address, error) {
  8416  	return _RootChainStorage.Contract.Operator(&_RootChainStorage.CallOpts)
  8417  }
  8418  
  8419  // Operator is a free data retrieval call binding the contract method 0x570ca735.
  8420  //
  8421  // Solidity: function operator() constant returns(address)
  8422  func (_RootChainStorage *RootChainStorageCallerSession) Operator() (common.Address, error) {
  8423  	return _RootChainStorage.Contract.Operator(&_RootChainStorage.CallOpts)
  8424  }
  8425  
  8426  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
  8427  //
  8428  // Solidity: function requestableContracts(address ) constant returns(address)
  8429  func (_RootChainStorage *RootChainStorageCaller) RequestableContracts(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  8430  	var (
  8431  		ret0 = new(common.Address)
  8432  	)
  8433  	out := ret0
  8434  	err := _RootChainStorage.contract.Call(opts, out, "requestableContracts", arg0)
  8435  	return *ret0, err
  8436  }
  8437  
  8438  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
  8439  //
  8440  // Solidity: function requestableContracts(address ) constant returns(address)
  8441  func (_RootChainStorage *RootChainStorageSession) RequestableContracts(arg0 common.Address) (common.Address, error) {
  8442  	return _RootChainStorage.Contract.RequestableContracts(&_RootChainStorage.CallOpts, arg0)
  8443  }
  8444  
  8445  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
  8446  //
  8447  // Solidity: function requestableContracts(address ) constant returns(address)
  8448  func (_RootChainStorage *RootChainStorageCallerSession) RequestableContracts(arg0 common.Address) (common.Address, error) {
  8449  	return _RootChainStorage.Contract.RequestableContracts(&_RootChainStorage.CallOpts, arg0)
  8450  }
  8451  
  8452  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
  8453  //
  8454  // Solidity: function seigManager() constant returns(address)
  8455  func (_RootChainStorage *RootChainStorageCaller) SeigManager(opts *bind.CallOpts) (common.Address, error) {
  8456  	var (
  8457  		ret0 = new(common.Address)
  8458  	)
  8459  	out := ret0
  8460  	err := _RootChainStorage.contract.Call(opts, out, "seigManager")
  8461  	return *ret0, err
  8462  }
  8463  
  8464  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
  8465  //
  8466  // Solidity: function seigManager() constant returns(address)
  8467  func (_RootChainStorage *RootChainStorageSession) SeigManager() (common.Address, error) {
  8468  	return _RootChainStorage.Contract.SeigManager(&_RootChainStorage.CallOpts)
  8469  }
  8470  
  8471  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
  8472  //
  8473  // Solidity: function seigManager() constant returns(address)
  8474  func (_RootChainStorage *RootChainStorageCallerSession) SeigManager() (common.Address, error) {
  8475  	return _RootChainStorage.Contract.SeigManager(&_RootChainStorage.CallOpts)
  8476  }
  8477  
  8478  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
  8479  //
  8480  // Solidity: function submitHandler() constant returns(address)
  8481  func (_RootChainStorage *RootChainStorageCaller) SubmitHandler(opts *bind.CallOpts) (common.Address, error) {
  8482  	var (
  8483  		ret0 = new(common.Address)
  8484  	)
  8485  	out := ret0
  8486  	err := _RootChainStorage.contract.Call(opts, out, "submitHandler")
  8487  	return *ret0, err
  8488  }
  8489  
  8490  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
  8491  //
  8492  // Solidity: function submitHandler() constant returns(address)
  8493  func (_RootChainStorage *RootChainStorageSession) SubmitHandler() (common.Address, error) {
  8494  	return _RootChainStorage.Contract.SubmitHandler(&_RootChainStorage.CallOpts)
  8495  }
  8496  
  8497  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
  8498  //
  8499  // Solidity: function submitHandler() constant returns(address)
  8500  func (_RootChainStorage *RootChainStorageCallerSession) SubmitHandler() (common.Address, error) {
  8501  	return _RootChainStorage.Contract.SubmitHandler(&_RootChainStorage.CallOpts)
  8502  }
  8503  
  8504  // SafeMathABI is the input ABI used to generate the binding from.
  8505  const SafeMathABI = "[]"
  8506  
  8507  // SafeMathBin is the compiled bytecode used for deploying new contracts.
  8508  var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582081abea5b57eb862cc535e559557e86893bc93410acfd1b3122d48a2c0cdee52a64736f6c634300050c0032"
  8509  
  8510  // DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it.
  8511  func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
  8512  	parsed, err := abi.JSON(strings.NewReader(SafeMathABI))
  8513  	if err != nil {
  8514  		return common.Address{}, nil, nil, err
  8515  	}
  8516  
  8517  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend)
  8518  	if err != nil {
  8519  		return common.Address{}, nil, nil, err
  8520  	}
  8521  	return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
  8522  }
  8523  
  8524  // SafeMath is an auto generated Go binding around an Ethereum contract.
  8525  type SafeMath struct {
  8526  	SafeMathCaller     // Read-only binding to the contract
  8527  	SafeMathTransactor // Write-only binding to the contract
  8528  	SafeMathFilterer   // Log filterer for contract events
  8529  }
  8530  
  8531  // SafeMathCaller is an auto generated read-only Go binding around an Ethereum contract.
  8532  type SafeMathCaller struct {
  8533  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8534  }
  8535  
  8536  // SafeMathTransactor is an auto generated write-only Go binding around an Ethereum contract.
  8537  type SafeMathTransactor struct {
  8538  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8539  }
  8540  
  8541  // SafeMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  8542  type SafeMathFilterer struct {
  8543  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8544  }
  8545  
  8546  // SafeMathSession is an auto generated Go binding around an Ethereum contract,
  8547  // with pre-set call and transact options.
  8548  type SafeMathSession struct {
  8549  	Contract     *SafeMath         // Generic contract binding to set the session for
  8550  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  8551  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  8552  }
  8553  
  8554  // SafeMathCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  8555  // with pre-set call options.
  8556  type SafeMathCallerSession struct {
  8557  	Contract *SafeMathCaller // Generic contract caller binding to set the session for
  8558  	CallOpts bind.CallOpts   // Call options to use throughout this session
  8559  }
  8560  
  8561  // SafeMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  8562  // with pre-set transact options.
  8563  type SafeMathTransactorSession struct {
  8564  	Contract     *SafeMathTransactor // Generic contract transactor binding to set the session for
  8565  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  8566  }
  8567  
  8568  // SafeMathRaw is an auto generated low-level Go binding around an Ethereum contract.
  8569  type SafeMathRaw struct {
  8570  	Contract *SafeMath // Generic contract binding to access the raw methods on
  8571  }
  8572  
  8573  // SafeMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  8574  type SafeMathCallerRaw struct {
  8575  	Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on
  8576  }
  8577  
  8578  // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  8579  type SafeMathTransactorRaw struct {
  8580  	Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on
  8581  }
  8582  
  8583  // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract.
  8584  func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) {
  8585  	contract, err := bindSafeMath(address, backend, backend, backend)
  8586  	if err != nil {
  8587  		return nil, err
  8588  	}
  8589  	return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
  8590  }
  8591  
  8592  // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract.
  8593  func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) {
  8594  	contract, err := bindSafeMath(address, caller, nil, nil)
  8595  	if err != nil {
  8596  		return nil, err
  8597  	}
  8598  	return &SafeMathCaller{contract: contract}, nil
  8599  }
  8600  
  8601  // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract.
  8602  func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) {
  8603  	contract, err := bindSafeMath(address, nil, transactor, nil)
  8604  	if err != nil {
  8605  		return nil, err
  8606  	}
  8607  	return &SafeMathTransactor{contract: contract}, nil
  8608  }
  8609  
  8610  // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract.
  8611  func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) {
  8612  	contract, err := bindSafeMath(address, nil, nil, filterer)
  8613  	if err != nil {
  8614  		return nil, err
  8615  	}
  8616  	return &SafeMathFilterer{contract: contract}, nil
  8617  }
  8618  
  8619  // bindSafeMath binds a generic wrapper to an already deployed contract.
  8620  func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  8621  	parsed, err := abi.JSON(strings.NewReader(SafeMathABI))
  8622  	if err != nil {
  8623  		return nil, err
  8624  	}
  8625  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  8626  }
  8627  
  8628  // Call invokes the (constant) contract method with params as input values and
  8629  // sets the output to result. The result type might be a single field for simple
  8630  // returns, a slice of interfaces for anonymous returns and a struct for named
  8631  // returns.
  8632  func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  8633  	return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...)
  8634  }
  8635  
  8636  // Transfer initiates a plain transaction to move funds to the contract, calling
  8637  // its default method if one is available.
  8638  func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8639  	return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts)
  8640  }
  8641  
  8642  // Transact invokes the (paid) contract method with params as input values.
  8643  func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8644  	return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...)
  8645  }
  8646  
  8647  // Call invokes the (constant) contract method with params as input values and
  8648  // sets the output to result. The result type might be a single field for simple
  8649  // returns, a slice of interfaces for anonymous returns and a struct for named
  8650  // returns.
  8651  func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  8652  	return _SafeMath.Contract.contract.Call(opts, result, method, params...)
  8653  }
  8654  
  8655  // Transfer initiates a plain transaction to move funds to the contract, calling
  8656  // its default method if one is available.
  8657  func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8658  	return _SafeMath.Contract.contract.Transfer(opts)
  8659  }
  8660  
  8661  // Transact invokes the (paid) contract method with params as input values.
  8662  func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8663  	return _SafeMath.Contract.contract.Transact(opts, method, params...)
  8664  }
  8665  
  8666  // SeigManagerIABI is the input ABI used to generate the binding from.
  8667  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\"}]"
  8668  
  8669  // SeigManagerIFuncSigs maps the 4-byte function signature to its string representation.
  8670  var SeigManagerIFuncSigs = map[string]string{
  8671  	"8bf91dc4": "DEFAULT_FACTOR()",
  8672  	"48c8577e": "additionalTotBurnAmount(address,address,uint256)",
  8673  	"4c063c19": "coinages(address)",
  8674  	"7b056c1b": "commissionRates(address)",
  8675  	"833a774f": "deployCoinage(address)",
  8676  	"6c7ac9d8": "depositManager()",
  8677  	"c59f1046": "lastCommitBlock(address)",
  8678  	"f35c89e8": "lastSeigBlock()",
  8679  	"359c4d59": "onCommit()",
  8680  	"412c6d50": "onDeposit(address,address,uint256)",
  8681  	"4a393149": "onTransfer(address,address,uint256)",
  8682  	"f850ffaa": "onWithdraw(address,address,uint256)",
  8683  	"32053c99": "pausedBlock()",
  8684  	"3e832e1d": "powerton()",
  8685  	"7b103999": "registry()",
  8686  	"5f40a349": "seigPerBlock()",
  8687  	"4224ed66": "setCommissionRate(address,uint256,bool)",
  8688  	"ce4cb876": "stakeOf(address,address)",
  8689  	"cc48b947": "ton()",
  8690  	"a16d6aa7": "tot()",
  8691  	"fa9789c8": "uncomittedStakeOf(address,address)",
  8692  	"1cc47890": "unpausedBlock()",
  8693  	"8d62d949": "wton()",
  8694  }
  8695  
  8696  // SeigManagerI is an auto generated Go binding around an Ethereum contract.
  8697  type SeigManagerI struct {
  8698  	SeigManagerICaller     // Read-only binding to the contract
  8699  	SeigManagerITransactor // Write-only binding to the contract
  8700  	SeigManagerIFilterer   // Log filterer for contract events
  8701  }
  8702  
  8703  // SeigManagerICaller is an auto generated read-only Go binding around an Ethereum contract.
  8704  type SeigManagerICaller struct {
  8705  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8706  }
  8707  
  8708  // SeigManagerITransactor is an auto generated write-only Go binding around an Ethereum contract.
  8709  type SeigManagerITransactor struct {
  8710  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8711  }
  8712  
  8713  // SeigManagerIFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  8714  type SeigManagerIFilterer struct {
  8715  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8716  }
  8717  
  8718  // SeigManagerISession is an auto generated Go binding around an Ethereum contract,
  8719  // with pre-set call and transact options.
  8720  type SeigManagerISession struct {
  8721  	Contract     *SeigManagerI     // Generic contract binding to set the session for
  8722  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  8723  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  8724  }
  8725  
  8726  // SeigManagerICallerSession is an auto generated read-only Go binding around an Ethereum contract,
  8727  // with pre-set call options.
  8728  type SeigManagerICallerSession struct {
  8729  	Contract *SeigManagerICaller // Generic contract caller binding to set the session for
  8730  	CallOpts bind.CallOpts       // Call options to use throughout this session
  8731  }
  8732  
  8733  // SeigManagerITransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  8734  // with pre-set transact options.
  8735  type SeigManagerITransactorSession struct {
  8736  	Contract     *SeigManagerITransactor // Generic contract transactor binding to set the session for
  8737  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  8738  }
  8739  
  8740  // SeigManagerIRaw is an auto generated low-level Go binding around an Ethereum contract.
  8741  type SeigManagerIRaw struct {
  8742  	Contract *SeigManagerI // Generic contract binding to access the raw methods on
  8743  }
  8744  
  8745  // SeigManagerICallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  8746  type SeigManagerICallerRaw struct {
  8747  	Contract *SeigManagerICaller // Generic read-only contract binding to access the raw methods on
  8748  }
  8749  
  8750  // SeigManagerITransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  8751  type SeigManagerITransactorRaw struct {
  8752  	Contract *SeigManagerITransactor // Generic write-only contract binding to access the raw methods on
  8753  }
  8754  
  8755  // NewSeigManagerI creates a new instance of SeigManagerI, bound to a specific deployed contract.
  8756  func NewSeigManagerI(address common.Address, backend bind.ContractBackend) (*SeigManagerI, error) {
  8757  	contract, err := bindSeigManagerI(address, backend, backend, backend)
  8758  	if err != nil {
  8759  		return nil, err
  8760  	}
  8761  	return &SeigManagerI{SeigManagerICaller: SeigManagerICaller{contract: contract}, SeigManagerITransactor: SeigManagerITransactor{contract: contract}, SeigManagerIFilterer: SeigManagerIFilterer{contract: contract}}, nil
  8762  }
  8763  
  8764  // NewSeigManagerICaller creates a new read-only instance of SeigManagerI, bound to a specific deployed contract.
  8765  func NewSeigManagerICaller(address common.Address, caller bind.ContractCaller) (*SeigManagerICaller, error) {
  8766  	contract, err := bindSeigManagerI(address, caller, nil, nil)
  8767  	if err != nil {
  8768  		return nil, err
  8769  	}
  8770  	return &SeigManagerICaller{contract: contract}, nil
  8771  }
  8772  
  8773  // NewSeigManagerITransactor creates a new write-only instance of SeigManagerI, bound to a specific deployed contract.
  8774  func NewSeigManagerITransactor(address common.Address, transactor bind.ContractTransactor) (*SeigManagerITransactor, error) {
  8775  	contract, err := bindSeigManagerI(address, nil, transactor, nil)
  8776  	if err != nil {
  8777  		return nil, err
  8778  	}
  8779  	return &SeigManagerITransactor{contract: contract}, nil
  8780  }
  8781  
  8782  // NewSeigManagerIFilterer creates a new log filterer instance of SeigManagerI, bound to a specific deployed contract.
  8783  func NewSeigManagerIFilterer(address common.Address, filterer bind.ContractFilterer) (*SeigManagerIFilterer, error) {
  8784  	contract, err := bindSeigManagerI(address, nil, nil, filterer)
  8785  	if err != nil {
  8786  		return nil, err
  8787  	}
  8788  	return &SeigManagerIFilterer{contract: contract}, nil
  8789  }
  8790  
  8791  // bindSeigManagerI binds a generic wrapper to an already deployed contract.
  8792  func bindSeigManagerI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  8793  	parsed, err := abi.JSON(strings.NewReader(SeigManagerIABI))
  8794  	if err != nil {
  8795  		return nil, err
  8796  	}
  8797  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  8798  }
  8799  
  8800  // Call invokes the (constant) contract method with params as input values and
  8801  // sets the output to result. The result type might be a single field for simple
  8802  // returns, a slice of interfaces for anonymous returns and a struct for named
  8803  // returns.
  8804  func (_SeigManagerI *SeigManagerIRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  8805  	return _SeigManagerI.Contract.SeigManagerICaller.contract.Call(opts, result, method, params...)
  8806  }
  8807  
  8808  // Transfer initiates a plain transaction to move funds to the contract, calling
  8809  // its default method if one is available.
  8810  func (_SeigManagerI *SeigManagerIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8811  	return _SeigManagerI.Contract.SeigManagerITransactor.contract.Transfer(opts)
  8812  }
  8813  
  8814  // Transact invokes the (paid) contract method with params as input values.
  8815  func (_SeigManagerI *SeigManagerIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8816  	return _SeigManagerI.Contract.SeigManagerITransactor.contract.Transact(opts, method, params...)
  8817  }
  8818  
  8819  // Call invokes the (constant) contract method with params as input values and
  8820  // sets the output to result. The result type might be a single field for simple
  8821  // returns, a slice of interfaces for anonymous returns and a struct for named
  8822  // returns.
  8823  func (_SeigManagerI *SeigManagerICallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  8824  	return _SeigManagerI.Contract.contract.Call(opts, result, method, params...)
  8825  }
  8826  
  8827  // Transfer initiates a plain transaction to move funds to the contract, calling
  8828  // its default method if one is available.
  8829  func (_SeigManagerI *SeigManagerITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8830  	return _SeigManagerI.Contract.contract.Transfer(opts)
  8831  }
  8832  
  8833  // Transact invokes the (paid) contract method with params as input values.
  8834  func (_SeigManagerI *SeigManagerITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8835  	return _SeigManagerI.Contract.contract.Transact(opts, method, params...)
  8836  }
  8837  
  8838  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
  8839  //
  8840  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
  8841  func (_SeigManagerI *SeigManagerICaller) DEFAULTFACTOR(opts *bind.CallOpts) (*big.Int, error) {
  8842  	var (
  8843  		ret0 = new(*big.Int)
  8844  	)
  8845  	out := ret0
  8846  	err := _SeigManagerI.contract.Call(opts, out, "DEFAULT_FACTOR")
  8847  	return *ret0, err
  8848  }
  8849  
  8850  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
  8851  //
  8852  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
  8853  func (_SeigManagerI *SeigManagerISession) DEFAULTFACTOR() (*big.Int, error) {
  8854  	return _SeigManagerI.Contract.DEFAULTFACTOR(&_SeigManagerI.CallOpts)
  8855  }
  8856  
  8857  // DEFAULTFACTOR is a free data retrieval call binding the contract method 0x8bf91dc4.
  8858  //
  8859  // Solidity: function DEFAULT_FACTOR() constant returns(uint256)
  8860  func (_SeigManagerI *SeigManagerICallerSession) DEFAULTFACTOR() (*big.Int, error) {
  8861  	return _SeigManagerI.Contract.DEFAULTFACTOR(&_SeigManagerI.CallOpts)
  8862  }
  8863  
  8864  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
  8865  //
  8866  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
  8867  func (_SeigManagerI *SeigManagerICaller) AdditionalTotBurnAmount(opts *bind.CallOpts, rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
  8868  	var (
  8869  		ret0 = new(*big.Int)
  8870  	)
  8871  	out := ret0
  8872  	err := _SeigManagerI.contract.Call(opts, out, "additionalTotBurnAmount", rootchain, account, amount)
  8873  	return *ret0, err
  8874  }
  8875  
  8876  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
  8877  //
  8878  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
  8879  func (_SeigManagerI *SeigManagerISession) AdditionalTotBurnAmount(rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
  8880  	return _SeigManagerI.Contract.AdditionalTotBurnAmount(&_SeigManagerI.CallOpts, rootchain, account, amount)
  8881  }
  8882  
  8883  // AdditionalTotBurnAmount is a free data retrieval call binding the contract method 0x48c8577e.
  8884  //
  8885  // Solidity: function additionalTotBurnAmount(address rootchain, address account, uint256 amount) constant returns(uint256 totAmount)
  8886  func (_SeigManagerI *SeigManagerICallerSession) AdditionalTotBurnAmount(rootchain common.Address, account common.Address, amount *big.Int) (*big.Int, error) {
  8887  	return _SeigManagerI.Contract.AdditionalTotBurnAmount(&_SeigManagerI.CallOpts, rootchain, account, amount)
  8888  }
  8889  
  8890  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
  8891  //
  8892  // Solidity: function coinages(address rootchain) constant returns(address)
  8893  func (_SeigManagerI *SeigManagerICaller) Coinages(opts *bind.CallOpts, rootchain common.Address) (common.Address, error) {
  8894  	var (
  8895  		ret0 = new(common.Address)
  8896  	)
  8897  	out := ret0
  8898  	err := _SeigManagerI.contract.Call(opts, out, "coinages", rootchain)
  8899  	return *ret0, err
  8900  }
  8901  
  8902  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
  8903  //
  8904  // Solidity: function coinages(address rootchain) constant returns(address)
  8905  func (_SeigManagerI *SeigManagerISession) Coinages(rootchain common.Address) (common.Address, error) {
  8906  	return _SeigManagerI.Contract.Coinages(&_SeigManagerI.CallOpts, rootchain)
  8907  }
  8908  
  8909  // Coinages is a free data retrieval call binding the contract method 0x4c063c19.
  8910  //
  8911  // Solidity: function coinages(address rootchain) constant returns(address)
  8912  func (_SeigManagerI *SeigManagerICallerSession) Coinages(rootchain common.Address) (common.Address, error) {
  8913  	return _SeigManagerI.Contract.Coinages(&_SeigManagerI.CallOpts, rootchain)
  8914  }
  8915  
  8916  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
  8917  //
  8918  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
  8919  func (_SeigManagerI *SeigManagerICaller) CommissionRates(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
  8920  	var (
  8921  		ret0 = new(*big.Int)
  8922  	)
  8923  	out := ret0
  8924  	err := _SeigManagerI.contract.Call(opts, out, "commissionRates", rootchain)
  8925  	return *ret0, err
  8926  }
  8927  
  8928  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
  8929  //
  8930  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
  8931  func (_SeigManagerI *SeigManagerISession) CommissionRates(rootchain common.Address) (*big.Int, error) {
  8932  	return _SeigManagerI.Contract.CommissionRates(&_SeigManagerI.CallOpts, rootchain)
  8933  }
  8934  
  8935  // CommissionRates is a free data retrieval call binding the contract method 0x7b056c1b.
  8936  //
  8937  // Solidity: function commissionRates(address rootchain) constant returns(uint256)
  8938  func (_SeigManagerI *SeigManagerICallerSession) CommissionRates(rootchain common.Address) (*big.Int, error) {
  8939  	return _SeigManagerI.Contract.CommissionRates(&_SeigManagerI.CallOpts, rootchain)
  8940  }
  8941  
  8942  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
  8943  //
  8944  // Solidity: function depositManager() constant returns(address)
  8945  func (_SeigManagerI *SeigManagerICaller) DepositManager(opts *bind.CallOpts) (common.Address, error) {
  8946  	var (
  8947  		ret0 = new(common.Address)
  8948  	)
  8949  	out := ret0
  8950  	err := _SeigManagerI.contract.Call(opts, out, "depositManager")
  8951  	return *ret0, err
  8952  }
  8953  
  8954  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
  8955  //
  8956  // Solidity: function depositManager() constant returns(address)
  8957  func (_SeigManagerI *SeigManagerISession) DepositManager() (common.Address, error) {
  8958  	return _SeigManagerI.Contract.DepositManager(&_SeigManagerI.CallOpts)
  8959  }
  8960  
  8961  // DepositManager is a free data retrieval call binding the contract method 0x6c7ac9d8.
  8962  //
  8963  // Solidity: function depositManager() constant returns(address)
  8964  func (_SeigManagerI *SeigManagerICallerSession) DepositManager() (common.Address, error) {
  8965  	return _SeigManagerI.Contract.DepositManager(&_SeigManagerI.CallOpts)
  8966  }
  8967  
  8968  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
  8969  //
  8970  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
  8971  func (_SeigManagerI *SeigManagerICaller) LastCommitBlock(opts *bind.CallOpts, rootchain common.Address) (*big.Int, error) {
  8972  	var (
  8973  		ret0 = new(*big.Int)
  8974  	)
  8975  	out := ret0
  8976  	err := _SeigManagerI.contract.Call(opts, out, "lastCommitBlock", rootchain)
  8977  	return *ret0, err
  8978  }
  8979  
  8980  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
  8981  //
  8982  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
  8983  func (_SeigManagerI *SeigManagerISession) LastCommitBlock(rootchain common.Address) (*big.Int, error) {
  8984  	return _SeigManagerI.Contract.LastCommitBlock(&_SeigManagerI.CallOpts, rootchain)
  8985  }
  8986  
  8987  // LastCommitBlock is a free data retrieval call binding the contract method 0xc59f1046.
  8988  //
  8989  // Solidity: function lastCommitBlock(address rootchain) constant returns(uint256)
  8990  func (_SeigManagerI *SeigManagerICallerSession) LastCommitBlock(rootchain common.Address) (*big.Int, error) {
  8991  	return _SeigManagerI.Contract.LastCommitBlock(&_SeigManagerI.CallOpts, rootchain)
  8992  }
  8993  
  8994  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
  8995  //
  8996  // Solidity: function lastSeigBlock() constant returns(uint256)
  8997  func (_SeigManagerI *SeigManagerICaller) LastSeigBlock(opts *bind.CallOpts) (*big.Int, error) {
  8998  	var (
  8999  		ret0 = new(*big.Int)
  9000  	)
  9001  	out := ret0
  9002  	err := _SeigManagerI.contract.Call(opts, out, "lastSeigBlock")
  9003  	return *ret0, err
  9004  }
  9005  
  9006  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
  9007  //
  9008  // Solidity: function lastSeigBlock() constant returns(uint256)
  9009  func (_SeigManagerI *SeigManagerISession) LastSeigBlock() (*big.Int, error) {
  9010  	return _SeigManagerI.Contract.LastSeigBlock(&_SeigManagerI.CallOpts)
  9011  }
  9012  
  9013  // LastSeigBlock is a free data retrieval call binding the contract method 0xf35c89e8.
  9014  //
  9015  // Solidity: function lastSeigBlock() constant returns(uint256)
  9016  func (_SeigManagerI *SeigManagerICallerSession) LastSeigBlock() (*big.Int, error) {
  9017  	return _SeigManagerI.Contract.LastSeigBlock(&_SeigManagerI.CallOpts)
  9018  }
  9019  
  9020  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
  9021  //
  9022  // Solidity: function pausedBlock() constant returns(uint256)
  9023  func (_SeigManagerI *SeigManagerICaller) PausedBlock(opts *bind.CallOpts) (*big.Int, error) {
  9024  	var (
  9025  		ret0 = new(*big.Int)
  9026  	)
  9027  	out := ret0
  9028  	err := _SeigManagerI.contract.Call(opts, out, "pausedBlock")
  9029  	return *ret0, err
  9030  }
  9031  
  9032  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
  9033  //
  9034  // Solidity: function pausedBlock() constant returns(uint256)
  9035  func (_SeigManagerI *SeigManagerISession) PausedBlock() (*big.Int, error) {
  9036  	return _SeigManagerI.Contract.PausedBlock(&_SeigManagerI.CallOpts)
  9037  }
  9038  
  9039  // PausedBlock is a free data retrieval call binding the contract method 0x32053c99.
  9040  //
  9041  // Solidity: function pausedBlock() constant returns(uint256)
  9042  func (_SeigManagerI *SeigManagerICallerSession) PausedBlock() (*big.Int, error) {
  9043  	return _SeigManagerI.Contract.PausedBlock(&_SeigManagerI.CallOpts)
  9044  }
  9045  
  9046  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
  9047  //
  9048  // Solidity: function powerton() constant returns(address)
  9049  func (_SeigManagerI *SeigManagerICaller) Powerton(opts *bind.CallOpts) (common.Address, error) {
  9050  	var (
  9051  		ret0 = new(common.Address)
  9052  	)
  9053  	out := ret0
  9054  	err := _SeigManagerI.contract.Call(opts, out, "powerton")
  9055  	return *ret0, err
  9056  }
  9057  
  9058  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
  9059  //
  9060  // Solidity: function powerton() constant returns(address)
  9061  func (_SeigManagerI *SeigManagerISession) Powerton() (common.Address, error) {
  9062  	return _SeigManagerI.Contract.Powerton(&_SeigManagerI.CallOpts)
  9063  }
  9064  
  9065  // Powerton is a free data retrieval call binding the contract method 0x3e832e1d.
  9066  //
  9067  // Solidity: function powerton() constant returns(address)
  9068  func (_SeigManagerI *SeigManagerICallerSession) Powerton() (common.Address, error) {
  9069  	return _SeigManagerI.Contract.Powerton(&_SeigManagerI.CallOpts)
  9070  }
  9071  
  9072  // Registry is a free data retrieval call binding the contract method 0x7b103999.
  9073  //
  9074  // Solidity: function registry() constant returns(address)
  9075  func (_SeigManagerI *SeigManagerICaller) Registry(opts *bind.CallOpts) (common.Address, error) {
  9076  	var (
  9077  		ret0 = new(common.Address)
  9078  	)
  9079  	out := ret0
  9080  	err := _SeigManagerI.contract.Call(opts, out, "registry")
  9081  	return *ret0, err
  9082  }
  9083  
  9084  // Registry is a free data retrieval call binding the contract method 0x7b103999.
  9085  //
  9086  // Solidity: function registry() constant returns(address)
  9087  func (_SeigManagerI *SeigManagerISession) Registry() (common.Address, error) {
  9088  	return _SeigManagerI.Contract.Registry(&_SeigManagerI.CallOpts)
  9089  }
  9090  
  9091  // Registry is a free data retrieval call binding the contract method 0x7b103999.
  9092  //
  9093  // Solidity: function registry() constant returns(address)
  9094  func (_SeigManagerI *SeigManagerICallerSession) Registry() (common.Address, error) {
  9095  	return _SeigManagerI.Contract.Registry(&_SeigManagerI.CallOpts)
  9096  }
  9097  
  9098  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
  9099  //
  9100  // Solidity: function seigPerBlock() constant returns(uint256)
  9101  func (_SeigManagerI *SeigManagerICaller) SeigPerBlock(opts *bind.CallOpts) (*big.Int, error) {
  9102  	var (
  9103  		ret0 = new(*big.Int)
  9104  	)
  9105  	out := ret0
  9106  	err := _SeigManagerI.contract.Call(opts, out, "seigPerBlock")
  9107  	return *ret0, err
  9108  }
  9109  
  9110  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
  9111  //
  9112  // Solidity: function seigPerBlock() constant returns(uint256)
  9113  func (_SeigManagerI *SeigManagerISession) SeigPerBlock() (*big.Int, error) {
  9114  	return _SeigManagerI.Contract.SeigPerBlock(&_SeigManagerI.CallOpts)
  9115  }
  9116  
  9117  // SeigPerBlock is a free data retrieval call binding the contract method 0x5f40a349.
  9118  //
  9119  // Solidity: function seigPerBlock() constant returns(uint256)
  9120  func (_SeigManagerI *SeigManagerICallerSession) SeigPerBlock() (*big.Int, error) {
  9121  	return _SeigManagerI.Contract.SeigPerBlock(&_SeigManagerI.CallOpts)
  9122  }
  9123  
  9124  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
  9125  //
  9126  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
  9127  func (_SeigManagerI *SeigManagerICaller) StakeOf(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
  9128  	var (
  9129  		ret0 = new(*big.Int)
  9130  	)
  9131  	out := ret0
  9132  	err := _SeigManagerI.contract.Call(opts, out, "stakeOf", rootchain, account)
  9133  	return *ret0, err
  9134  }
  9135  
  9136  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
  9137  //
  9138  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
  9139  func (_SeigManagerI *SeigManagerISession) StakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
  9140  	return _SeigManagerI.Contract.StakeOf(&_SeigManagerI.CallOpts, rootchain, account)
  9141  }
  9142  
  9143  // StakeOf is a free data retrieval call binding the contract method 0xce4cb876.
  9144  //
  9145  // Solidity: function stakeOf(address rootchain, address account) constant returns(uint256)
  9146  func (_SeigManagerI *SeigManagerICallerSession) StakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
  9147  	return _SeigManagerI.Contract.StakeOf(&_SeigManagerI.CallOpts, rootchain, account)
  9148  }
  9149  
  9150  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
  9151  //
  9152  // Solidity: function ton() constant returns(address)
  9153  func (_SeigManagerI *SeigManagerICaller) Ton(opts *bind.CallOpts) (common.Address, error) {
  9154  	var (
  9155  		ret0 = new(common.Address)
  9156  	)
  9157  	out := ret0
  9158  	err := _SeigManagerI.contract.Call(opts, out, "ton")
  9159  	return *ret0, err
  9160  }
  9161  
  9162  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
  9163  //
  9164  // Solidity: function ton() constant returns(address)
  9165  func (_SeigManagerI *SeigManagerISession) Ton() (common.Address, error) {
  9166  	return _SeigManagerI.Contract.Ton(&_SeigManagerI.CallOpts)
  9167  }
  9168  
  9169  // Ton is a free data retrieval call binding the contract method 0xcc48b947.
  9170  //
  9171  // Solidity: function ton() constant returns(address)
  9172  func (_SeigManagerI *SeigManagerICallerSession) Ton() (common.Address, error) {
  9173  	return _SeigManagerI.Contract.Ton(&_SeigManagerI.CallOpts)
  9174  }
  9175  
  9176  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
  9177  //
  9178  // Solidity: function tot() constant returns(address)
  9179  func (_SeigManagerI *SeigManagerICaller) Tot(opts *bind.CallOpts) (common.Address, error) {
  9180  	var (
  9181  		ret0 = new(common.Address)
  9182  	)
  9183  	out := ret0
  9184  	err := _SeigManagerI.contract.Call(opts, out, "tot")
  9185  	return *ret0, err
  9186  }
  9187  
  9188  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
  9189  //
  9190  // Solidity: function tot() constant returns(address)
  9191  func (_SeigManagerI *SeigManagerISession) Tot() (common.Address, error) {
  9192  	return _SeigManagerI.Contract.Tot(&_SeigManagerI.CallOpts)
  9193  }
  9194  
  9195  // Tot is a free data retrieval call binding the contract method 0xa16d6aa7.
  9196  //
  9197  // Solidity: function tot() constant returns(address)
  9198  func (_SeigManagerI *SeigManagerICallerSession) Tot() (common.Address, error) {
  9199  	return _SeigManagerI.Contract.Tot(&_SeigManagerI.CallOpts)
  9200  }
  9201  
  9202  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
  9203  //
  9204  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
  9205  func (_SeigManagerI *SeigManagerICaller) UncomittedStakeOf(opts *bind.CallOpts, rootchain common.Address, account common.Address) (*big.Int, error) {
  9206  	var (
  9207  		ret0 = new(*big.Int)
  9208  	)
  9209  	out := ret0
  9210  	err := _SeigManagerI.contract.Call(opts, out, "uncomittedStakeOf", rootchain, account)
  9211  	return *ret0, err
  9212  }
  9213  
  9214  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
  9215  //
  9216  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
  9217  func (_SeigManagerI *SeigManagerISession) UncomittedStakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
  9218  	return _SeigManagerI.Contract.UncomittedStakeOf(&_SeigManagerI.CallOpts, rootchain, account)
  9219  }
  9220  
  9221  // UncomittedStakeOf is a free data retrieval call binding the contract method 0xfa9789c8.
  9222  //
  9223  // Solidity: function uncomittedStakeOf(address rootchain, address account) constant returns(uint256)
  9224  func (_SeigManagerI *SeigManagerICallerSession) UncomittedStakeOf(rootchain common.Address, account common.Address) (*big.Int, error) {
  9225  	return _SeigManagerI.Contract.UncomittedStakeOf(&_SeigManagerI.CallOpts, rootchain, account)
  9226  }
  9227  
  9228  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
  9229  //
  9230  // Solidity: function unpausedBlock() constant returns(uint256)
  9231  func (_SeigManagerI *SeigManagerICaller) UnpausedBlock(opts *bind.CallOpts) (*big.Int, error) {
  9232  	var (
  9233  		ret0 = new(*big.Int)
  9234  	)
  9235  	out := ret0
  9236  	err := _SeigManagerI.contract.Call(opts, out, "unpausedBlock")
  9237  	return *ret0, err
  9238  }
  9239  
  9240  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
  9241  //
  9242  // Solidity: function unpausedBlock() constant returns(uint256)
  9243  func (_SeigManagerI *SeigManagerISession) UnpausedBlock() (*big.Int, error) {
  9244  	return _SeigManagerI.Contract.UnpausedBlock(&_SeigManagerI.CallOpts)
  9245  }
  9246  
  9247  // UnpausedBlock is a free data retrieval call binding the contract method 0x1cc47890.
  9248  //
  9249  // Solidity: function unpausedBlock() constant returns(uint256)
  9250  func (_SeigManagerI *SeigManagerICallerSession) UnpausedBlock() (*big.Int, error) {
  9251  	return _SeigManagerI.Contract.UnpausedBlock(&_SeigManagerI.CallOpts)
  9252  }
  9253  
  9254  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
  9255  //
  9256  // Solidity: function wton() constant returns(address)
  9257  func (_SeigManagerI *SeigManagerICaller) Wton(opts *bind.CallOpts) (common.Address, error) {
  9258  	var (
  9259  		ret0 = new(common.Address)
  9260  	)
  9261  	out := ret0
  9262  	err := _SeigManagerI.contract.Call(opts, out, "wton")
  9263  	return *ret0, err
  9264  }
  9265  
  9266  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
  9267  //
  9268  // Solidity: function wton() constant returns(address)
  9269  func (_SeigManagerI *SeigManagerISession) Wton() (common.Address, error) {
  9270  	return _SeigManagerI.Contract.Wton(&_SeigManagerI.CallOpts)
  9271  }
  9272  
  9273  // Wton is a free data retrieval call binding the contract method 0x8d62d949.
  9274  //
  9275  // Solidity: function wton() constant returns(address)
  9276  func (_SeigManagerI *SeigManagerICallerSession) Wton() (common.Address, error) {
  9277  	return _SeigManagerI.Contract.Wton(&_SeigManagerI.CallOpts)
  9278  }
  9279  
  9280  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
  9281  //
  9282  // Solidity: function deployCoinage(address rootchain) returns(bool)
  9283  func (_SeigManagerI *SeigManagerITransactor) DeployCoinage(opts *bind.TransactOpts, rootchain common.Address) (*types.Transaction, error) {
  9284  	return _SeigManagerI.contract.Transact(opts, "deployCoinage", rootchain)
  9285  }
  9286  
  9287  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
  9288  //
  9289  // Solidity: function deployCoinage(address rootchain) returns(bool)
  9290  func (_SeigManagerI *SeigManagerISession) DeployCoinage(rootchain common.Address) (*types.Transaction, error) {
  9291  	return _SeigManagerI.Contract.DeployCoinage(&_SeigManagerI.TransactOpts, rootchain)
  9292  }
  9293  
  9294  // DeployCoinage is a paid mutator transaction binding the contract method 0x833a774f.
  9295  //
  9296  // Solidity: function deployCoinage(address rootchain) returns(bool)
  9297  func (_SeigManagerI *SeigManagerITransactorSession) DeployCoinage(rootchain common.Address) (*types.Transaction, error) {
  9298  	return _SeigManagerI.Contract.DeployCoinage(&_SeigManagerI.TransactOpts, rootchain)
  9299  }
  9300  
  9301  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
  9302  //
  9303  // Solidity: function onCommit() returns(bool)
  9304  func (_SeigManagerI *SeigManagerITransactor) OnCommit(opts *bind.TransactOpts) (*types.Transaction, error) {
  9305  	return _SeigManagerI.contract.Transact(opts, "onCommit")
  9306  }
  9307  
  9308  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
  9309  //
  9310  // Solidity: function onCommit() returns(bool)
  9311  func (_SeigManagerI *SeigManagerISession) OnCommit() (*types.Transaction, error) {
  9312  	return _SeigManagerI.Contract.OnCommit(&_SeigManagerI.TransactOpts)
  9313  }
  9314  
  9315  // OnCommit is a paid mutator transaction binding the contract method 0x359c4d59.
  9316  //
  9317  // Solidity: function onCommit() returns(bool)
  9318  func (_SeigManagerI *SeigManagerITransactorSession) OnCommit() (*types.Transaction, error) {
  9319  	return _SeigManagerI.Contract.OnCommit(&_SeigManagerI.TransactOpts)
  9320  }
  9321  
  9322  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
  9323  //
  9324  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
  9325  func (_SeigManagerI *SeigManagerITransactor) OnDeposit(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
  9326  	return _SeigManagerI.contract.Transact(opts, "onDeposit", rootchain, account, amount)
  9327  }
  9328  
  9329  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
  9330  //
  9331  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
  9332  func (_SeigManagerI *SeigManagerISession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
  9333  	return _SeigManagerI.Contract.OnDeposit(&_SeigManagerI.TransactOpts, rootchain, account, amount)
  9334  }
  9335  
  9336  // OnDeposit is a paid mutator transaction binding the contract method 0x412c6d50.
  9337  //
  9338  // Solidity: function onDeposit(address rootchain, address account, uint256 amount) returns(bool)
  9339  func (_SeigManagerI *SeigManagerITransactorSession) OnDeposit(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
  9340  	return _SeigManagerI.Contract.OnDeposit(&_SeigManagerI.TransactOpts, rootchain, account, amount)
  9341  }
  9342  
  9343  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
  9344  //
  9345  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
  9346  func (_SeigManagerI *SeigManagerITransactor) OnTransfer(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  9347  	return _SeigManagerI.contract.Transact(opts, "onTransfer", sender, recipient, amount)
  9348  }
  9349  
  9350  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
  9351  //
  9352  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
  9353  func (_SeigManagerI *SeigManagerISession) OnTransfer(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  9354  	return _SeigManagerI.Contract.OnTransfer(&_SeigManagerI.TransactOpts, sender, recipient, amount)
  9355  }
  9356  
  9357  // OnTransfer is a paid mutator transaction binding the contract method 0x4a393149.
  9358  //
  9359  // Solidity: function onTransfer(address sender, address recipient, uint256 amount) returns(bool)
  9360  func (_SeigManagerI *SeigManagerITransactorSession) OnTransfer(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  9361  	return _SeigManagerI.Contract.OnTransfer(&_SeigManagerI.TransactOpts, sender, recipient, amount)
  9362  }
  9363  
  9364  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
  9365  //
  9366  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
  9367  func (_SeigManagerI *SeigManagerITransactor) OnWithdraw(opts *bind.TransactOpts, rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
  9368  	return _SeigManagerI.contract.Transact(opts, "onWithdraw", rootchain, account, amount)
  9369  }
  9370  
  9371  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
  9372  //
  9373  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
  9374  func (_SeigManagerI *SeigManagerISession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
  9375  	return _SeigManagerI.Contract.OnWithdraw(&_SeigManagerI.TransactOpts, rootchain, account, amount)
  9376  }
  9377  
  9378  // OnWithdraw is a paid mutator transaction binding the contract method 0xf850ffaa.
  9379  //
  9380  // Solidity: function onWithdraw(address rootchain, address account, uint256 amount) returns(bool)
  9381  func (_SeigManagerI *SeigManagerITransactorSession) OnWithdraw(rootchain common.Address, account common.Address, amount *big.Int) (*types.Transaction, error) {
  9382  	return _SeigManagerI.Contract.OnWithdraw(&_SeigManagerI.TransactOpts, rootchain, account, amount)
  9383  }
  9384  
  9385  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
  9386  //
  9387  // Solidity: function setCommissionRate(address rootchain, uint256 commission, bool isCommissionRateNegative) returns(bool)
  9388  func (_SeigManagerI *SeigManagerITransactor) SetCommissionRate(opts *bind.TransactOpts, rootchain common.Address, commission *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
  9389  	return _SeigManagerI.contract.Transact(opts, "setCommissionRate", rootchain, commission, isCommissionRateNegative)
  9390  }
  9391  
  9392  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
  9393  //
  9394  // Solidity: function setCommissionRate(address rootchain, uint256 commission, bool isCommissionRateNegative) returns(bool)
  9395  func (_SeigManagerI *SeigManagerISession) SetCommissionRate(rootchain common.Address, commission *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
  9396  	return _SeigManagerI.Contract.SetCommissionRate(&_SeigManagerI.TransactOpts, rootchain, commission, isCommissionRateNegative)
  9397  }
  9398  
  9399  // SetCommissionRate is a paid mutator transaction binding the contract method 0x4224ed66.
  9400  //
  9401  // Solidity: function setCommissionRate(address rootchain, uint256 commission, bool isCommissionRateNegative) returns(bool)
  9402  func (_SeigManagerI *SeigManagerITransactorSession) SetCommissionRate(rootchain common.Address, commission *big.Int, isCommissionRateNegative bool) (*types.Transaction, error) {
  9403  	return _SeigManagerI.Contract.SetCommissionRate(&_SeigManagerI.TransactOpts, rootchain, commission, isCommissionRateNegative)
  9404  }
  9405  
  9406  // SubmitHandlerABI is the input ABI used to generate the binding from.
  9407  const SubmitHandlerABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_epochHandler\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"BlockFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fork\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"BlockSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trieKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trieValue\",\"type\":\"bytes32\"}],\"name\":\"ERUCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFilling\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"}],\"name\":\"EpochFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"epochIsEmpty\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"rebase\",\"type\":\"bool\"}],\"name\":\"EpochPrepared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"epochIsEmpty\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRequest\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"EpochRebased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newFork\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"forkedBlockNumber\",\"type\":\"uint256\"}],\"name\":\"Forked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"OperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestChallenged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weiAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractInRootchain\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractInChildchain\",\"type\":\"address\"}],\"name\":\"RequestableContractMapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"userActivated\",\"type\":\"bool\"}],\"name\":\"SessionTimeout\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ERO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ERU\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_NRB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_ORB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_URB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"COST_URB_PREPARE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_COMPUTATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_EXIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CP_WITHHOLDING\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EROIdToFinalize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"EROs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransfer\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finalized\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"challenged\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"addresspayable\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ERUIdToFinalize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ERUs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isExit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransfer\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finalized\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"challenged\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"addresspayable\",\"name\":\"requestor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"trieKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"trieValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NRELength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ORBs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"numEnter\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"epochNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestEnd\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"trie\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PREPARE_TIMEOUT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"REQUEST_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"URBs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"numEnter\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"epochNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestEnd\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"trie\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"development\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"epochHandler\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"etherToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"firstFilledORENumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"firstNonEmptyRequestEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"forks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"forkedBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastFinalizedEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastFinalizedBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstEnterEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastEnterEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextBlockToRebase\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"rebased\",\"type\":\"bool\"}],\"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\":[],\"name\":\"lastAppliedBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastAppliedEpochNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastAppliedForkNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lastNonEmptyRequestEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numEnterForORB\",\"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\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"requestableContracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"seigManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submitHandler\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pos1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_pos2\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_epochStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_epochTransactionsRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_epochReceiptsRoot\",\"type\":\"bytes32\"}],\"name\":\"submitNRE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pos\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_statesRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_transactionsRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiptsRoot\",\"type\":\"bytes32\"}],\"name\":\"submitORB\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pos\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_statesRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_transactionsRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiptsRoot\",\"type\":\"bytes32\"}],\"name\":\"submitURB\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}]"
  9408  
  9409  // SubmitHandlerFuncSigs maps the 4-byte function signature to its string representation.
  9410  var SubmitHandlerFuncSigs = map[string]string{
  9411  	"d691acd8": "COST_ERO()",
  9412  	"8b5172d0": "COST_ERU()",
  9413  	"94be3aa5": "COST_NRB()",
  9414  	"b2ae9ba8": "COST_ORB()",
  9415  	"192adc5b": "COST_URB()",
  9416  	"033cfbed": "COST_URB_PREPARE()",
  9417  	"08c4fff0": "CP_COMPUTATION()",
  9418  	"8155717d": "CP_EXIT()",
  9419  	"b17fa6e9": "CP_WITHHOLDING()",
  9420  	"2dc6bb7b": "EROIdToFinalize()",
  9421  	"b443f3cc": "EROs(uint256)",
  9422  	"c54626cc": "ERUIdToFinalize()",
  9423  	"f4f31de4": "ERUs(uint256)",
  9424  	"ab96da2d": "NRELength()",
  9425  	"de0ce17d": "NULL_ADDRESS()",
  9426  	"ea7f22a8": "ORBs(uint256)",
  9427  	"c2bc88fa": "PREPARE_TIMEOUT()",
  9428  	"8eb288ca": "REQUEST_GAS()",
  9429  	"c0e86064": "URBs(uint256)",
  9430  	"183d2d1c": "currentFork()",
  9431  	"7b929c27": "development()",
  9432  	"e7b88b80": "epochHandler()",
  9433  	"b8066bcb": "etherToken()",
  9434  	"72ecb9a8": "firstFilledORENumber(uint256)",
  9435  	"ca6f6380": "firstNonEmptyRequestEpoch(uint256)",
  9436  	"4ba3a126": "forks(uint256)",
  9437  	"420bb4b8": "isRootChain()",
  9438  	"fb788a27": "lastAppliedBlockNumber()",
  9439  	"c8ad329f": "lastAppliedEpochNumber()",
  9440  	"164bc2ae": "lastAppliedForkNumber()",
  9441  	"b6715647": "lastNonEmptyRequestEpoch(uint256)",
  9442  	"23691566": "numEnterForORB()",
  9443  	"570ca735": "operator()",
  9444  	"da0185f8": "requestableContracts(address)",
  9445  	"6fb7f558": "seigManager()",
  9446  	"e259faf7": "submitHandler()",
  9447  	"0eaf45a8": "submitNRE(uint256,uint256,bytes32,bytes32,bytes32)",
  9448  	"a820c067": "submitORB(uint256,bytes32,bytes32,bytes32)",
  9449  	"6f3e4b90": "submitURB(uint256,bytes32,bytes32,bytes32)",
  9450  }
  9451  
  9452  // SubmitHandlerBin is the compiled bytecode used for deploying new contracts.
  9453  var SubmitHandlerBin = "0x608060405234801561001057600080fd5b5060405161219a38038061219a8339818101604052602081101561003357600080fd5b5051600180546001600160a01b039092166001600160a01b0319928316179055600280549091163017905561212d8061006d6000396000f3fe6080604052600436106102305760003560e01c8063a820c0671161012e578063c8ad329f116100ab578063e259faf71161006f578063e259faf7146107a5578063e7b88b80146107ba578063ea7f22a8146107cf578063f4f31de4146107f9578063fb788a271461082357610230565b8063c8ad329f1461071e578063ca6f638014610733578063d691acd814610235578063da0185f81461075d578063de0ce17d1461079057610230565b8063b6715647116100f2578063b671564714610640578063b8066bcb1461066a578063c0e860641461067f578063c2bc88fa146106f4578063c54626cc1461070957610230565b8063a820c067146104cb578063ab96da2d146104fa578063b17fa6e91461050f578063b2ae9ba814610235578063b443f3cc1461052457610230565b80634ba3a126116101bc5780637b929c27116101805780637b929c27146104775780638155717d1461048c5780638b5172d0146104a15780638eb288ca146104b657806394be3aa51461023557610230565b80634ba3a12614610338578063570ca735146103d85780636f3e4b90146104095780636fb7f5581461043857806372ecb9a81461044d57610230565b8063183d2d1c11610203578063183d2d1c146102cf578063192adc5b146102e457806323691566146102f95780632dc6bb7b1461030e578063420bb4b81461032357610230565b8063033cfbed1461023557806308c4fff01461025c5780630eaf45a814610271578063164bc2ae146102ba575b600080fd5b34801561024157600080fd5b5061024a610838565b60408051918252519081900360200190f35b34801561026857600080fd5b5061024a610842565b6102a6600480360360a081101561028757600080fd5b5080359060208101359060408101359060608101359060800135610847565b604080519115158252519081900360200190f35b3480156102c657600080fd5b5061024a610985565b3480156102db57600080fd5b5061024a61098b565b3480156102f057600080fd5b5061024a610991565b34801561030557600080fd5b5061024a61099b565b34801561031a57600080fd5b5061024a6109a1565b34801561032f57600080fd5b506102a66109a7565b34801561034457600080fd5b506103626004803603602081101561035b57600080fd5b50356109ac565b604080516001600160401b039d8e1681529b8d1660208d0152998c168b8b0152978b1660608b0152958a1660808a015293891660a089015291881660c0880152871660e0870152861661010086015285166101208501529093166101408301529115156101608201529051908190036101800190f35b3480156103e457600080fd5b506103ed610a23565b604080516001600160a01b039092168252519081900360200190f35b6102a66004803603608081101561041f57600080fd5b5080359060208101359060408101359060600135610a37565b34801561044457600080fd5b506103ed610dcd565b34801561045957600080fd5b5061024a6004803603602081101561047057600080fd5b5035610ddc565b34801561048357600080fd5b506102a6610dee565b34801561049857600080fd5b5061024a610df7565b3480156104ad57600080fd5b5061024a610dfc565b3480156104c257600080fd5b5061024a610e06565b6102a6600480360360808110156104e157600080fd5b5080359060208101359060408101359060600135610e0d565b34801561050657600080fd5b5061024a61137d565b34801561051b57600080fd5b5061024a611383565b34801561053057600080fd5b5061054e6004803603602081101561054757600080fd5b5035611388565b604080516001600160401b038d1681528b15156020808301919091528b151592820192909252891515606082015288151560808201526001600160801b03881660a08201526001600160a01b0380881660c0830152861660e082015261010081018590526101208101849052610160610140820181815284519183019190915283519192909161018084019185019080838360005b838110156105fb5781810151838201526020016105e3565b50505050905090810190601f1680156106285780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390f35b34801561064c57600080fd5b5061024a6004803603602081101561066357600080fd5b50356114a9565b34801561067657600080fd5b506103ed6114bb565b34801561068b57600080fd5b506106a9600480360360208110156106a257600080fd5b50356114ca565b6040805196151587526001600160401b03958616602088015293851686850152918416606086015290921660808401526001600160a01b0390911660a0830152519081900360c00190f35b34801561070057600080fd5b5061024a611531565b34801561071557600080fd5b5061024a611536565b34801561072a57600080fd5b5061024a61153c565b34801561073f57600080fd5b5061024a6004803603602081101561075657600080fd5b5035611542565b34801561076957600080fd5b506103ed6004803603602081101561078057600080fd5b50356001600160a01b0316611554565b34801561079c57600080fd5b506103ed61156f565b3480156107b157600080fd5b506103ed611574565b3480156107c657600080fd5b506103ed611583565b3480156107db57600080fd5b506106a9600480360360208110156107f257600080fd5b5035611592565b34801561080557600080fd5b5061054e6004803603602081101561081c57600080fd5b503561159f565b34801561082f57600080fd5b5061024a6115ac565b6509184e72a00081565b600f81565b6000806000610855886115b2565b9150915081600654146108af576040805162461bcd60e51b815260206004820152601960248201527f63757272656e74466f726b203d3d20666f726b4e756d62657200000000000000604482015290519081900360640190fd5b6000806108bb896115b2565b600086815260086020526040902091935091506108e390848a8a8a878763ffffffff6115c816565b6108eb61170e565b6004546001600160a01b03161561097557600480546040805163359c4d5960e01b815290516001600160a01b039092169263359c4d599282820192602092908290030181600087803b15801561094057600080fd5b505af1158015610954573d6000803e3d6000fd5b505050506040513d602081101561096a57600080fd5b505161097557600080fd5b5060019998505050505050505050565b60105481565b60065481565b6551dac207a00081565b600d5481565b60135481565b600181565b6008602052600090815260409020805460018201546002909201546001600160401b0380831693600160401b808504831694600160801b808204851695600160c01b92839004861695858116958581048216958482048316959182900483169484841694918204841693908204169160ff9104168c565b60005461010090046001600160a01b031681565b6000806000610a45876115b2565b600654919350915060010182148080610a5f575082600654145b610a6857600080fd5b60008381526008602052604090208115610b3457506006839055600083815260086020526040902042610a99611813565b6001830154600160c01b90046001600160401b03160111610ab957600080fd5b8054600160c01b90046001600160401b03168314610ad657600080fd5b8054604080518681526001600160401b03600160801b840481166020830152600160c01b90930490921682820152517f0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c9181900360600190a1610b69565b600181810154610b55916001600160401b039091169063ffffffff61181916565b6001600160401b03168314610b6957600080fd5b8054600160801b90046001600160401b0316600090815260038201602052604090208054600160d01b900460ff16610ba057600080fd5b8054600160d81b900460ff16610bb557600080fd5b600084815260048381016020526040822084548154600283018e9055600383018d90559282018b9055600160801b908190046001600160401b0390811667ffffffffffffffff199485161767ffffffffffffffff60801b19164282169290920291909117825560058201805461010060ff19909116600190811761ff001916919091179091558601805490931690881617909155905460ff16610cb05760018301546001600160401b039081166000908152600485016020526040902054600c8054610cb0939192600160401b9004909116908110610c9057fe5b6000918252602082208c9260029092020190600a9063ffffffff61183e16565b825460408051888152600160801b9092046001600160401b031660208301528181018790526001606083018190526080830152517f3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e559160a0908290030190a18154600160401b90046001600160401b0316851415610d3057610d30611960565b6004546001600160a01b031615610dba57600480546040805163359c4d5960e01b815290516001600160a01b039092169263359c4d599282820192602092908290030181600087803b158015610d8557600080fd5b505af1158015610d99573d6000803e3d6000fd5b505050506040513d6020811015610daf57600080fd5b5051610dba57600080fd5b600196505050505050505b949350505050565b6004546001600160a01b031681565b60076020526000908152604090205481565b60005460ff1681565b600a81565b6512309ce5400081565b620186a081565b6000806000610e1b876115b2565b60065491935091508214610e2e57600080fd5b60008281526008602052604090206001908101546001600160401b03908116909101168114610e5c57600080fd5b60008281526008602052604081209080841580610eaa575060001985016000908152600860205260409020546001600160401b031615801590610eaa57506002830154600160c01b900460ff165b156110d557610ec6838a8a8a600160008063ffffffff6119f416565b60005490955090925060ff16610f345760018301546001600160401b039081166000908152600485016020526040902054600b8054610f34939192600160401b9004909116908110610f1457fe5b6000918252602082208b926002909202019060099063ffffffff61183e16565b506000838152600483016020526040902054600b8054600160401b9092046001600160401b03169182908110610f6657fe5b60009182526020808320600292909202909101548483526003860182526040808420600190810180546001600160c01b0381166101009095046001600160401b03908116600160c01b9283900482160116029390931790925580518981529283018690528281018890526060830191909152608082019290925290517f3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e559160a0908290030190a16000828152600384016020526040902054600160401b90046001600160401b031684141561103d5761103d611bff565b6004546001600160a01b0316156110c757600480546040805163359c4d5960e01b815290516001600160a01b039092169263359c4d599282820192602092908290030181600087803b15801561109257600080fd5b505af11580156110a6573d6000803e3d6000fd5b505050506040513d60208110156110bc57600080fd5b50516110c757600080fd5b600195505050505050610dc5565b6110ec838a8a8a600160008163ffffffff6119f416565b600019870160009081526008602090815260408083208484526004808a01845282852060028b01805460018301805467ffffffffffffffff19166001600160401b03600160801b9384900481169190911790915591540481168752918301909452918420548354600160401b918290049093160267ffffffffffffffff60401b199092169190911782559154929750929450919060ff166111c9578054600b80546111c992600160401b90046001600160401b03169081106111aa57fe5b600091825260209091208c91600202016009600163ffffffff61183e16565b6040805188815260208101869052808201889052600160608201526000608082015290517f3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e559181900360a00190a16112298583600b63ffffffff611c8b16565b156112e1576000848152600386016020908152604080832080546001600160401b03808c16600160401b0267ffffffffffffffff60401b199092169190911780835560019283015484518e81529586018b905290821685850152606085018c905216608084015260a0830184905260c0830184905260e083015261010082019290925290517f030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47918190036101200190a16112e1611eb6565b6004546001600160a01b03161561136b57600480546040805163359c4d5960e01b815290516001600160a01b039092169263359c4d599282820192602092908290030181600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b505050506040513d602081101561136057600080fd5b505161136b57600080fd5b5060019b9a5050505050505050505050565b60055481565b601481565b6009818154811061139557fe5b6000918252602091829020600691909102018054600180830154600280850154600386015460048701546005880180546040805161010099831615999099026000190190911695909504601f81018b90048b0288018b019095528487526001600160401b0388169a50600160401b880460ff9081169a600160481b8a0482169a600160501b8b0483169a600160581b810490931699600160601b9093046001600160801b0316986001600160a01b039081169897169690939183018282801561149f5780601f106114745761010080835404028352916020019161149f565b820191906000526020600020905b81548152906001019060200180831161148257829003601f168201915b505050505090508b565b600e6020526000908152604090205481565b6003546001600160a01b031681565b600c81815481106114d757fe5b60009182526020909120600290910201805460019091015460ff821692506001600160401b036101008304811692600160481b8104821692600160881b9091048216918116906001600160a01b03600160401b9091041686565b603c81565b60145481565b60115481565b600f6020526000908152604090205481565b6015602052600090815260409020546001600160a01b031681565b600081565b6002546001600160a01b031681565b6001546001600160a01b031681565b600b81815481106114d757fe5b600a818154811061139557fe5b60125481565b600160801b8104916001600160801b0390911690565b865486906115e790600160801b90046001600160401b03166001611f4a565b146115f157600080fd5b6001878101548391611612916001600160401b03169063ffffffff611f4a16565b1461161c57600080fd5b600086815260038801602052604090208054600160d01b900460ff161561164257600080fd5b8054600160d81b900460ff161561165857600080fd5b8054600160e01b900460ff161561166e57600080fd5b80546001600160401b0316831461168457600080fd5b8054600160401b90046001600160401b031682146116a157600080fd5b60038101959095556004850193909355506005830155600690910180546001600160401b0342811667ffffffffffffffff19928316179092558454938216600160801b0267ffffffffffffffff60801b199094169390931784556001939093018054919093169116179055565b600154604080516b707265706172654f5245282960a01b8152815190819003600c018120600482526024820183526020820180516001600160e01b03166001600160e01b0319909216919091178152915181516000946060946001600160a01b039091169392918291908083835b6020831061179b5780518252601f19909201916020918201910161177c565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146117fb576040519150601f19603f3d011682016040523d82523d6000602084013e611800565b606091505b50915091508161180f57600080fd5b5050565b610e1090565b60008282016001600160401b03808516908216101561183757600080fd5b9392505050565b825460018401546001600160401b03600160881b9092048216911660008361186b5782820360010161187c565b855461010090046001600160401b03165b90506000811161188b57600080fd5b6060816040519080825280602002602001820160405280156118b7578160200160208202803883390190505b50905083805b848111611940578615806118f557508781815481106118d857fe5b6000918252602090912060069091020154600160401b900460ff16155b156119385787818154811061190657fe5b906000526020600020906006020160040154838784038151811061192657fe5b60209081029190910101526001909101905b6001016118bd565b508861194b83611f5c565b1461195557600080fd5b505050505050505050565b6001546040805173707265706172654f52454166746572555245282960601b81528151908190036014018120600482526024820183526020820180516001600160e01b03166001600160e01b0319909216919091178152915181516000946060946001600160a01b039091169392918291908083836020831061179b5780518252601f19909201916020918201910161177c565b86546001808901546001600160401b03600160801b909304831692600092611a25929091169063ffffffff611f4a16565b600083815260038b016020526040902080549192509060016001600160401b03600160401b90920482160116821415611a96575088546001600160401b03600193909301928316600160801b0267ffffffffffffffff60801b19909116178955600082815260038a01602052604090205b80546001600160401b0316821015611aad57600080fd5b8380611aca57508054600160401b90046001600160401b03168211155b611ad357600080fd5b805460ff600160d01b90910416151586151514611aef57600080fd5b805460ff600160d81b90910416151585151514611b0b57600080fd5b600082815260048b810160205260409091208054600282018c9055600382018b905591810189905567ffffffffffffffff199091166001600160401b038581169190911767ffffffffffffffff60801b1916600160801b42929092169190910217815560058101805460ff1916881580159190911761ff0019166101008915150217909155611bd35781546001830154825467ffffffffffffffff60401b1916600160401b6001600160401b03938416600160801b9093048416870192909203909216021781555b5050600198909801805467ffffffffffffffff19166001600160401b038a161790559795505050505050565b600154604080516b707265706172654e5245282960a01b8152815190819003600c018120600482526024820183526020820180516001600160e01b03166001600160e01b0319909216919091178152915181516000946060946001600160a01b039091169392918291908083836020831061179b5780518252601f19909201916020918201910161177c565b60028301546001600160401b03600160801b909104811660008181526004850160205260408120549092165b6000818152600386016020526040902054600160c81b900460ff1615611eaa576000818152600386016020526040902054600160401b90046001600160401b03168210611d1e5760020160008181526003860160205260409020546001600160401b031691505b5b6000818152600386016020526040902060010154600160c01b90046001600160401b0316158015611d6757506000818152600386016020526040902054600160c81b900460ff165b15611d905760020160008181526003860160205260409020546001600160401b03169150611d1f565b6000818152600386016020526040902054600160c81b900460ff16611dba57600192505050611837565b6000818152600386016020526040902054600160401b90046001600160401b03165b808311611e4657600083815260048701602052604081205486548791600160401b90046001600160401b0316908110611e1157fe5b600091825260209091206002909102015461010090046001600160401b03161115611e3b57611e46565b600183019250611ddc565b80831115611e73575060020160008181526003860160205260409020546001600160401b03169150611cb7565b50506002850180546001600160401b03909216600160801b0267ffffffffffffffff60801b19909216919091179055506000611837565b50600195945050505050565b6001546040805173707265706172654e52454166746572555245282960601b81528151908190036014018120600482526024820183526020820180516001600160e01b03166001600160e01b0319909216919091178152915181516000946060946001600160a01b039091169392918291908083836020831061179b5780518252601f19909201916020918201910161177c565b60008282018381101561183757600080fd5b6000815160011415611f845781600081518110611f7557fe5b602002602001015190506120f3565b60606002835160010181611f9457fe5b04604051908082528060200260200182016040528015611fbe578160200160208202803883390190505b50905060005b835181600101101561205157838181518110611fdc57fe5b6020026020010151848260010181518110611ff357fe5b6020026020010151604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120826002838161203357fe5b048151811061203e57fe5b6020908102919091010152600201611fc4565b600284518161205c57fe5b06600114156120e5578360018551038151811061207557fe5b60200260200101518460018651038151811061208d57fe5b602002602001015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012082600283816120cd57fe5b04815181106120d857fe5b6020026020010181815250505b6120ee82611f5c565b925050505b91905056fea265627a7a72315820d2ae9c7775a1cbb87f6b6967b413ef0f3ce0015c95c3d56aa522a22fd623b4dd64736f6c634300050c0032"
  9454  
  9455  // DeploySubmitHandler deploys a new Ethereum contract, binding an instance of SubmitHandler to it.
  9456  func DeploySubmitHandler(auth *bind.TransactOpts, backend bind.ContractBackend, _epochHandler common.Address) (common.Address, *types.Transaction, *SubmitHandler, error) {
  9457  	parsed, err := abi.JSON(strings.NewReader(SubmitHandlerABI))
  9458  	if err != nil {
  9459  		return common.Address{}, nil, nil, err
  9460  	}
  9461  
  9462  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SubmitHandlerBin), backend, _epochHandler)
  9463  	if err != nil {
  9464  		return common.Address{}, nil, nil, err
  9465  	}
  9466  	return address, tx, &SubmitHandler{SubmitHandlerCaller: SubmitHandlerCaller{contract: contract}, SubmitHandlerTransactor: SubmitHandlerTransactor{contract: contract}, SubmitHandlerFilterer: SubmitHandlerFilterer{contract: contract}}, nil
  9467  }
  9468  
  9469  // SubmitHandler is an auto generated Go binding around an Ethereum contract.
  9470  type SubmitHandler struct {
  9471  	SubmitHandlerCaller     // Read-only binding to the contract
  9472  	SubmitHandlerTransactor // Write-only binding to the contract
  9473  	SubmitHandlerFilterer   // Log filterer for contract events
  9474  }
  9475  
  9476  // SubmitHandlerCaller is an auto generated read-only Go binding around an Ethereum contract.
  9477  type SubmitHandlerCaller struct {
  9478  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9479  }
  9480  
  9481  // SubmitHandlerTransactor is an auto generated write-only Go binding around an Ethereum contract.
  9482  type SubmitHandlerTransactor struct {
  9483  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9484  }
  9485  
  9486  // SubmitHandlerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  9487  type SubmitHandlerFilterer struct {
  9488  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9489  }
  9490  
  9491  // SubmitHandlerSession is an auto generated Go binding around an Ethereum contract,
  9492  // with pre-set call and transact options.
  9493  type SubmitHandlerSession struct {
  9494  	Contract     *SubmitHandler    // Generic contract binding to set the session for
  9495  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  9496  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  9497  }
  9498  
  9499  // SubmitHandlerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  9500  // with pre-set call options.
  9501  type SubmitHandlerCallerSession struct {
  9502  	Contract *SubmitHandlerCaller // Generic contract caller binding to set the session for
  9503  	CallOpts bind.CallOpts        // Call options to use throughout this session
  9504  }
  9505  
  9506  // SubmitHandlerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  9507  // with pre-set transact options.
  9508  type SubmitHandlerTransactorSession struct {
  9509  	Contract     *SubmitHandlerTransactor // Generic contract transactor binding to set the session for
  9510  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
  9511  }
  9512  
  9513  // SubmitHandlerRaw is an auto generated low-level Go binding around an Ethereum contract.
  9514  type SubmitHandlerRaw struct {
  9515  	Contract *SubmitHandler // Generic contract binding to access the raw methods on
  9516  }
  9517  
  9518  // SubmitHandlerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  9519  type SubmitHandlerCallerRaw struct {
  9520  	Contract *SubmitHandlerCaller // Generic read-only contract binding to access the raw methods on
  9521  }
  9522  
  9523  // SubmitHandlerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  9524  type SubmitHandlerTransactorRaw struct {
  9525  	Contract *SubmitHandlerTransactor // Generic write-only contract binding to access the raw methods on
  9526  }
  9527  
  9528  // NewSubmitHandler creates a new instance of SubmitHandler, bound to a specific deployed contract.
  9529  func NewSubmitHandler(address common.Address, backend bind.ContractBackend) (*SubmitHandler, error) {
  9530  	contract, err := bindSubmitHandler(address, backend, backend, backend)
  9531  	if err != nil {
  9532  		return nil, err
  9533  	}
  9534  	return &SubmitHandler{SubmitHandlerCaller: SubmitHandlerCaller{contract: contract}, SubmitHandlerTransactor: SubmitHandlerTransactor{contract: contract}, SubmitHandlerFilterer: SubmitHandlerFilterer{contract: contract}}, nil
  9535  }
  9536  
  9537  // NewSubmitHandlerCaller creates a new read-only instance of SubmitHandler, bound to a specific deployed contract.
  9538  func NewSubmitHandlerCaller(address common.Address, caller bind.ContractCaller) (*SubmitHandlerCaller, error) {
  9539  	contract, err := bindSubmitHandler(address, caller, nil, nil)
  9540  	if err != nil {
  9541  		return nil, err
  9542  	}
  9543  	return &SubmitHandlerCaller{contract: contract}, nil
  9544  }
  9545  
  9546  // NewSubmitHandlerTransactor creates a new write-only instance of SubmitHandler, bound to a specific deployed contract.
  9547  func NewSubmitHandlerTransactor(address common.Address, transactor bind.ContractTransactor) (*SubmitHandlerTransactor, error) {
  9548  	contract, err := bindSubmitHandler(address, nil, transactor, nil)
  9549  	if err != nil {
  9550  		return nil, err
  9551  	}
  9552  	return &SubmitHandlerTransactor{contract: contract}, nil
  9553  }
  9554  
  9555  // NewSubmitHandlerFilterer creates a new log filterer instance of SubmitHandler, bound to a specific deployed contract.
  9556  func NewSubmitHandlerFilterer(address common.Address, filterer bind.ContractFilterer) (*SubmitHandlerFilterer, error) {
  9557  	contract, err := bindSubmitHandler(address, nil, nil, filterer)
  9558  	if err != nil {
  9559  		return nil, err
  9560  	}
  9561  	return &SubmitHandlerFilterer{contract: contract}, nil
  9562  }
  9563  
  9564  // bindSubmitHandler binds a generic wrapper to an already deployed contract.
  9565  func bindSubmitHandler(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  9566  	parsed, err := abi.JSON(strings.NewReader(SubmitHandlerABI))
  9567  	if err != nil {
  9568  		return nil, err
  9569  	}
  9570  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  9571  }
  9572  
  9573  // Call invokes the (constant) contract method with params as input values and
  9574  // sets the output to result. The result type might be a single field for simple
  9575  // returns, a slice of interfaces for anonymous returns and a struct for named
  9576  // returns.
  9577  func (_SubmitHandler *SubmitHandlerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9578  	return _SubmitHandler.Contract.SubmitHandlerCaller.contract.Call(opts, result, method, params...)
  9579  }
  9580  
  9581  // Transfer initiates a plain transaction to move funds to the contract, calling
  9582  // its default method if one is available.
  9583  func (_SubmitHandler *SubmitHandlerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9584  	return _SubmitHandler.Contract.SubmitHandlerTransactor.contract.Transfer(opts)
  9585  }
  9586  
  9587  // Transact invokes the (paid) contract method with params as input values.
  9588  func (_SubmitHandler *SubmitHandlerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9589  	return _SubmitHandler.Contract.SubmitHandlerTransactor.contract.Transact(opts, method, params...)
  9590  }
  9591  
  9592  // Call invokes the (constant) contract method with params as input values and
  9593  // sets the output to result. The result type might be a single field for simple
  9594  // returns, a slice of interfaces for anonymous returns and a struct for named
  9595  // returns.
  9596  func (_SubmitHandler *SubmitHandlerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  9597  	return _SubmitHandler.Contract.contract.Call(opts, result, method, params...)
  9598  }
  9599  
  9600  // Transfer initiates a plain transaction to move funds to the contract, calling
  9601  // its default method if one is available.
  9602  func (_SubmitHandler *SubmitHandlerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9603  	return _SubmitHandler.Contract.contract.Transfer(opts)
  9604  }
  9605  
  9606  // Transact invokes the (paid) contract method with params as input values.
  9607  func (_SubmitHandler *SubmitHandlerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9608  	return _SubmitHandler.Contract.contract.Transact(opts, method, params...)
  9609  }
  9610  
  9611  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  9612  //
  9613  // Solidity: function COST_ERO() constant returns(uint256)
  9614  func (_SubmitHandler *SubmitHandlerCaller) COSTERO(opts *bind.CallOpts) (*big.Int, error) {
  9615  	var (
  9616  		ret0 = new(*big.Int)
  9617  	)
  9618  	out := ret0
  9619  	err := _SubmitHandler.contract.Call(opts, out, "COST_ERO")
  9620  	return *ret0, err
  9621  }
  9622  
  9623  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  9624  //
  9625  // Solidity: function COST_ERO() constant returns(uint256)
  9626  func (_SubmitHandler *SubmitHandlerSession) COSTERO() (*big.Int, error) {
  9627  	return _SubmitHandler.Contract.COSTERO(&_SubmitHandler.CallOpts)
  9628  }
  9629  
  9630  // COSTERO is a free data retrieval call binding the contract method 0xd691acd8.
  9631  //
  9632  // Solidity: function COST_ERO() constant returns(uint256)
  9633  func (_SubmitHandler *SubmitHandlerCallerSession) COSTERO() (*big.Int, error) {
  9634  	return _SubmitHandler.Contract.COSTERO(&_SubmitHandler.CallOpts)
  9635  }
  9636  
  9637  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  9638  //
  9639  // Solidity: function COST_ERU() constant returns(uint256)
  9640  func (_SubmitHandler *SubmitHandlerCaller) COSTERU(opts *bind.CallOpts) (*big.Int, error) {
  9641  	var (
  9642  		ret0 = new(*big.Int)
  9643  	)
  9644  	out := ret0
  9645  	err := _SubmitHandler.contract.Call(opts, out, "COST_ERU")
  9646  	return *ret0, err
  9647  }
  9648  
  9649  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  9650  //
  9651  // Solidity: function COST_ERU() constant returns(uint256)
  9652  func (_SubmitHandler *SubmitHandlerSession) COSTERU() (*big.Int, error) {
  9653  	return _SubmitHandler.Contract.COSTERU(&_SubmitHandler.CallOpts)
  9654  }
  9655  
  9656  // COSTERU is a free data retrieval call binding the contract method 0x8b5172d0.
  9657  //
  9658  // Solidity: function COST_ERU() constant returns(uint256)
  9659  func (_SubmitHandler *SubmitHandlerCallerSession) COSTERU() (*big.Int, error) {
  9660  	return _SubmitHandler.Contract.COSTERU(&_SubmitHandler.CallOpts)
  9661  }
  9662  
  9663  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  9664  //
  9665  // Solidity: function COST_NRB() constant returns(uint256)
  9666  func (_SubmitHandler *SubmitHandlerCaller) COSTNRB(opts *bind.CallOpts) (*big.Int, error) {
  9667  	var (
  9668  		ret0 = new(*big.Int)
  9669  	)
  9670  	out := ret0
  9671  	err := _SubmitHandler.contract.Call(opts, out, "COST_NRB")
  9672  	return *ret0, err
  9673  }
  9674  
  9675  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  9676  //
  9677  // Solidity: function COST_NRB() constant returns(uint256)
  9678  func (_SubmitHandler *SubmitHandlerSession) COSTNRB() (*big.Int, error) {
  9679  	return _SubmitHandler.Contract.COSTNRB(&_SubmitHandler.CallOpts)
  9680  }
  9681  
  9682  // COSTNRB is a free data retrieval call binding the contract method 0x94be3aa5.
  9683  //
  9684  // Solidity: function COST_NRB() constant returns(uint256)
  9685  func (_SubmitHandler *SubmitHandlerCallerSession) COSTNRB() (*big.Int, error) {
  9686  	return _SubmitHandler.Contract.COSTNRB(&_SubmitHandler.CallOpts)
  9687  }
  9688  
  9689  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  9690  //
  9691  // Solidity: function COST_ORB() constant returns(uint256)
  9692  func (_SubmitHandler *SubmitHandlerCaller) COSTORB(opts *bind.CallOpts) (*big.Int, error) {
  9693  	var (
  9694  		ret0 = new(*big.Int)
  9695  	)
  9696  	out := ret0
  9697  	err := _SubmitHandler.contract.Call(opts, out, "COST_ORB")
  9698  	return *ret0, err
  9699  }
  9700  
  9701  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  9702  //
  9703  // Solidity: function COST_ORB() constant returns(uint256)
  9704  func (_SubmitHandler *SubmitHandlerSession) COSTORB() (*big.Int, error) {
  9705  	return _SubmitHandler.Contract.COSTORB(&_SubmitHandler.CallOpts)
  9706  }
  9707  
  9708  // COSTORB is a free data retrieval call binding the contract method 0xb2ae9ba8.
  9709  //
  9710  // Solidity: function COST_ORB() constant returns(uint256)
  9711  func (_SubmitHandler *SubmitHandlerCallerSession) COSTORB() (*big.Int, error) {
  9712  	return _SubmitHandler.Contract.COSTORB(&_SubmitHandler.CallOpts)
  9713  }
  9714  
  9715  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  9716  //
  9717  // Solidity: function COST_URB() constant returns(uint256)
  9718  func (_SubmitHandler *SubmitHandlerCaller) COSTURB(opts *bind.CallOpts) (*big.Int, error) {
  9719  	var (
  9720  		ret0 = new(*big.Int)
  9721  	)
  9722  	out := ret0
  9723  	err := _SubmitHandler.contract.Call(opts, out, "COST_URB")
  9724  	return *ret0, err
  9725  }
  9726  
  9727  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  9728  //
  9729  // Solidity: function COST_URB() constant returns(uint256)
  9730  func (_SubmitHandler *SubmitHandlerSession) COSTURB() (*big.Int, error) {
  9731  	return _SubmitHandler.Contract.COSTURB(&_SubmitHandler.CallOpts)
  9732  }
  9733  
  9734  // COSTURB is a free data retrieval call binding the contract method 0x192adc5b.
  9735  //
  9736  // Solidity: function COST_URB() constant returns(uint256)
  9737  func (_SubmitHandler *SubmitHandlerCallerSession) COSTURB() (*big.Int, error) {
  9738  	return _SubmitHandler.Contract.COSTURB(&_SubmitHandler.CallOpts)
  9739  }
  9740  
  9741  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  9742  //
  9743  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  9744  func (_SubmitHandler *SubmitHandlerCaller) COSTURBPREPARE(opts *bind.CallOpts) (*big.Int, error) {
  9745  	var (
  9746  		ret0 = new(*big.Int)
  9747  	)
  9748  	out := ret0
  9749  	err := _SubmitHandler.contract.Call(opts, out, "COST_URB_PREPARE")
  9750  	return *ret0, err
  9751  }
  9752  
  9753  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  9754  //
  9755  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  9756  func (_SubmitHandler *SubmitHandlerSession) COSTURBPREPARE() (*big.Int, error) {
  9757  	return _SubmitHandler.Contract.COSTURBPREPARE(&_SubmitHandler.CallOpts)
  9758  }
  9759  
  9760  // COSTURBPREPARE is a free data retrieval call binding the contract method 0x033cfbed.
  9761  //
  9762  // Solidity: function COST_URB_PREPARE() constant returns(uint256)
  9763  func (_SubmitHandler *SubmitHandlerCallerSession) COSTURBPREPARE() (*big.Int, error) {
  9764  	return _SubmitHandler.Contract.COSTURBPREPARE(&_SubmitHandler.CallOpts)
  9765  }
  9766  
  9767  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  9768  //
  9769  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  9770  func (_SubmitHandler *SubmitHandlerCaller) CPCOMPUTATION(opts *bind.CallOpts) (*big.Int, error) {
  9771  	var (
  9772  		ret0 = new(*big.Int)
  9773  	)
  9774  	out := ret0
  9775  	err := _SubmitHandler.contract.Call(opts, out, "CP_COMPUTATION")
  9776  	return *ret0, err
  9777  }
  9778  
  9779  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  9780  //
  9781  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  9782  func (_SubmitHandler *SubmitHandlerSession) CPCOMPUTATION() (*big.Int, error) {
  9783  	return _SubmitHandler.Contract.CPCOMPUTATION(&_SubmitHandler.CallOpts)
  9784  }
  9785  
  9786  // CPCOMPUTATION is a free data retrieval call binding the contract method 0x08c4fff0.
  9787  //
  9788  // Solidity: function CP_COMPUTATION() constant returns(uint256)
  9789  func (_SubmitHandler *SubmitHandlerCallerSession) CPCOMPUTATION() (*big.Int, error) {
  9790  	return _SubmitHandler.Contract.CPCOMPUTATION(&_SubmitHandler.CallOpts)
  9791  }
  9792  
  9793  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  9794  //
  9795  // Solidity: function CP_EXIT() constant returns(uint256)
  9796  func (_SubmitHandler *SubmitHandlerCaller) CPEXIT(opts *bind.CallOpts) (*big.Int, error) {
  9797  	var (
  9798  		ret0 = new(*big.Int)
  9799  	)
  9800  	out := ret0
  9801  	err := _SubmitHandler.contract.Call(opts, out, "CP_EXIT")
  9802  	return *ret0, err
  9803  }
  9804  
  9805  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  9806  //
  9807  // Solidity: function CP_EXIT() constant returns(uint256)
  9808  func (_SubmitHandler *SubmitHandlerSession) CPEXIT() (*big.Int, error) {
  9809  	return _SubmitHandler.Contract.CPEXIT(&_SubmitHandler.CallOpts)
  9810  }
  9811  
  9812  // CPEXIT is a free data retrieval call binding the contract method 0x8155717d.
  9813  //
  9814  // Solidity: function CP_EXIT() constant returns(uint256)
  9815  func (_SubmitHandler *SubmitHandlerCallerSession) CPEXIT() (*big.Int, error) {
  9816  	return _SubmitHandler.Contract.CPEXIT(&_SubmitHandler.CallOpts)
  9817  }
  9818  
  9819  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  9820  //
  9821  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  9822  func (_SubmitHandler *SubmitHandlerCaller) CPWITHHOLDING(opts *bind.CallOpts) (*big.Int, error) {
  9823  	var (
  9824  		ret0 = new(*big.Int)
  9825  	)
  9826  	out := ret0
  9827  	err := _SubmitHandler.contract.Call(opts, out, "CP_WITHHOLDING")
  9828  	return *ret0, err
  9829  }
  9830  
  9831  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  9832  //
  9833  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  9834  func (_SubmitHandler *SubmitHandlerSession) CPWITHHOLDING() (*big.Int, error) {
  9835  	return _SubmitHandler.Contract.CPWITHHOLDING(&_SubmitHandler.CallOpts)
  9836  }
  9837  
  9838  // CPWITHHOLDING is a free data retrieval call binding the contract method 0xb17fa6e9.
  9839  //
  9840  // Solidity: function CP_WITHHOLDING() constant returns(uint256)
  9841  func (_SubmitHandler *SubmitHandlerCallerSession) CPWITHHOLDING() (*big.Int, error) {
  9842  	return _SubmitHandler.Contract.CPWITHHOLDING(&_SubmitHandler.CallOpts)
  9843  }
  9844  
  9845  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  9846  //
  9847  // Solidity: function EROIdToFinalize() constant returns(uint256)
  9848  func (_SubmitHandler *SubmitHandlerCaller) EROIdToFinalize(opts *bind.CallOpts) (*big.Int, error) {
  9849  	var (
  9850  		ret0 = new(*big.Int)
  9851  	)
  9852  	out := ret0
  9853  	err := _SubmitHandler.contract.Call(opts, out, "EROIdToFinalize")
  9854  	return *ret0, err
  9855  }
  9856  
  9857  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  9858  //
  9859  // Solidity: function EROIdToFinalize() constant returns(uint256)
  9860  func (_SubmitHandler *SubmitHandlerSession) EROIdToFinalize() (*big.Int, error) {
  9861  	return _SubmitHandler.Contract.EROIdToFinalize(&_SubmitHandler.CallOpts)
  9862  }
  9863  
  9864  // EROIdToFinalize is a free data retrieval call binding the contract method 0x2dc6bb7b.
  9865  //
  9866  // Solidity: function EROIdToFinalize() constant returns(uint256)
  9867  func (_SubmitHandler *SubmitHandlerCallerSession) EROIdToFinalize() (*big.Int, error) {
  9868  	return _SubmitHandler.Contract.EROIdToFinalize(&_SubmitHandler.CallOpts)
  9869  }
  9870  
  9871  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  9872  //
  9873  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  9874  func (_SubmitHandler *SubmitHandlerCaller) EROs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  9875  	Timestamp  uint64
  9876  	IsExit     bool
  9877  	IsTransfer bool
  9878  	Finalized  bool
  9879  	Challenged bool
  9880  	Value      *big.Int
  9881  	Requestor  common.Address
  9882  	To         common.Address
  9883  	TrieKey    [32]byte
  9884  	Hash       [32]byte
  9885  	TrieValue  []byte
  9886  }, error) {
  9887  	ret := new(struct {
  9888  		Timestamp  uint64
  9889  		IsExit     bool
  9890  		IsTransfer bool
  9891  		Finalized  bool
  9892  		Challenged bool
  9893  		Value      *big.Int
  9894  		Requestor  common.Address
  9895  		To         common.Address
  9896  		TrieKey    [32]byte
  9897  		Hash       [32]byte
  9898  		TrieValue  []byte
  9899  	})
  9900  	out := ret
  9901  	err := _SubmitHandler.contract.Call(opts, out, "EROs", arg0)
  9902  	return *ret, err
  9903  }
  9904  
  9905  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  9906  //
  9907  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  9908  func (_SubmitHandler *SubmitHandlerSession) EROs(arg0 *big.Int) (struct {
  9909  	Timestamp  uint64
  9910  	IsExit     bool
  9911  	IsTransfer bool
  9912  	Finalized  bool
  9913  	Challenged bool
  9914  	Value      *big.Int
  9915  	Requestor  common.Address
  9916  	To         common.Address
  9917  	TrieKey    [32]byte
  9918  	Hash       [32]byte
  9919  	TrieValue  []byte
  9920  }, error) {
  9921  	return _SubmitHandler.Contract.EROs(&_SubmitHandler.CallOpts, arg0)
  9922  }
  9923  
  9924  // EROs is a free data retrieval call binding the contract method 0xb443f3cc.
  9925  //
  9926  // Solidity: function EROs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  9927  func (_SubmitHandler *SubmitHandlerCallerSession) EROs(arg0 *big.Int) (struct {
  9928  	Timestamp  uint64
  9929  	IsExit     bool
  9930  	IsTransfer bool
  9931  	Finalized  bool
  9932  	Challenged bool
  9933  	Value      *big.Int
  9934  	Requestor  common.Address
  9935  	To         common.Address
  9936  	TrieKey    [32]byte
  9937  	Hash       [32]byte
  9938  	TrieValue  []byte
  9939  }, error) {
  9940  	return _SubmitHandler.Contract.EROs(&_SubmitHandler.CallOpts, arg0)
  9941  }
  9942  
  9943  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  9944  //
  9945  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  9946  func (_SubmitHandler *SubmitHandlerCaller) ERUIdToFinalize(opts *bind.CallOpts) (*big.Int, error) {
  9947  	var (
  9948  		ret0 = new(*big.Int)
  9949  	)
  9950  	out := ret0
  9951  	err := _SubmitHandler.contract.Call(opts, out, "ERUIdToFinalize")
  9952  	return *ret0, err
  9953  }
  9954  
  9955  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  9956  //
  9957  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  9958  func (_SubmitHandler *SubmitHandlerSession) ERUIdToFinalize() (*big.Int, error) {
  9959  	return _SubmitHandler.Contract.ERUIdToFinalize(&_SubmitHandler.CallOpts)
  9960  }
  9961  
  9962  // ERUIdToFinalize is a free data retrieval call binding the contract method 0xc54626cc.
  9963  //
  9964  // Solidity: function ERUIdToFinalize() constant returns(uint256)
  9965  func (_SubmitHandler *SubmitHandlerCallerSession) ERUIdToFinalize() (*big.Int, error) {
  9966  	return _SubmitHandler.Contract.ERUIdToFinalize(&_SubmitHandler.CallOpts)
  9967  }
  9968  
  9969  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
  9970  //
  9971  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
  9972  func (_SubmitHandler *SubmitHandlerCaller) ERUs(opts *bind.CallOpts, arg0 *big.Int) (struct {
  9973  	Timestamp  uint64
  9974  	IsExit     bool
  9975  	IsTransfer bool
  9976  	Finalized  bool
  9977  	Challenged bool
  9978  	Value      *big.Int
  9979  	Requestor  common.Address
  9980  	To         common.Address
  9981  	TrieKey    [32]byte
  9982  	Hash       [32]byte
  9983  	TrieValue  []byte
  9984  }, error) {
  9985  	ret := new(struct {
  9986  		Timestamp  uint64
  9987  		IsExit     bool
  9988  		IsTransfer bool
  9989  		Finalized  bool
  9990  		Challenged bool
  9991  		Value      *big.Int
  9992  		Requestor  common.Address
  9993  		To         common.Address
  9994  		TrieKey    [32]byte
  9995  		Hash       [32]byte
  9996  		TrieValue  []byte
  9997  	})
  9998  	out := ret
  9999  	err := _SubmitHandler.contract.Call(opts, out, "ERUs", arg0)
 10000  	return *ret, err
 10001  }
 10002  
 10003  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
 10004  //
 10005  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
 10006  func (_SubmitHandler *SubmitHandlerSession) ERUs(arg0 *big.Int) (struct {
 10007  	Timestamp  uint64
 10008  	IsExit     bool
 10009  	IsTransfer bool
 10010  	Finalized  bool
 10011  	Challenged bool
 10012  	Value      *big.Int
 10013  	Requestor  common.Address
 10014  	To         common.Address
 10015  	TrieKey    [32]byte
 10016  	Hash       [32]byte
 10017  	TrieValue  []byte
 10018  }, error) {
 10019  	return _SubmitHandler.Contract.ERUs(&_SubmitHandler.CallOpts, arg0)
 10020  }
 10021  
 10022  // ERUs is a free data retrieval call binding the contract method 0xf4f31de4.
 10023  //
 10024  // Solidity: function ERUs(uint256 ) constant returns(uint64 timestamp, bool isExit, bool isTransfer, bool finalized, bool challenged, uint128 value, address requestor, address to, bytes32 trieKey, bytes32 hash, bytes trieValue)
 10025  func (_SubmitHandler *SubmitHandlerCallerSession) ERUs(arg0 *big.Int) (struct {
 10026  	Timestamp  uint64
 10027  	IsExit     bool
 10028  	IsTransfer bool
 10029  	Finalized  bool
 10030  	Challenged bool
 10031  	Value      *big.Int
 10032  	Requestor  common.Address
 10033  	To         common.Address
 10034  	TrieKey    [32]byte
 10035  	Hash       [32]byte
 10036  	TrieValue  []byte
 10037  }, error) {
 10038  	return _SubmitHandler.Contract.ERUs(&_SubmitHandler.CallOpts, arg0)
 10039  }
 10040  
 10041  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
 10042  //
 10043  // Solidity: function NRELength() constant returns(uint256)
 10044  func (_SubmitHandler *SubmitHandlerCaller) NRELength(opts *bind.CallOpts) (*big.Int, error) {
 10045  	var (
 10046  		ret0 = new(*big.Int)
 10047  	)
 10048  	out := ret0
 10049  	err := _SubmitHandler.contract.Call(opts, out, "NRELength")
 10050  	return *ret0, err
 10051  }
 10052  
 10053  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
 10054  //
 10055  // Solidity: function NRELength() constant returns(uint256)
 10056  func (_SubmitHandler *SubmitHandlerSession) NRELength() (*big.Int, error) {
 10057  	return _SubmitHandler.Contract.NRELength(&_SubmitHandler.CallOpts)
 10058  }
 10059  
 10060  // NRELength is a free data retrieval call binding the contract method 0xab96da2d.
 10061  //
 10062  // Solidity: function NRELength() constant returns(uint256)
 10063  func (_SubmitHandler *SubmitHandlerCallerSession) NRELength() (*big.Int, error) {
 10064  	return _SubmitHandler.Contract.NRELength(&_SubmitHandler.CallOpts)
 10065  }
 10066  
 10067  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
 10068  //
 10069  // Solidity: function NULL_ADDRESS() constant returns(address)
 10070  func (_SubmitHandler *SubmitHandlerCaller) NULLADDRESS(opts *bind.CallOpts) (common.Address, error) {
 10071  	var (
 10072  		ret0 = new(common.Address)
 10073  	)
 10074  	out := ret0
 10075  	err := _SubmitHandler.contract.Call(opts, out, "NULL_ADDRESS")
 10076  	return *ret0, err
 10077  }
 10078  
 10079  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
 10080  //
 10081  // Solidity: function NULL_ADDRESS() constant returns(address)
 10082  func (_SubmitHandler *SubmitHandlerSession) NULLADDRESS() (common.Address, error) {
 10083  	return _SubmitHandler.Contract.NULLADDRESS(&_SubmitHandler.CallOpts)
 10084  }
 10085  
 10086  // NULLADDRESS is a free data retrieval call binding the contract method 0xde0ce17d.
 10087  //
 10088  // Solidity: function NULL_ADDRESS() constant returns(address)
 10089  func (_SubmitHandler *SubmitHandlerCallerSession) NULLADDRESS() (common.Address, error) {
 10090  	return _SubmitHandler.Contract.NULLADDRESS(&_SubmitHandler.CallOpts)
 10091  }
 10092  
 10093  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
 10094  //
 10095  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
 10096  func (_SubmitHandler *SubmitHandlerCaller) ORBs(opts *bind.CallOpts, arg0 *big.Int) (struct {
 10097  	Submitted    bool
 10098  	NumEnter     uint64
 10099  	EpochNumber  uint64
 10100  	RequestStart uint64
 10101  	RequestEnd   uint64
 10102  	Trie         common.Address
 10103  }, error) {
 10104  	ret := new(struct {
 10105  		Submitted    bool
 10106  		NumEnter     uint64
 10107  		EpochNumber  uint64
 10108  		RequestStart uint64
 10109  		RequestEnd   uint64
 10110  		Trie         common.Address
 10111  	})
 10112  	out := ret
 10113  	err := _SubmitHandler.contract.Call(opts, out, "ORBs", arg0)
 10114  	return *ret, err
 10115  }
 10116  
 10117  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
 10118  //
 10119  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
 10120  func (_SubmitHandler *SubmitHandlerSession) ORBs(arg0 *big.Int) (struct {
 10121  	Submitted    bool
 10122  	NumEnter     uint64
 10123  	EpochNumber  uint64
 10124  	RequestStart uint64
 10125  	RequestEnd   uint64
 10126  	Trie         common.Address
 10127  }, error) {
 10128  	return _SubmitHandler.Contract.ORBs(&_SubmitHandler.CallOpts, arg0)
 10129  }
 10130  
 10131  // ORBs is a free data retrieval call binding the contract method 0xea7f22a8.
 10132  //
 10133  // Solidity: function ORBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
 10134  func (_SubmitHandler *SubmitHandlerCallerSession) ORBs(arg0 *big.Int) (struct {
 10135  	Submitted    bool
 10136  	NumEnter     uint64
 10137  	EpochNumber  uint64
 10138  	RequestStart uint64
 10139  	RequestEnd   uint64
 10140  	Trie         common.Address
 10141  }, error) {
 10142  	return _SubmitHandler.Contract.ORBs(&_SubmitHandler.CallOpts, arg0)
 10143  }
 10144  
 10145  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
 10146  //
 10147  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
 10148  func (_SubmitHandler *SubmitHandlerCaller) PREPARETIMEOUT(opts *bind.CallOpts) (*big.Int, error) {
 10149  	var (
 10150  		ret0 = new(*big.Int)
 10151  	)
 10152  	out := ret0
 10153  	err := _SubmitHandler.contract.Call(opts, out, "PREPARE_TIMEOUT")
 10154  	return *ret0, err
 10155  }
 10156  
 10157  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
 10158  //
 10159  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
 10160  func (_SubmitHandler *SubmitHandlerSession) PREPARETIMEOUT() (*big.Int, error) {
 10161  	return _SubmitHandler.Contract.PREPARETIMEOUT(&_SubmitHandler.CallOpts)
 10162  }
 10163  
 10164  // PREPARETIMEOUT is a free data retrieval call binding the contract method 0xc2bc88fa.
 10165  //
 10166  // Solidity: function PREPARE_TIMEOUT() constant returns(uint256)
 10167  func (_SubmitHandler *SubmitHandlerCallerSession) PREPARETIMEOUT() (*big.Int, error) {
 10168  	return _SubmitHandler.Contract.PREPARETIMEOUT(&_SubmitHandler.CallOpts)
 10169  }
 10170  
 10171  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
 10172  //
 10173  // Solidity: function REQUEST_GAS() constant returns(uint256)
 10174  func (_SubmitHandler *SubmitHandlerCaller) REQUESTGAS(opts *bind.CallOpts) (*big.Int, error) {
 10175  	var (
 10176  		ret0 = new(*big.Int)
 10177  	)
 10178  	out := ret0
 10179  	err := _SubmitHandler.contract.Call(opts, out, "REQUEST_GAS")
 10180  	return *ret0, err
 10181  }
 10182  
 10183  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
 10184  //
 10185  // Solidity: function REQUEST_GAS() constant returns(uint256)
 10186  func (_SubmitHandler *SubmitHandlerSession) REQUESTGAS() (*big.Int, error) {
 10187  	return _SubmitHandler.Contract.REQUESTGAS(&_SubmitHandler.CallOpts)
 10188  }
 10189  
 10190  // REQUESTGAS is a free data retrieval call binding the contract method 0x8eb288ca.
 10191  //
 10192  // Solidity: function REQUEST_GAS() constant returns(uint256)
 10193  func (_SubmitHandler *SubmitHandlerCallerSession) REQUESTGAS() (*big.Int, error) {
 10194  	return _SubmitHandler.Contract.REQUESTGAS(&_SubmitHandler.CallOpts)
 10195  }
 10196  
 10197  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
 10198  //
 10199  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
 10200  func (_SubmitHandler *SubmitHandlerCaller) URBs(opts *bind.CallOpts, arg0 *big.Int) (struct {
 10201  	Submitted    bool
 10202  	NumEnter     uint64
 10203  	EpochNumber  uint64
 10204  	RequestStart uint64
 10205  	RequestEnd   uint64
 10206  	Trie         common.Address
 10207  }, error) {
 10208  	ret := new(struct {
 10209  		Submitted    bool
 10210  		NumEnter     uint64
 10211  		EpochNumber  uint64
 10212  		RequestStart uint64
 10213  		RequestEnd   uint64
 10214  		Trie         common.Address
 10215  	})
 10216  	out := ret
 10217  	err := _SubmitHandler.contract.Call(opts, out, "URBs", arg0)
 10218  	return *ret, err
 10219  }
 10220  
 10221  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
 10222  //
 10223  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
 10224  func (_SubmitHandler *SubmitHandlerSession) URBs(arg0 *big.Int) (struct {
 10225  	Submitted    bool
 10226  	NumEnter     uint64
 10227  	EpochNumber  uint64
 10228  	RequestStart uint64
 10229  	RequestEnd   uint64
 10230  	Trie         common.Address
 10231  }, error) {
 10232  	return _SubmitHandler.Contract.URBs(&_SubmitHandler.CallOpts, arg0)
 10233  }
 10234  
 10235  // URBs is a free data retrieval call binding the contract method 0xc0e86064.
 10236  //
 10237  // Solidity: function URBs(uint256 ) constant returns(bool submitted, uint64 numEnter, uint64 epochNumber, uint64 requestStart, uint64 requestEnd, address trie)
 10238  func (_SubmitHandler *SubmitHandlerCallerSession) URBs(arg0 *big.Int) (struct {
 10239  	Submitted    bool
 10240  	NumEnter     uint64
 10241  	EpochNumber  uint64
 10242  	RequestStart uint64
 10243  	RequestEnd   uint64
 10244  	Trie         common.Address
 10245  }, error) {
 10246  	return _SubmitHandler.Contract.URBs(&_SubmitHandler.CallOpts, arg0)
 10247  }
 10248  
 10249  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
 10250  //
 10251  // Solidity: function currentFork() constant returns(uint256)
 10252  func (_SubmitHandler *SubmitHandlerCaller) CurrentFork(opts *bind.CallOpts) (*big.Int, error) {
 10253  	var (
 10254  		ret0 = new(*big.Int)
 10255  	)
 10256  	out := ret0
 10257  	err := _SubmitHandler.contract.Call(opts, out, "currentFork")
 10258  	return *ret0, err
 10259  }
 10260  
 10261  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
 10262  //
 10263  // Solidity: function currentFork() constant returns(uint256)
 10264  func (_SubmitHandler *SubmitHandlerSession) CurrentFork() (*big.Int, error) {
 10265  	return _SubmitHandler.Contract.CurrentFork(&_SubmitHandler.CallOpts)
 10266  }
 10267  
 10268  // CurrentFork is a free data retrieval call binding the contract method 0x183d2d1c.
 10269  //
 10270  // Solidity: function currentFork() constant returns(uint256)
 10271  func (_SubmitHandler *SubmitHandlerCallerSession) CurrentFork() (*big.Int, error) {
 10272  	return _SubmitHandler.Contract.CurrentFork(&_SubmitHandler.CallOpts)
 10273  }
 10274  
 10275  // Development is a free data retrieval call binding the contract method 0x7b929c27.
 10276  //
 10277  // Solidity: function development() constant returns(bool)
 10278  func (_SubmitHandler *SubmitHandlerCaller) Development(opts *bind.CallOpts) (bool, error) {
 10279  	var (
 10280  		ret0 = new(bool)
 10281  	)
 10282  	out := ret0
 10283  	err := _SubmitHandler.contract.Call(opts, out, "development")
 10284  	return *ret0, err
 10285  }
 10286  
 10287  // Development is a free data retrieval call binding the contract method 0x7b929c27.
 10288  //
 10289  // Solidity: function development() constant returns(bool)
 10290  func (_SubmitHandler *SubmitHandlerSession) Development() (bool, error) {
 10291  	return _SubmitHandler.Contract.Development(&_SubmitHandler.CallOpts)
 10292  }
 10293  
 10294  // Development is a free data retrieval call binding the contract method 0x7b929c27.
 10295  //
 10296  // Solidity: function development() constant returns(bool)
 10297  func (_SubmitHandler *SubmitHandlerCallerSession) Development() (bool, error) {
 10298  	return _SubmitHandler.Contract.Development(&_SubmitHandler.CallOpts)
 10299  }
 10300  
 10301  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
 10302  //
 10303  // Solidity: function epochHandler() constant returns(address)
 10304  func (_SubmitHandler *SubmitHandlerCaller) EpochHandler(opts *bind.CallOpts) (common.Address, error) {
 10305  	var (
 10306  		ret0 = new(common.Address)
 10307  	)
 10308  	out := ret0
 10309  	err := _SubmitHandler.contract.Call(opts, out, "epochHandler")
 10310  	return *ret0, err
 10311  }
 10312  
 10313  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
 10314  //
 10315  // Solidity: function epochHandler() constant returns(address)
 10316  func (_SubmitHandler *SubmitHandlerSession) EpochHandler() (common.Address, error) {
 10317  	return _SubmitHandler.Contract.EpochHandler(&_SubmitHandler.CallOpts)
 10318  }
 10319  
 10320  // EpochHandler is a free data retrieval call binding the contract method 0xe7b88b80.
 10321  //
 10322  // Solidity: function epochHandler() constant returns(address)
 10323  func (_SubmitHandler *SubmitHandlerCallerSession) EpochHandler() (common.Address, error) {
 10324  	return _SubmitHandler.Contract.EpochHandler(&_SubmitHandler.CallOpts)
 10325  }
 10326  
 10327  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
 10328  //
 10329  // Solidity: function etherToken() constant returns(address)
 10330  func (_SubmitHandler *SubmitHandlerCaller) EtherToken(opts *bind.CallOpts) (common.Address, error) {
 10331  	var (
 10332  		ret0 = new(common.Address)
 10333  	)
 10334  	out := ret0
 10335  	err := _SubmitHandler.contract.Call(opts, out, "etherToken")
 10336  	return *ret0, err
 10337  }
 10338  
 10339  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
 10340  //
 10341  // Solidity: function etherToken() constant returns(address)
 10342  func (_SubmitHandler *SubmitHandlerSession) EtherToken() (common.Address, error) {
 10343  	return _SubmitHandler.Contract.EtherToken(&_SubmitHandler.CallOpts)
 10344  }
 10345  
 10346  // EtherToken is a free data retrieval call binding the contract method 0xb8066bcb.
 10347  //
 10348  // Solidity: function etherToken() constant returns(address)
 10349  func (_SubmitHandler *SubmitHandlerCallerSession) EtherToken() (common.Address, error) {
 10350  	return _SubmitHandler.Contract.EtherToken(&_SubmitHandler.CallOpts)
 10351  }
 10352  
 10353  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
 10354  //
 10355  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
 10356  func (_SubmitHandler *SubmitHandlerCaller) FirstFilledORENumber(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
 10357  	var (
 10358  		ret0 = new(*big.Int)
 10359  	)
 10360  	out := ret0
 10361  	err := _SubmitHandler.contract.Call(opts, out, "firstFilledORENumber", arg0)
 10362  	return *ret0, err
 10363  }
 10364  
 10365  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
 10366  //
 10367  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
 10368  func (_SubmitHandler *SubmitHandlerSession) FirstFilledORENumber(arg0 *big.Int) (*big.Int, error) {
 10369  	return _SubmitHandler.Contract.FirstFilledORENumber(&_SubmitHandler.CallOpts, arg0)
 10370  }
 10371  
 10372  // FirstFilledORENumber is a free data retrieval call binding the contract method 0x72ecb9a8.
 10373  //
 10374  // Solidity: function firstFilledORENumber(uint256 ) constant returns(uint256)
 10375  func (_SubmitHandler *SubmitHandlerCallerSession) FirstFilledORENumber(arg0 *big.Int) (*big.Int, error) {
 10376  	return _SubmitHandler.Contract.FirstFilledORENumber(&_SubmitHandler.CallOpts, arg0)
 10377  }
 10378  
 10379  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
 10380  //
 10381  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
 10382  func (_SubmitHandler *SubmitHandlerCaller) FirstNonEmptyRequestEpoch(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
 10383  	var (
 10384  		ret0 = new(*big.Int)
 10385  	)
 10386  	out := ret0
 10387  	err := _SubmitHandler.contract.Call(opts, out, "firstNonEmptyRequestEpoch", arg0)
 10388  	return *ret0, err
 10389  }
 10390  
 10391  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
 10392  //
 10393  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
 10394  func (_SubmitHandler *SubmitHandlerSession) FirstNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
 10395  	return _SubmitHandler.Contract.FirstNonEmptyRequestEpoch(&_SubmitHandler.CallOpts, arg0)
 10396  }
 10397  
 10398  // FirstNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xca6f6380.
 10399  //
 10400  // Solidity: function firstNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
 10401  func (_SubmitHandler *SubmitHandlerCallerSession) FirstNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
 10402  	return _SubmitHandler.Contract.FirstNonEmptyRequestEpoch(&_SubmitHandler.CallOpts, arg0)
 10403  }
 10404  
 10405  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
 10406  //
 10407  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
 10408  func (_SubmitHandler *SubmitHandlerCaller) Forks(opts *bind.CallOpts, arg0 *big.Int) (struct {
 10409  	ForkedBlock        uint64
 10410  	FirstEpoch         uint64
 10411  	LastEpoch          uint64
 10412  	FirstBlock         uint64
 10413  	LastBlock          uint64
 10414  	LastFinalizedEpoch uint64
 10415  	LastFinalizedBlock uint64
 10416  	Timestamp          uint64
 10417  	FirstEnterEpoch    uint64
 10418  	LastEnterEpoch     uint64
 10419  	NextBlockToRebase  uint64
 10420  	Rebased            bool
 10421  }, error) {
 10422  	ret := new(struct {
 10423  		ForkedBlock        uint64
 10424  		FirstEpoch         uint64
 10425  		LastEpoch          uint64
 10426  		FirstBlock         uint64
 10427  		LastBlock          uint64
 10428  		LastFinalizedEpoch uint64
 10429  		LastFinalizedBlock uint64
 10430  		Timestamp          uint64
 10431  		FirstEnterEpoch    uint64
 10432  		LastEnterEpoch     uint64
 10433  		NextBlockToRebase  uint64
 10434  		Rebased            bool
 10435  	})
 10436  	out := ret
 10437  	err := _SubmitHandler.contract.Call(opts, out, "forks", arg0)
 10438  	return *ret, err
 10439  }
 10440  
 10441  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
 10442  //
 10443  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
 10444  func (_SubmitHandler *SubmitHandlerSession) Forks(arg0 *big.Int) (struct {
 10445  	ForkedBlock        uint64
 10446  	FirstEpoch         uint64
 10447  	LastEpoch          uint64
 10448  	FirstBlock         uint64
 10449  	LastBlock          uint64
 10450  	LastFinalizedEpoch uint64
 10451  	LastFinalizedBlock uint64
 10452  	Timestamp          uint64
 10453  	FirstEnterEpoch    uint64
 10454  	LastEnterEpoch     uint64
 10455  	NextBlockToRebase  uint64
 10456  	Rebased            bool
 10457  }, error) {
 10458  	return _SubmitHandler.Contract.Forks(&_SubmitHandler.CallOpts, arg0)
 10459  }
 10460  
 10461  // Forks is a free data retrieval call binding the contract method 0x4ba3a126.
 10462  //
 10463  // Solidity: function forks(uint256 ) constant returns(uint64 forkedBlock, uint64 firstEpoch, uint64 lastEpoch, uint64 firstBlock, uint64 lastBlock, uint64 lastFinalizedEpoch, uint64 lastFinalizedBlock, uint64 timestamp, uint64 firstEnterEpoch, uint64 lastEnterEpoch, uint64 nextBlockToRebase, bool rebased)
 10464  func (_SubmitHandler *SubmitHandlerCallerSession) Forks(arg0 *big.Int) (struct {
 10465  	ForkedBlock        uint64
 10466  	FirstEpoch         uint64
 10467  	LastEpoch          uint64
 10468  	FirstBlock         uint64
 10469  	LastBlock          uint64
 10470  	LastFinalizedEpoch uint64
 10471  	LastFinalizedBlock uint64
 10472  	Timestamp          uint64
 10473  	FirstEnterEpoch    uint64
 10474  	LastEnterEpoch     uint64
 10475  	NextBlockToRebase  uint64
 10476  	Rebased            bool
 10477  }, error) {
 10478  	return _SubmitHandler.Contract.Forks(&_SubmitHandler.CallOpts, arg0)
 10479  }
 10480  
 10481  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
 10482  //
 10483  // Solidity: function isRootChain() constant returns(bool)
 10484  func (_SubmitHandler *SubmitHandlerCaller) IsRootChain(opts *bind.CallOpts) (bool, error) {
 10485  	var (
 10486  		ret0 = new(bool)
 10487  	)
 10488  	out := ret0
 10489  	err := _SubmitHandler.contract.Call(opts, out, "isRootChain")
 10490  	return *ret0, err
 10491  }
 10492  
 10493  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
 10494  //
 10495  // Solidity: function isRootChain() constant returns(bool)
 10496  func (_SubmitHandler *SubmitHandlerSession) IsRootChain() (bool, error) {
 10497  	return _SubmitHandler.Contract.IsRootChain(&_SubmitHandler.CallOpts)
 10498  }
 10499  
 10500  // IsRootChain is a free data retrieval call binding the contract method 0x420bb4b8.
 10501  //
 10502  // Solidity: function isRootChain() constant returns(bool)
 10503  func (_SubmitHandler *SubmitHandlerCallerSession) IsRootChain() (bool, error) {
 10504  	return _SubmitHandler.Contract.IsRootChain(&_SubmitHandler.CallOpts)
 10505  }
 10506  
 10507  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
 10508  //
 10509  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
 10510  func (_SubmitHandler *SubmitHandlerCaller) LastAppliedBlockNumber(opts *bind.CallOpts) (*big.Int, error) {
 10511  	var (
 10512  		ret0 = new(*big.Int)
 10513  	)
 10514  	out := ret0
 10515  	err := _SubmitHandler.contract.Call(opts, out, "lastAppliedBlockNumber")
 10516  	return *ret0, err
 10517  }
 10518  
 10519  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
 10520  //
 10521  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
 10522  func (_SubmitHandler *SubmitHandlerSession) LastAppliedBlockNumber() (*big.Int, error) {
 10523  	return _SubmitHandler.Contract.LastAppliedBlockNumber(&_SubmitHandler.CallOpts)
 10524  }
 10525  
 10526  // LastAppliedBlockNumber is a free data retrieval call binding the contract method 0xfb788a27.
 10527  //
 10528  // Solidity: function lastAppliedBlockNumber() constant returns(uint256)
 10529  func (_SubmitHandler *SubmitHandlerCallerSession) LastAppliedBlockNumber() (*big.Int, error) {
 10530  	return _SubmitHandler.Contract.LastAppliedBlockNumber(&_SubmitHandler.CallOpts)
 10531  }
 10532  
 10533  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
 10534  //
 10535  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
 10536  func (_SubmitHandler *SubmitHandlerCaller) LastAppliedEpochNumber(opts *bind.CallOpts) (*big.Int, error) {
 10537  	var (
 10538  		ret0 = new(*big.Int)
 10539  	)
 10540  	out := ret0
 10541  	err := _SubmitHandler.contract.Call(opts, out, "lastAppliedEpochNumber")
 10542  	return *ret0, err
 10543  }
 10544  
 10545  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
 10546  //
 10547  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
 10548  func (_SubmitHandler *SubmitHandlerSession) LastAppliedEpochNumber() (*big.Int, error) {
 10549  	return _SubmitHandler.Contract.LastAppliedEpochNumber(&_SubmitHandler.CallOpts)
 10550  }
 10551  
 10552  // LastAppliedEpochNumber is a free data retrieval call binding the contract method 0xc8ad329f.
 10553  //
 10554  // Solidity: function lastAppliedEpochNumber() constant returns(uint256)
 10555  func (_SubmitHandler *SubmitHandlerCallerSession) LastAppliedEpochNumber() (*big.Int, error) {
 10556  	return _SubmitHandler.Contract.LastAppliedEpochNumber(&_SubmitHandler.CallOpts)
 10557  }
 10558  
 10559  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
 10560  //
 10561  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
 10562  func (_SubmitHandler *SubmitHandlerCaller) LastAppliedForkNumber(opts *bind.CallOpts) (*big.Int, error) {
 10563  	var (
 10564  		ret0 = new(*big.Int)
 10565  	)
 10566  	out := ret0
 10567  	err := _SubmitHandler.contract.Call(opts, out, "lastAppliedForkNumber")
 10568  	return *ret0, err
 10569  }
 10570  
 10571  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
 10572  //
 10573  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
 10574  func (_SubmitHandler *SubmitHandlerSession) LastAppliedForkNumber() (*big.Int, error) {
 10575  	return _SubmitHandler.Contract.LastAppliedForkNumber(&_SubmitHandler.CallOpts)
 10576  }
 10577  
 10578  // LastAppliedForkNumber is a free data retrieval call binding the contract method 0x164bc2ae.
 10579  //
 10580  // Solidity: function lastAppliedForkNumber() constant returns(uint256)
 10581  func (_SubmitHandler *SubmitHandlerCallerSession) LastAppliedForkNumber() (*big.Int, error) {
 10582  	return _SubmitHandler.Contract.LastAppliedForkNumber(&_SubmitHandler.CallOpts)
 10583  }
 10584  
 10585  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
 10586  //
 10587  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
 10588  func (_SubmitHandler *SubmitHandlerCaller) LastNonEmptyRequestEpoch(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
 10589  	var (
 10590  		ret0 = new(*big.Int)
 10591  	)
 10592  	out := ret0
 10593  	err := _SubmitHandler.contract.Call(opts, out, "lastNonEmptyRequestEpoch", arg0)
 10594  	return *ret0, err
 10595  }
 10596  
 10597  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
 10598  //
 10599  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
 10600  func (_SubmitHandler *SubmitHandlerSession) LastNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
 10601  	return _SubmitHandler.Contract.LastNonEmptyRequestEpoch(&_SubmitHandler.CallOpts, arg0)
 10602  }
 10603  
 10604  // LastNonEmptyRequestEpoch is a free data retrieval call binding the contract method 0xb6715647.
 10605  //
 10606  // Solidity: function lastNonEmptyRequestEpoch(uint256 ) constant returns(uint256)
 10607  func (_SubmitHandler *SubmitHandlerCallerSession) LastNonEmptyRequestEpoch(arg0 *big.Int) (*big.Int, error) {
 10608  	return _SubmitHandler.Contract.LastNonEmptyRequestEpoch(&_SubmitHandler.CallOpts, arg0)
 10609  }
 10610  
 10611  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
 10612  //
 10613  // Solidity: function numEnterForORB() constant returns(uint256)
 10614  func (_SubmitHandler *SubmitHandlerCaller) NumEnterForORB(opts *bind.CallOpts) (*big.Int, error) {
 10615  	var (
 10616  		ret0 = new(*big.Int)
 10617  	)
 10618  	out := ret0
 10619  	err := _SubmitHandler.contract.Call(opts, out, "numEnterForORB")
 10620  	return *ret0, err
 10621  }
 10622  
 10623  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
 10624  //
 10625  // Solidity: function numEnterForORB() constant returns(uint256)
 10626  func (_SubmitHandler *SubmitHandlerSession) NumEnterForORB() (*big.Int, error) {
 10627  	return _SubmitHandler.Contract.NumEnterForORB(&_SubmitHandler.CallOpts)
 10628  }
 10629  
 10630  // NumEnterForORB is a free data retrieval call binding the contract method 0x23691566.
 10631  //
 10632  // Solidity: function numEnterForORB() constant returns(uint256)
 10633  func (_SubmitHandler *SubmitHandlerCallerSession) NumEnterForORB() (*big.Int, error) {
 10634  	return _SubmitHandler.Contract.NumEnterForORB(&_SubmitHandler.CallOpts)
 10635  }
 10636  
 10637  // Operator is a free data retrieval call binding the contract method 0x570ca735.
 10638  //
 10639  // Solidity: function operator() constant returns(address)
 10640  func (_SubmitHandler *SubmitHandlerCaller) Operator(opts *bind.CallOpts) (common.Address, error) {
 10641  	var (
 10642  		ret0 = new(common.Address)
 10643  	)
 10644  	out := ret0
 10645  	err := _SubmitHandler.contract.Call(opts, out, "operator")
 10646  	return *ret0, err
 10647  }
 10648  
 10649  // Operator is a free data retrieval call binding the contract method 0x570ca735.
 10650  //
 10651  // Solidity: function operator() constant returns(address)
 10652  func (_SubmitHandler *SubmitHandlerSession) Operator() (common.Address, error) {
 10653  	return _SubmitHandler.Contract.Operator(&_SubmitHandler.CallOpts)
 10654  }
 10655  
 10656  // Operator is a free data retrieval call binding the contract method 0x570ca735.
 10657  //
 10658  // Solidity: function operator() constant returns(address)
 10659  func (_SubmitHandler *SubmitHandlerCallerSession) Operator() (common.Address, error) {
 10660  	return _SubmitHandler.Contract.Operator(&_SubmitHandler.CallOpts)
 10661  }
 10662  
 10663  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
 10664  //
 10665  // Solidity: function requestableContracts(address ) constant returns(address)
 10666  func (_SubmitHandler *SubmitHandlerCaller) RequestableContracts(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
 10667  	var (
 10668  		ret0 = new(common.Address)
 10669  	)
 10670  	out := ret0
 10671  	err := _SubmitHandler.contract.Call(opts, out, "requestableContracts", arg0)
 10672  	return *ret0, err
 10673  }
 10674  
 10675  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
 10676  //
 10677  // Solidity: function requestableContracts(address ) constant returns(address)
 10678  func (_SubmitHandler *SubmitHandlerSession) RequestableContracts(arg0 common.Address) (common.Address, error) {
 10679  	return _SubmitHandler.Contract.RequestableContracts(&_SubmitHandler.CallOpts, arg0)
 10680  }
 10681  
 10682  // RequestableContracts is a free data retrieval call binding the contract method 0xda0185f8.
 10683  //
 10684  // Solidity: function requestableContracts(address ) constant returns(address)
 10685  func (_SubmitHandler *SubmitHandlerCallerSession) RequestableContracts(arg0 common.Address) (common.Address, error) {
 10686  	return _SubmitHandler.Contract.RequestableContracts(&_SubmitHandler.CallOpts, arg0)
 10687  }
 10688  
 10689  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 10690  //
 10691  // Solidity: function seigManager() constant returns(address)
 10692  func (_SubmitHandler *SubmitHandlerCaller) SeigManager(opts *bind.CallOpts) (common.Address, error) {
 10693  	var (
 10694  		ret0 = new(common.Address)
 10695  	)
 10696  	out := ret0
 10697  	err := _SubmitHandler.contract.Call(opts, out, "seigManager")
 10698  	return *ret0, err
 10699  }
 10700  
 10701  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 10702  //
 10703  // Solidity: function seigManager() constant returns(address)
 10704  func (_SubmitHandler *SubmitHandlerSession) SeigManager() (common.Address, error) {
 10705  	return _SubmitHandler.Contract.SeigManager(&_SubmitHandler.CallOpts)
 10706  }
 10707  
 10708  // SeigManager is a free data retrieval call binding the contract method 0x6fb7f558.
 10709  //
 10710  // Solidity: function seigManager() constant returns(address)
 10711  func (_SubmitHandler *SubmitHandlerCallerSession) SeigManager() (common.Address, error) {
 10712  	return _SubmitHandler.Contract.SeigManager(&_SubmitHandler.CallOpts)
 10713  }
 10714  
 10715  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
 10716  //
 10717  // Solidity: function submitHandler() constant returns(address)
 10718  func (_SubmitHandler *SubmitHandlerCaller) SubmitHandler(opts *bind.CallOpts) (common.Address, error) {
 10719  	var (
 10720  		ret0 = new(common.Address)
 10721  	)
 10722  	out := ret0
 10723  	err := _SubmitHandler.contract.Call(opts, out, "submitHandler")
 10724  	return *ret0, err
 10725  }
 10726  
 10727  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
 10728  //
 10729  // Solidity: function submitHandler() constant returns(address)
 10730  func (_SubmitHandler *SubmitHandlerSession) SubmitHandler() (common.Address, error) {
 10731  	return _SubmitHandler.Contract.SubmitHandler(&_SubmitHandler.CallOpts)
 10732  }
 10733  
 10734  // SubmitHandler is a free data retrieval call binding the contract method 0xe259faf7.
 10735  //
 10736  // Solidity: function submitHandler() constant returns(address)
 10737  func (_SubmitHandler *SubmitHandlerCallerSession) SubmitHandler() (common.Address, error) {
 10738  	return _SubmitHandler.Contract.SubmitHandler(&_SubmitHandler.CallOpts)
 10739  }
 10740  
 10741  // SubmitNRE is a paid mutator transaction binding the contract method 0x0eaf45a8.
 10742  //
 10743  // Solidity: function submitNRE(uint256 _pos1, uint256 _pos2, bytes32 _epochStateRoot, bytes32 _epochTransactionsRoot, bytes32 _epochReceiptsRoot) returns(bool success)
 10744  func (_SubmitHandler *SubmitHandlerTransactor) SubmitNRE(opts *bind.TransactOpts, _pos1 *big.Int, _pos2 *big.Int, _epochStateRoot [32]byte, _epochTransactionsRoot [32]byte, _epochReceiptsRoot [32]byte) (*types.Transaction, error) {
 10745  	return _SubmitHandler.contract.Transact(opts, "submitNRE", _pos1, _pos2, _epochStateRoot, _epochTransactionsRoot, _epochReceiptsRoot)
 10746  }
 10747  
 10748  // SubmitNRE is a paid mutator transaction binding the contract method 0x0eaf45a8.
 10749  //
 10750  // Solidity: function submitNRE(uint256 _pos1, uint256 _pos2, bytes32 _epochStateRoot, bytes32 _epochTransactionsRoot, bytes32 _epochReceiptsRoot) returns(bool success)
 10751  func (_SubmitHandler *SubmitHandlerSession) SubmitNRE(_pos1 *big.Int, _pos2 *big.Int, _epochStateRoot [32]byte, _epochTransactionsRoot [32]byte, _epochReceiptsRoot [32]byte) (*types.Transaction, error) {
 10752  	return _SubmitHandler.Contract.SubmitNRE(&_SubmitHandler.TransactOpts, _pos1, _pos2, _epochStateRoot, _epochTransactionsRoot, _epochReceiptsRoot)
 10753  }
 10754  
 10755  // SubmitNRE is a paid mutator transaction binding the contract method 0x0eaf45a8.
 10756  //
 10757  // Solidity: function submitNRE(uint256 _pos1, uint256 _pos2, bytes32 _epochStateRoot, bytes32 _epochTransactionsRoot, bytes32 _epochReceiptsRoot) returns(bool success)
 10758  func (_SubmitHandler *SubmitHandlerTransactorSession) SubmitNRE(_pos1 *big.Int, _pos2 *big.Int, _epochStateRoot [32]byte, _epochTransactionsRoot [32]byte, _epochReceiptsRoot [32]byte) (*types.Transaction, error) {
 10759  	return _SubmitHandler.Contract.SubmitNRE(&_SubmitHandler.TransactOpts, _pos1, _pos2, _epochStateRoot, _epochTransactionsRoot, _epochReceiptsRoot)
 10760  }
 10761  
 10762  // SubmitORB is a paid mutator transaction binding the contract method 0xa820c067.
 10763  //
 10764  // Solidity: function submitORB(uint256 _pos, bytes32 _statesRoot, bytes32 _transactionsRoot, bytes32 _receiptsRoot) returns(bool success)
 10765  func (_SubmitHandler *SubmitHandlerTransactor) SubmitORB(opts *bind.TransactOpts, _pos *big.Int, _statesRoot [32]byte, _transactionsRoot [32]byte, _receiptsRoot [32]byte) (*types.Transaction, error) {
 10766  	return _SubmitHandler.contract.Transact(opts, "submitORB", _pos, _statesRoot, _transactionsRoot, _receiptsRoot)
 10767  }
 10768  
 10769  // SubmitORB is a paid mutator transaction binding the contract method 0xa820c067.
 10770  //
 10771  // Solidity: function submitORB(uint256 _pos, bytes32 _statesRoot, bytes32 _transactionsRoot, bytes32 _receiptsRoot) returns(bool success)
 10772  func (_SubmitHandler *SubmitHandlerSession) SubmitORB(_pos *big.Int, _statesRoot [32]byte, _transactionsRoot [32]byte, _receiptsRoot [32]byte) (*types.Transaction, error) {
 10773  	return _SubmitHandler.Contract.SubmitORB(&_SubmitHandler.TransactOpts, _pos, _statesRoot, _transactionsRoot, _receiptsRoot)
 10774  }
 10775  
 10776  // SubmitORB is a paid mutator transaction binding the contract method 0xa820c067.
 10777  //
 10778  // Solidity: function submitORB(uint256 _pos, bytes32 _statesRoot, bytes32 _transactionsRoot, bytes32 _receiptsRoot) returns(bool success)
 10779  func (_SubmitHandler *SubmitHandlerTransactorSession) SubmitORB(_pos *big.Int, _statesRoot [32]byte, _transactionsRoot [32]byte, _receiptsRoot [32]byte) (*types.Transaction, error) {
 10780  	return _SubmitHandler.Contract.SubmitORB(&_SubmitHandler.TransactOpts, _pos, _statesRoot, _transactionsRoot, _receiptsRoot)
 10781  }
 10782  
 10783  // SubmitURB is a paid mutator transaction binding the contract method 0x6f3e4b90.
 10784  //
 10785  // Solidity: function submitURB(uint256 _pos, bytes32 _statesRoot, bytes32 _transactionsRoot, bytes32 _receiptsRoot) returns(bool success)
 10786  func (_SubmitHandler *SubmitHandlerTransactor) SubmitURB(opts *bind.TransactOpts, _pos *big.Int, _statesRoot [32]byte, _transactionsRoot [32]byte, _receiptsRoot [32]byte) (*types.Transaction, error) {
 10787  	return _SubmitHandler.contract.Transact(opts, "submitURB", _pos, _statesRoot, _transactionsRoot, _receiptsRoot)
 10788  }
 10789  
 10790  // SubmitURB is a paid mutator transaction binding the contract method 0x6f3e4b90.
 10791  //
 10792  // Solidity: function submitURB(uint256 _pos, bytes32 _statesRoot, bytes32 _transactionsRoot, bytes32 _receiptsRoot) returns(bool success)
 10793  func (_SubmitHandler *SubmitHandlerSession) SubmitURB(_pos *big.Int, _statesRoot [32]byte, _transactionsRoot [32]byte, _receiptsRoot [32]byte) (*types.Transaction, error) {
 10794  	return _SubmitHandler.Contract.SubmitURB(&_SubmitHandler.TransactOpts, _pos, _statesRoot, _transactionsRoot, _receiptsRoot)
 10795  }
 10796  
 10797  // SubmitURB is a paid mutator transaction binding the contract method 0x6f3e4b90.
 10798  //
 10799  // Solidity: function submitURB(uint256 _pos, bytes32 _statesRoot, bytes32 _transactionsRoot, bytes32 _receiptsRoot) returns(bool success)
 10800  func (_SubmitHandler *SubmitHandlerTransactorSession) SubmitURB(_pos *big.Int, _statesRoot [32]byte, _transactionsRoot [32]byte, _receiptsRoot [32]byte) (*types.Transaction, error) {
 10801  	return _SubmitHandler.Contract.SubmitURB(&_SubmitHandler.TransactOpts, _pos, _statesRoot, _transactionsRoot, _receiptsRoot)
 10802  }
 10803  
 10804  // SubmitHandlerBlockFinalizedIterator is returned from FilterBlockFinalized and is used to iterate over the raw logs and unpacked data for BlockFinalized events raised by the SubmitHandler contract.
 10805  type SubmitHandlerBlockFinalizedIterator struct {
 10806  	Event *SubmitHandlerBlockFinalized // Event containing the contract specifics and raw log
 10807  
 10808  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10809  	event    string              // Event name to use for unpacking event data
 10810  
 10811  	logs chan types.Log        // Log channel receiving the found contract events
 10812  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10813  	done bool                  // Whether the subscription completed delivering logs
 10814  	fail error                 // Occurred error to stop iteration
 10815  }
 10816  
 10817  // Next advances the iterator to the subsequent event, returning whether there
 10818  // are any more events found. In case of a retrieval or parsing error, false is
 10819  // returned and Error() can be queried for the exact failure.
 10820  func (it *SubmitHandlerBlockFinalizedIterator) Next() bool {
 10821  	// If the iterator failed, stop iterating
 10822  	if it.fail != nil {
 10823  		return false
 10824  	}
 10825  	// If the iterator completed, deliver directly whatever's available
 10826  	if it.done {
 10827  		select {
 10828  		case log := <-it.logs:
 10829  			it.Event = new(SubmitHandlerBlockFinalized)
 10830  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10831  				it.fail = err
 10832  				return false
 10833  			}
 10834  			it.Event.Raw = log
 10835  			return true
 10836  
 10837  		default:
 10838  			return false
 10839  		}
 10840  	}
 10841  	// Iterator still in progress, wait for either a data or an error event
 10842  	select {
 10843  	case log := <-it.logs:
 10844  		it.Event = new(SubmitHandlerBlockFinalized)
 10845  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10846  			it.fail = err
 10847  			return false
 10848  		}
 10849  		it.Event.Raw = log
 10850  		return true
 10851  
 10852  	case err := <-it.sub.Err():
 10853  		it.done = true
 10854  		it.fail = err
 10855  		return it.Next()
 10856  	}
 10857  }
 10858  
 10859  // Error returns any retrieval or parsing error occurred during filtering.
 10860  func (it *SubmitHandlerBlockFinalizedIterator) Error() error {
 10861  	return it.fail
 10862  }
 10863  
 10864  // Close terminates the iteration process, releasing any pending underlying
 10865  // resources.
 10866  func (it *SubmitHandlerBlockFinalizedIterator) Close() error {
 10867  	it.sub.Unsubscribe()
 10868  	return nil
 10869  }
 10870  
 10871  // SubmitHandlerBlockFinalized represents a BlockFinalized event raised by the SubmitHandler contract.
 10872  type SubmitHandlerBlockFinalized struct {
 10873  	ForkNumber  *big.Int
 10874  	BlockNumber *big.Int
 10875  	Raw         types.Log // Blockchain specific contextual infos
 10876  }
 10877  
 10878  // FilterBlockFinalized is a free log retrieval operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
 10879  //
 10880  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
 10881  func (_SubmitHandler *SubmitHandlerFilterer) FilterBlockFinalized(opts *bind.FilterOpts) (*SubmitHandlerBlockFinalizedIterator, error) {
 10882  
 10883  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "BlockFinalized")
 10884  	if err != nil {
 10885  		return nil, err
 10886  	}
 10887  	return &SubmitHandlerBlockFinalizedIterator{contract: _SubmitHandler.contract, event: "BlockFinalized", logs: logs, sub: sub}, nil
 10888  }
 10889  
 10890  // WatchBlockFinalized is a free log subscription operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
 10891  //
 10892  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
 10893  func (_SubmitHandler *SubmitHandlerFilterer) WatchBlockFinalized(opts *bind.WatchOpts, sink chan<- *SubmitHandlerBlockFinalized) (event.Subscription, error) {
 10894  
 10895  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "BlockFinalized")
 10896  	if err != nil {
 10897  		return nil, err
 10898  	}
 10899  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10900  		defer sub.Unsubscribe()
 10901  		for {
 10902  			select {
 10903  			case log := <-logs:
 10904  				// New log arrived, parse the event and forward to the user
 10905  				event := new(SubmitHandlerBlockFinalized)
 10906  				if err := _SubmitHandler.contract.UnpackLog(event, "BlockFinalized", log); err != nil {
 10907  					return err
 10908  				}
 10909  				event.Raw = log
 10910  
 10911  				select {
 10912  				case sink <- event:
 10913  				case err := <-sub.Err():
 10914  					return err
 10915  				case <-quit:
 10916  					return nil
 10917  				}
 10918  			case err := <-sub.Err():
 10919  				return err
 10920  			case <-quit:
 10921  				return nil
 10922  			}
 10923  		}
 10924  	}), nil
 10925  }
 10926  
 10927  // ParseBlockFinalized is a log parse operation binding the contract event 0xfb96205e4b3633fd57aa805b26b51ecf528714a10241a4af015929dce86768d9.
 10928  //
 10929  // Solidity: event BlockFinalized(uint256 forkNumber, uint256 blockNumber)
 10930  func (_SubmitHandler *SubmitHandlerFilterer) ParseBlockFinalized(log types.Log) (*SubmitHandlerBlockFinalized, error) {
 10931  	event := new(SubmitHandlerBlockFinalized)
 10932  	if err := _SubmitHandler.contract.UnpackLog(event, "BlockFinalized", log); err != nil {
 10933  		return nil, err
 10934  	}
 10935  	return event, nil
 10936  }
 10937  
 10938  // SubmitHandlerBlockSubmittedIterator is returned from FilterBlockSubmitted and is used to iterate over the raw logs and unpacked data for BlockSubmitted events raised by the SubmitHandler contract.
 10939  type SubmitHandlerBlockSubmittedIterator struct {
 10940  	Event *SubmitHandlerBlockSubmitted // Event containing the contract specifics and raw log
 10941  
 10942  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10943  	event    string              // Event name to use for unpacking event data
 10944  
 10945  	logs chan types.Log        // Log channel receiving the found contract events
 10946  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10947  	done bool                  // Whether the subscription completed delivering logs
 10948  	fail error                 // Occurred error to stop iteration
 10949  }
 10950  
 10951  // Next advances the iterator to the subsequent event, returning whether there
 10952  // are any more events found. In case of a retrieval or parsing error, false is
 10953  // returned and Error() can be queried for the exact failure.
 10954  func (it *SubmitHandlerBlockSubmittedIterator) Next() bool {
 10955  	// If the iterator failed, stop iterating
 10956  	if it.fail != nil {
 10957  		return false
 10958  	}
 10959  	// If the iterator completed, deliver directly whatever's available
 10960  	if it.done {
 10961  		select {
 10962  		case log := <-it.logs:
 10963  			it.Event = new(SubmitHandlerBlockSubmitted)
 10964  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10965  				it.fail = err
 10966  				return false
 10967  			}
 10968  			it.Event.Raw = log
 10969  			return true
 10970  
 10971  		default:
 10972  			return false
 10973  		}
 10974  	}
 10975  	// Iterator still in progress, wait for either a data or an error event
 10976  	select {
 10977  	case log := <-it.logs:
 10978  		it.Event = new(SubmitHandlerBlockSubmitted)
 10979  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10980  			it.fail = err
 10981  			return false
 10982  		}
 10983  		it.Event.Raw = log
 10984  		return true
 10985  
 10986  	case err := <-it.sub.Err():
 10987  		it.done = true
 10988  		it.fail = err
 10989  		return it.Next()
 10990  	}
 10991  }
 10992  
 10993  // Error returns any retrieval or parsing error occurred during filtering.
 10994  func (it *SubmitHandlerBlockSubmittedIterator) Error() error {
 10995  	return it.fail
 10996  }
 10997  
 10998  // Close terminates the iteration process, releasing any pending underlying
 10999  // resources.
 11000  func (it *SubmitHandlerBlockSubmittedIterator) Close() error {
 11001  	it.sub.Unsubscribe()
 11002  	return nil
 11003  }
 11004  
 11005  // SubmitHandlerBlockSubmitted represents a BlockSubmitted event raised by the SubmitHandler contract.
 11006  type SubmitHandlerBlockSubmitted struct {
 11007  	Fork          *big.Int
 11008  	EpochNumber   *big.Int
 11009  	BlockNumber   *big.Int
 11010  	IsRequest     bool
 11011  	UserActivated bool
 11012  	Raw           types.Log // Blockchain specific contextual infos
 11013  }
 11014  
 11015  // FilterBlockSubmitted is a free log retrieval operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
 11016  //
 11017  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
 11018  func (_SubmitHandler *SubmitHandlerFilterer) FilterBlockSubmitted(opts *bind.FilterOpts) (*SubmitHandlerBlockSubmittedIterator, error) {
 11019  
 11020  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "BlockSubmitted")
 11021  	if err != nil {
 11022  		return nil, err
 11023  	}
 11024  	return &SubmitHandlerBlockSubmittedIterator{contract: _SubmitHandler.contract, event: "BlockSubmitted", logs: logs, sub: sub}, nil
 11025  }
 11026  
 11027  // WatchBlockSubmitted is a free log subscription operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
 11028  //
 11029  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
 11030  func (_SubmitHandler *SubmitHandlerFilterer) WatchBlockSubmitted(opts *bind.WatchOpts, sink chan<- *SubmitHandlerBlockSubmitted) (event.Subscription, error) {
 11031  
 11032  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "BlockSubmitted")
 11033  	if err != nil {
 11034  		return nil, err
 11035  	}
 11036  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11037  		defer sub.Unsubscribe()
 11038  		for {
 11039  			select {
 11040  			case log := <-logs:
 11041  				// New log arrived, parse the event and forward to the user
 11042  				event := new(SubmitHandlerBlockSubmitted)
 11043  				if err := _SubmitHandler.contract.UnpackLog(event, "BlockSubmitted", log); err != nil {
 11044  					return err
 11045  				}
 11046  				event.Raw = log
 11047  
 11048  				select {
 11049  				case sink <- event:
 11050  				case err := <-sub.Err():
 11051  					return err
 11052  				case <-quit:
 11053  					return nil
 11054  				}
 11055  			case err := <-sub.Err():
 11056  				return err
 11057  			case <-quit:
 11058  				return nil
 11059  			}
 11060  		}
 11061  	}), nil
 11062  }
 11063  
 11064  // ParseBlockSubmitted is a log parse operation binding the contract event 0x3d4a04291c66b06f39a4ecb817875b12b5485a05ec563133a56a905305c48e55.
 11065  //
 11066  // Solidity: event BlockSubmitted(uint256 fork, uint256 epochNumber, uint256 blockNumber, bool isRequest, bool userActivated)
 11067  func (_SubmitHandler *SubmitHandlerFilterer) ParseBlockSubmitted(log types.Log) (*SubmitHandlerBlockSubmitted, error) {
 11068  	event := new(SubmitHandlerBlockSubmitted)
 11069  	if err := _SubmitHandler.contract.UnpackLog(event, "BlockSubmitted", log); err != nil {
 11070  		return nil, err
 11071  	}
 11072  	return event, nil
 11073  }
 11074  
 11075  // SubmitHandlerERUCreatedIterator is returned from FilterERUCreated and is used to iterate over the raw logs and unpacked data for ERUCreated events raised by the SubmitHandler contract.
 11076  type SubmitHandlerERUCreatedIterator struct {
 11077  	Event *SubmitHandlerERUCreated // Event containing the contract specifics and raw log
 11078  
 11079  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11080  	event    string              // Event name to use for unpacking event data
 11081  
 11082  	logs chan types.Log        // Log channel receiving the found contract events
 11083  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11084  	done bool                  // Whether the subscription completed delivering logs
 11085  	fail error                 // Occurred error to stop iteration
 11086  }
 11087  
 11088  // Next advances the iterator to the subsequent event, returning whether there
 11089  // are any more events found. In case of a retrieval or parsing error, false is
 11090  // returned and Error() can be queried for the exact failure.
 11091  func (it *SubmitHandlerERUCreatedIterator) Next() bool {
 11092  	// If the iterator failed, stop iterating
 11093  	if it.fail != nil {
 11094  		return false
 11095  	}
 11096  	// If the iterator completed, deliver directly whatever's available
 11097  	if it.done {
 11098  		select {
 11099  		case log := <-it.logs:
 11100  			it.Event = new(SubmitHandlerERUCreated)
 11101  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11102  				it.fail = err
 11103  				return false
 11104  			}
 11105  			it.Event.Raw = log
 11106  			return true
 11107  
 11108  		default:
 11109  			return false
 11110  		}
 11111  	}
 11112  	// Iterator still in progress, wait for either a data or an error event
 11113  	select {
 11114  	case log := <-it.logs:
 11115  		it.Event = new(SubmitHandlerERUCreated)
 11116  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11117  			it.fail = err
 11118  			return false
 11119  		}
 11120  		it.Event.Raw = log
 11121  		return true
 11122  
 11123  	case err := <-it.sub.Err():
 11124  		it.done = true
 11125  		it.fail = err
 11126  		return it.Next()
 11127  	}
 11128  }
 11129  
 11130  // Error returns any retrieval or parsing error occurred during filtering.
 11131  func (it *SubmitHandlerERUCreatedIterator) Error() error {
 11132  	return it.fail
 11133  }
 11134  
 11135  // Close terminates the iteration process, releasing any pending underlying
 11136  // resources.
 11137  func (it *SubmitHandlerERUCreatedIterator) Close() error {
 11138  	it.sub.Unsubscribe()
 11139  	return nil
 11140  }
 11141  
 11142  // SubmitHandlerERUCreated represents a ERUCreated event raised by the SubmitHandler contract.
 11143  type SubmitHandlerERUCreated struct {
 11144  	RequestId *big.Int
 11145  	Requestor common.Address
 11146  	To        common.Address
 11147  	TrieKey   []byte
 11148  	TrieValue [32]byte
 11149  	Raw       types.Log // Blockchain specific contextual infos
 11150  }
 11151  
 11152  // FilterERUCreated is a free log retrieval operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
 11153  //
 11154  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
 11155  func (_SubmitHandler *SubmitHandlerFilterer) FilterERUCreated(opts *bind.FilterOpts) (*SubmitHandlerERUCreatedIterator, error) {
 11156  
 11157  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "ERUCreated")
 11158  	if err != nil {
 11159  		return nil, err
 11160  	}
 11161  	return &SubmitHandlerERUCreatedIterator{contract: _SubmitHandler.contract, event: "ERUCreated", logs: logs, sub: sub}, nil
 11162  }
 11163  
 11164  // WatchERUCreated is a free log subscription operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
 11165  //
 11166  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
 11167  func (_SubmitHandler *SubmitHandlerFilterer) WatchERUCreated(opts *bind.WatchOpts, sink chan<- *SubmitHandlerERUCreated) (event.Subscription, error) {
 11168  
 11169  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "ERUCreated")
 11170  	if err != nil {
 11171  		return nil, err
 11172  	}
 11173  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11174  		defer sub.Unsubscribe()
 11175  		for {
 11176  			select {
 11177  			case log := <-logs:
 11178  				// New log arrived, parse the event and forward to the user
 11179  				event := new(SubmitHandlerERUCreated)
 11180  				if err := _SubmitHandler.contract.UnpackLog(event, "ERUCreated", log); err != nil {
 11181  					return err
 11182  				}
 11183  				event.Raw = log
 11184  
 11185  				select {
 11186  				case sink <- event:
 11187  				case err := <-sub.Err():
 11188  					return err
 11189  				case <-quit:
 11190  					return nil
 11191  				}
 11192  			case err := <-sub.Err():
 11193  				return err
 11194  			case <-quit:
 11195  				return nil
 11196  			}
 11197  		}
 11198  	}), nil
 11199  }
 11200  
 11201  // ParseERUCreated is a log parse operation binding the contract event 0xfcbdc2083dadd644b854d91b49aef8db06b8f5a3d5c1192de38ca0ba271d5a0d.
 11202  //
 11203  // Solidity: event ERUCreated(uint256 requestId, address requestor, address to, bytes trieKey, bytes32 trieValue)
 11204  func (_SubmitHandler *SubmitHandlerFilterer) ParseERUCreated(log types.Log) (*SubmitHandlerERUCreated, error) {
 11205  	event := new(SubmitHandlerERUCreated)
 11206  	if err := _SubmitHandler.contract.UnpackLog(event, "ERUCreated", log); err != nil {
 11207  		return nil, err
 11208  	}
 11209  	return event, nil
 11210  }
 11211  
 11212  // SubmitHandlerEpochFilledIterator is returned from FilterEpochFilled and is used to iterate over the raw logs and unpacked data for EpochFilled events raised by the SubmitHandler contract.
 11213  type SubmitHandlerEpochFilledIterator struct {
 11214  	Event *SubmitHandlerEpochFilled // Event containing the contract specifics and raw log
 11215  
 11216  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11217  	event    string              // Event name to use for unpacking event data
 11218  
 11219  	logs chan types.Log        // Log channel receiving the found contract events
 11220  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11221  	done bool                  // Whether the subscription completed delivering logs
 11222  	fail error                 // Occurred error to stop iteration
 11223  }
 11224  
 11225  // Next advances the iterator to the subsequent event, returning whether there
 11226  // are any more events found. In case of a retrieval or parsing error, false is
 11227  // returned and Error() can be queried for the exact failure.
 11228  func (it *SubmitHandlerEpochFilledIterator) Next() bool {
 11229  	// If the iterator failed, stop iterating
 11230  	if it.fail != nil {
 11231  		return false
 11232  	}
 11233  	// If the iterator completed, deliver directly whatever's available
 11234  	if it.done {
 11235  		select {
 11236  		case log := <-it.logs:
 11237  			it.Event = new(SubmitHandlerEpochFilled)
 11238  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11239  				it.fail = err
 11240  				return false
 11241  			}
 11242  			it.Event.Raw = log
 11243  			return true
 11244  
 11245  		default:
 11246  			return false
 11247  		}
 11248  	}
 11249  	// Iterator still in progress, wait for either a data or an error event
 11250  	select {
 11251  	case log := <-it.logs:
 11252  		it.Event = new(SubmitHandlerEpochFilled)
 11253  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11254  			it.fail = err
 11255  			return false
 11256  		}
 11257  		it.Event.Raw = log
 11258  		return true
 11259  
 11260  	case err := <-it.sub.Err():
 11261  		it.done = true
 11262  		it.fail = err
 11263  		return it.Next()
 11264  	}
 11265  }
 11266  
 11267  // Error returns any retrieval or parsing error occurred during filtering.
 11268  func (it *SubmitHandlerEpochFilledIterator) Error() error {
 11269  	return it.fail
 11270  }
 11271  
 11272  // Close terminates the iteration process, releasing any pending underlying
 11273  // resources.
 11274  func (it *SubmitHandlerEpochFilledIterator) Close() error {
 11275  	it.sub.Unsubscribe()
 11276  	return nil
 11277  }
 11278  
 11279  // SubmitHandlerEpochFilled represents a EpochFilled event raised by the SubmitHandler contract.
 11280  type SubmitHandlerEpochFilled struct {
 11281  	ForkNumber  *big.Int
 11282  	EpochNumber *big.Int
 11283  	Raw         types.Log // Blockchain specific contextual infos
 11284  }
 11285  
 11286  // FilterEpochFilled is a free log retrieval operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
 11287  //
 11288  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
 11289  func (_SubmitHandler *SubmitHandlerFilterer) FilterEpochFilled(opts *bind.FilterOpts) (*SubmitHandlerEpochFilledIterator, error) {
 11290  
 11291  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "EpochFilled")
 11292  	if err != nil {
 11293  		return nil, err
 11294  	}
 11295  	return &SubmitHandlerEpochFilledIterator{contract: _SubmitHandler.contract, event: "EpochFilled", logs: logs, sub: sub}, nil
 11296  }
 11297  
 11298  // WatchEpochFilled is a free log subscription operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
 11299  //
 11300  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
 11301  func (_SubmitHandler *SubmitHandlerFilterer) WatchEpochFilled(opts *bind.WatchOpts, sink chan<- *SubmitHandlerEpochFilled) (event.Subscription, error) {
 11302  
 11303  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "EpochFilled")
 11304  	if err != nil {
 11305  		return nil, err
 11306  	}
 11307  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11308  		defer sub.Unsubscribe()
 11309  		for {
 11310  			select {
 11311  			case log := <-logs:
 11312  				// New log arrived, parse the event and forward to the user
 11313  				event := new(SubmitHandlerEpochFilled)
 11314  				if err := _SubmitHandler.contract.UnpackLog(event, "EpochFilled", log); err != nil {
 11315  					return err
 11316  				}
 11317  				event.Raw = log
 11318  
 11319  				select {
 11320  				case sink <- event:
 11321  				case err := <-sub.Err():
 11322  					return err
 11323  				case <-quit:
 11324  					return nil
 11325  				}
 11326  			case err := <-sub.Err():
 11327  				return err
 11328  			case <-quit:
 11329  				return nil
 11330  			}
 11331  		}
 11332  	}), nil
 11333  }
 11334  
 11335  // ParseEpochFilled is a log parse operation binding the contract event 0x2fdeb407bf5c2b621f04b5c784822dae806c45b49a68aba413cc270128c96816.
 11336  //
 11337  // Solidity: event EpochFilled(uint256 forkNumber, uint256 epochNumber)
 11338  func (_SubmitHandler *SubmitHandlerFilterer) ParseEpochFilled(log types.Log) (*SubmitHandlerEpochFilled, error) {
 11339  	event := new(SubmitHandlerEpochFilled)
 11340  	if err := _SubmitHandler.contract.UnpackLog(event, "EpochFilled", log); err != nil {
 11341  		return nil, err
 11342  	}
 11343  	return event, nil
 11344  }
 11345  
 11346  // SubmitHandlerEpochFillingIterator is returned from FilterEpochFilling and is used to iterate over the raw logs and unpacked data for EpochFilling events raised by the SubmitHandler contract.
 11347  type SubmitHandlerEpochFillingIterator struct {
 11348  	Event *SubmitHandlerEpochFilling // Event containing the contract specifics and raw log
 11349  
 11350  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11351  	event    string              // Event name to use for unpacking event data
 11352  
 11353  	logs chan types.Log        // Log channel receiving the found contract events
 11354  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11355  	done bool                  // Whether the subscription completed delivering logs
 11356  	fail error                 // Occurred error to stop iteration
 11357  }
 11358  
 11359  // Next advances the iterator to the subsequent event, returning whether there
 11360  // are any more events found. In case of a retrieval or parsing error, false is
 11361  // returned and Error() can be queried for the exact failure.
 11362  func (it *SubmitHandlerEpochFillingIterator) Next() bool {
 11363  	// If the iterator failed, stop iterating
 11364  	if it.fail != nil {
 11365  		return false
 11366  	}
 11367  	// If the iterator completed, deliver directly whatever's available
 11368  	if it.done {
 11369  		select {
 11370  		case log := <-it.logs:
 11371  			it.Event = new(SubmitHandlerEpochFilling)
 11372  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11373  				it.fail = err
 11374  				return false
 11375  			}
 11376  			it.Event.Raw = log
 11377  			return true
 11378  
 11379  		default:
 11380  			return false
 11381  		}
 11382  	}
 11383  	// Iterator still in progress, wait for either a data or an error event
 11384  	select {
 11385  	case log := <-it.logs:
 11386  		it.Event = new(SubmitHandlerEpochFilling)
 11387  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11388  			it.fail = err
 11389  			return false
 11390  		}
 11391  		it.Event.Raw = log
 11392  		return true
 11393  
 11394  	case err := <-it.sub.Err():
 11395  		it.done = true
 11396  		it.fail = err
 11397  		return it.Next()
 11398  	}
 11399  }
 11400  
 11401  // Error returns any retrieval or parsing error occurred during filtering.
 11402  func (it *SubmitHandlerEpochFillingIterator) Error() error {
 11403  	return it.fail
 11404  }
 11405  
 11406  // Close terminates the iteration process, releasing any pending underlying
 11407  // resources.
 11408  func (it *SubmitHandlerEpochFillingIterator) Close() error {
 11409  	it.sub.Unsubscribe()
 11410  	return nil
 11411  }
 11412  
 11413  // SubmitHandlerEpochFilling represents a EpochFilling event raised by the SubmitHandler contract.
 11414  type SubmitHandlerEpochFilling struct {
 11415  	ForkNumber  *big.Int
 11416  	EpochNumber *big.Int
 11417  	Raw         types.Log // Blockchain specific contextual infos
 11418  }
 11419  
 11420  // FilterEpochFilling is a free log retrieval operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
 11421  //
 11422  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
 11423  func (_SubmitHandler *SubmitHandlerFilterer) FilterEpochFilling(opts *bind.FilterOpts) (*SubmitHandlerEpochFillingIterator, error) {
 11424  
 11425  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "EpochFilling")
 11426  	if err != nil {
 11427  		return nil, err
 11428  	}
 11429  	return &SubmitHandlerEpochFillingIterator{contract: _SubmitHandler.contract, event: "EpochFilling", logs: logs, sub: sub}, nil
 11430  }
 11431  
 11432  // WatchEpochFilling is a free log subscription operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
 11433  //
 11434  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
 11435  func (_SubmitHandler *SubmitHandlerFilterer) WatchEpochFilling(opts *bind.WatchOpts, sink chan<- *SubmitHandlerEpochFilling) (event.Subscription, error) {
 11436  
 11437  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "EpochFilling")
 11438  	if err != nil {
 11439  		return nil, err
 11440  	}
 11441  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11442  		defer sub.Unsubscribe()
 11443  		for {
 11444  			select {
 11445  			case log := <-logs:
 11446  				// New log arrived, parse the event and forward to the user
 11447  				event := new(SubmitHandlerEpochFilling)
 11448  				if err := _SubmitHandler.contract.UnpackLog(event, "EpochFilling", log); err != nil {
 11449  					return err
 11450  				}
 11451  				event.Raw = log
 11452  
 11453  				select {
 11454  				case sink <- event:
 11455  				case err := <-sub.Err():
 11456  					return err
 11457  				case <-quit:
 11458  					return nil
 11459  				}
 11460  			case err := <-sub.Err():
 11461  				return err
 11462  			case <-quit:
 11463  				return nil
 11464  			}
 11465  		}
 11466  	}), nil
 11467  }
 11468  
 11469  // ParseEpochFilling is a log parse operation binding the contract event 0x27b09f0953d27bbff306fe25b2987ac5a813248ac30cb2bbd5daf95e7b0e6dc0.
 11470  //
 11471  // Solidity: event EpochFilling(uint256 forkNumber, uint256 epochNumber)
 11472  func (_SubmitHandler *SubmitHandlerFilterer) ParseEpochFilling(log types.Log) (*SubmitHandlerEpochFilling, error) {
 11473  	event := new(SubmitHandlerEpochFilling)
 11474  	if err := _SubmitHandler.contract.UnpackLog(event, "EpochFilling", log); err != nil {
 11475  		return nil, err
 11476  	}
 11477  	return event, nil
 11478  }
 11479  
 11480  // SubmitHandlerEpochFinalizedIterator is returned from FilterEpochFinalized and is used to iterate over the raw logs and unpacked data for EpochFinalized events raised by the SubmitHandler contract.
 11481  type SubmitHandlerEpochFinalizedIterator struct {
 11482  	Event *SubmitHandlerEpochFinalized // Event containing the contract specifics and raw log
 11483  
 11484  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11485  	event    string              // Event name to use for unpacking event data
 11486  
 11487  	logs chan types.Log        // Log channel receiving the found contract events
 11488  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11489  	done bool                  // Whether the subscription completed delivering logs
 11490  	fail error                 // Occurred error to stop iteration
 11491  }
 11492  
 11493  // Next advances the iterator to the subsequent event, returning whether there
 11494  // are any more events found. In case of a retrieval or parsing error, false is
 11495  // returned and Error() can be queried for the exact failure.
 11496  func (it *SubmitHandlerEpochFinalizedIterator) Next() bool {
 11497  	// If the iterator failed, stop iterating
 11498  	if it.fail != nil {
 11499  		return false
 11500  	}
 11501  	// If the iterator completed, deliver directly whatever's available
 11502  	if it.done {
 11503  		select {
 11504  		case log := <-it.logs:
 11505  			it.Event = new(SubmitHandlerEpochFinalized)
 11506  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11507  				it.fail = err
 11508  				return false
 11509  			}
 11510  			it.Event.Raw = log
 11511  			return true
 11512  
 11513  		default:
 11514  			return false
 11515  		}
 11516  	}
 11517  	// Iterator still in progress, wait for either a data or an error event
 11518  	select {
 11519  	case log := <-it.logs:
 11520  		it.Event = new(SubmitHandlerEpochFinalized)
 11521  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11522  			it.fail = err
 11523  			return false
 11524  		}
 11525  		it.Event.Raw = log
 11526  		return true
 11527  
 11528  	case err := <-it.sub.Err():
 11529  		it.done = true
 11530  		it.fail = err
 11531  		return it.Next()
 11532  	}
 11533  }
 11534  
 11535  // Error returns any retrieval or parsing error occurred during filtering.
 11536  func (it *SubmitHandlerEpochFinalizedIterator) Error() error {
 11537  	return it.fail
 11538  }
 11539  
 11540  // Close terminates the iteration process, releasing any pending underlying
 11541  // resources.
 11542  func (it *SubmitHandlerEpochFinalizedIterator) Close() error {
 11543  	it.sub.Unsubscribe()
 11544  	return nil
 11545  }
 11546  
 11547  // SubmitHandlerEpochFinalized represents a EpochFinalized event raised by the SubmitHandler contract.
 11548  type SubmitHandlerEpochFinalized struct {
 11549  	ForkNumber       *big.Int
 11550  	EpochNumber      *big.Int
 11551  	StartBlockNumber *big.Int
 11552  	EndBlockNumber   *big.Int
 11553  	Raw              types.Log // Blockchain specific contextual infos
 11554  }
 11555  
 11556  // FilterEpochFinalized is a free log retrieval operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
 11557  //
 11558  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
 11559  func (_SubmitHandler *SubmitHandlerFilterer) FilterEpochFinalized(opts *bind.FilterOpts) (*SubmitHandlerEpochFinalizedIterator, error) {
 11560  
 11561  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "EpochFinalized")
 11562  	if err != nil {
 11563  		return nil, err
 11564  	}
 11565  	return &SubmitHandlerEpochFinalizedIterator{contract: _SubmitHandler.contract, event: "EpochFinalized", logs: logs, sub: sub}, nil
 11566  }
 11567  
 11568  // WatchEpochFinalized is a free log subscription operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
 11569  //
 11570  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
 11571  func (_SubmitHandler *SubmitHandlerFilterer) WatchEpochFinalized(opts *bind.WatchOpts, sink chan<- *SubmitHandlerEpochFinalized) (event.Subscription, error) {
 11572  
 11573  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "EpochFinalized")
 11574  	if err != nil {
 11575  		return nil, err
 11576  	}
 11577  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11578  		defer sub.Unsubscribe()
 11579  		for {
 11580  			select {
 11581  			case log := <-logs:
 11582  				// New log arrived, parse the event and forward to the user
 11583  				event := new(SubmitHandlerEpochFinalized)
 11584  				if err := _SubmitHandler.contract.UnpackLog(event, "EpochFinalized", log); err != nil {
 11585  					return err
 11586  				}
 11587  				event.Raw = log
 11588  
 11589  				select {
 11590  				case sink <- event:
 11591  				case err := <-sub.Err():
 11592  					return err
 11593  				case <-quit:
 11594  					return nil
 11595  				}
 11596  			case err := <-sub.Err():
 11597  				return err
 11598  			case <-quit:
 11599  				return nil
 11600  			}
 11601  		}
 11602  	}), nil
 11603  }
 11604  
 11605  // ParseEpochFinalized is a log parse operation binding the contract event 0x70801d4d63b3da6c19ba7349911f45bed5a99ccdfb51b8138c105872529bebd5.
 11606  //
 11607  // Solidity: event EpochFinalized(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber)
 11608  func (_SubmitHandler *SubmitHandlerFilterer) ParseEpochFinalized(log types.Log) (*SubmitHandlerEpochFinalized, error) {
 11609  	event := new(SubmitHandlerEpochFinalized)
 11610  	if err := _SubmitHandler.contract.UnpackLog(event, "EpochFinalized", log); err != nil {
 11611  		return nil, err
 11612  	}
 11613  	return event, nil
 11614  }
 11615  
 11616  // SubmitHandlerEpochPreparedIterator is returned from FilterEpochPrepared and is used to iterate over the raw logs and unpacked data for EpochPrepared events raised by the SubmitHandler contract.
 11617  type SubmitHandlerEpochPreparedIterator struct {
 11618  	Event *SubmitHandlerEpochPrepared // Event containing the contract specifics and raw log
 11619  
 11620  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11621  	event    string              // Event name to use for unpacking event data
 11622  
 11623  	logs chan types.Log        // Log channel receiving the found contract events
 11624  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11625  	done bool                  // Whether the subscription completed delivering logs
 11626  	fail error                 // Occurred error to stop iteration
 11627  }
 11628  
 11629  // Next advances the iterator to the subsequent event, returning whether there
 11630  // are any more events found. In case of a retrieval or parsing error, false is
 11631  // returned and Error() can be queried for the exact failure.
 11632  func (it *SubmitHandlerEpochPreparedIterator) Next() bool {
 11633  	// If the iterator failed, stop iterating
 11634  	if it.fail != nil {
 11635  		return false
 11636  	}
 11637  	// If the iterator completed, deliver directly whatever's available
 11638  	if it.done {
 11639  		select {
 11640  		case log := <-it.logs:
 11641  			it.Event = new(SubmitHandlerEpochPrepared)
 11642  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11643  				it.fail = err
 11644  				return false
 11645  			}
 11646  			it.Event.Raw = log
 11647  			return true
 11648  
 11649  		default:
 11650  			return false
 11651  		}
 11652  	}
 11653  	// Iterator still in progress, wait for either a data or an error event
 11654  	select {
 11655  	case log := <-it.logs:
 11656  		it.Event = new(SubmitHandlerEpochPrepared)
 11657  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11658  			it.fail = err
 11659  			return false
 11660  		}
 11661  		it.Event.Raw = log
 11662  		return true
 11663  
 11664  	case err := <-it.sub.Err():
 11665  		it.done = true
 11666  		it.fail = err
 11667  		return it.Next()
 11668  	}
 11669  }
 11670  
 11671  // Error returns any retrieval or parsing error occurred during filtering.
 11672  func (it *SubmitHandlerEpochPreparedIterator) Error() error {
 11673  	return it.fail
 11674  }
 11675  
 11676  // Close terminates the iteration process, releasing any pending underlying
 11677  // resources.
 11678  func (it *SubmitHandlerEpochPreparedIterator) Close() error {
 11679  	it.sub.Unsubscribe()
 11680  	return nil
 11681  }
 11682  
 11683  // SubmitHandlerEpochPrepared represents a EpochPrepared event raised by the SubmitHandler contract.
 11684  type SubmitHandlerEpochPrepared struct {
 11685  	ForkNumber       *big.Int
 11686  	EpochNumber      *big.Int
 11687  	StartBlockNumber *big.Int
 11688  	EndBlockNumber   *big.Int
 11689  	RequestStart     *big.Int
 11690  	RequestEnd       *big.Int
 11691  	EpochIsEmpty     bool
 11692  	IsRequest        bool
 11693  	UserActivated    bool
 11694  	Rebase           bool
 11695  	Raw              types.Log // Blockchain specific contextual infos
 11696  }
 11697  
 11698  // FilterEpochPrepared is a free log retrieval operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
 11699  //
 11700  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
 11701  func (_SubmitHandler *SubmitHandlerFilterer) FilterEpochPrepared(opts *bind.FilterOpts) (*SubmitHandlerEpochPreparedIterator, error) {
 11702  
 11703  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "EpochPrepared")
 11704  	if err != nil {
 11705  		return nil, err
 11706  	}
 11707  	return &SubmitHandlerEpochPreparedIterator{contract: _SubmitHandler.contract, event: "EpochPrepared", logs: logs, sub: sub}, nil
 11708  }
 11709  
 11710  // WatchEpochPrepared is a free log subscription operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
 11711  //
 11712  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
 11713  func (_SubmitHandler *SubmitHandlerFilterer) WatchEpochPrepared(opts *bind.WatchOpts, sink chan<- *SubmitHandlerEpochPrepared) (event.Subscription, error) {
 11714  
 11715  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "EpochPrepared")
 11716  	if err != nil {
 11717  		return nil, err
 11718  	}
 11719  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11720  		defer sub.Unsubscribe()
 11721  		for {
 11722  			select {
 11723  			case log := <-logs:
 11724  				// New log arrived, parse the event and forward to the user
 11725  				event := new(SubmitHandlerEpochPrepared)
 11726  				if err := _SubmitHandler.contract.UnpackLog(event, "EpochPrepared", log); err != nil {
 11727  					return err
 11728  				}
 11729  				event.Raw = log
 11730  
 11731  				select {
 11732  				case sink <- event:
 11733  				case err := <-sub.Err():
 11734  					return err
 11735  				case <-quit:
 11736  					return nil
 11737  				}
 11738  			case err := <-sub.Err():
 11739  				return err
 11740  			case <-quit:
 11741  				return nil
 11742  			}
 11743  		}
 11744  	}), nil
 11745  }
 11746  
 11747  // ParseEpochPrepared is a log parse operation binding the contract event 0x1a69c0760aa329b76f72579129869013ebd3d41594db019c0e997b939fcb32e3.
 11748  //
 11749  // Solidity: event EpochPrepared(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated, bool rebase)
 11750  func (_SubmitHandler *SubmitHandlerFilterer) ParseEpochPrepared(log types.Log) (*SubmitHandlerEpochPrepared, error) {
 11751  	event := new(SubmitHandlerEpochPrepared)
 11752  	if err := _SubmitHandler.contract.UnpackLog(event, "EpochPrepared", log); err != nil {
 11753  		return nil, err
 11754  	}
 11755  	return event, nil
 11756  }
 11757  
 11758  // SubmitHandlerEpochRebasedIterator is returned from FilterEpochRebased and is used to iterate over the raw logs and unpacked data for EpochRebased events raised by the SubmitHandler contract.
 11759  type SubmitHandlerEpochRebasedIterator struct {
 11760  	Event *SubmitHandlerEpochRebased // Event containing the contract specifics and raw log
 11761  
 11762  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11763  	event    string              // Event name to use for unpacking event data
 11764  
 11765  	logs chan types.Log        // Log channel receiving the found contract events
 11766  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11767  	done bool                  // Whether the subscription completed delivering logs
 11768  	fail error                 // Occurred error to stop iteration
 11769  }
 11770  
 11771  // Next advances the iterator to the subsequent event, returning whether there
 11772  // are any more events found. In case of a retrieval or parsing error, false is
 11773  // returned and Error() can be queried for the exact failure.
 11774  func (it *SubmitHandlerEpochRebasedIterator) Next() bool {
 11775  	// If the iterator failed, stop iterating
 11776  	if it.fail != nil {
 11777  		return false
 11778  	}
 11779  	// If the iterator completed, deliver directly whatever's available
 11780  	if it.done {
 11781  		select {
 11782  		case log := <-it.logs:
 11783  			it.Event = new(SubmitHandlerEpochRebased)
 11784  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11785  				it.fail = err
 11786  				return false
 11787  			}
 11788  			it.Event.Raw = log
 11789  			return true
 11790  
 11791  		default:
 11792  			return false
 11793  		}
 11794  	}
 11795  	// Iterator still in progress, wait for either a data or an error event
 11796  	select {
 11797  	case log := <-it.logs:
 11798  		it.Event = new(SubmitHandlerEpochRebased)
 11799  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11800  			it.fail = err
 11801  			return false
 11802  		}
 11803  		it.Event.Raw = log
 11804  		return true
 11805  
 11806  	case err := <-it.sub.Err():
 11807  		it.done = true
 11808  		it.fail = err
 11809  		return it.Next()
 11810  	}
 11811  }
 11812  
 11813  // Error returns any retrieval or parsing error occurred during filtering.
 11814  func (it *SubmitHandlerEpochRebasedIterator) Error() error {
 11815  	return it.fail
 11816  }
 11817  
 11818  // Close terminates the iteration process, releasing any pending underlying
 11819  // resources.
 11820  func (it *SubmitHandlerEpochRebasedIterator) Close() error {
 11821  	it.sub.Unsubscribe()
 11822  	return nil
 11823  }
 11824  
 11825  // SubmitHandlerEpochRebased represents a EpochRebased event raised by the SubmitHandler contract.
 11826  type SubmitHandlerEpochRebased struct {
 11827  	ForkNumber       *big.Int
 11828  	EpochNumber      *big.Int
 11829  	StartBlockNumber *big.Int
 11830  	EndBlockNumber   *big.Int
 11831  	RequestStart     *big.Int
 11832  	RequestEnd       *big.Int
 11833  	EpochIsEmpty     bool
 11834  	IsRequest        bool
 11835  	UserActivated    bool
 11836  	Raw              types.Log // Blockchain specific contextual infos
 11837  }
 11838  
 11839  // FilterEpochRebased is a free log retrieval operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
 11840  //
 11841  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
 11842  func (_SubmitHandler *SubmitHandlerFilterer) FilterEpochRebased(opts *bind.FilterOpts) (*SubmitHandlerEpochRebasedIterator, error) {
 11843  
 11844  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "EpochRebased")
 11845  	if err != nil {
 11846  		return nil, err
 11847  	}
 11848  	return &SubmitHandlerEpochRebasedIterator{contract: _SubmitHandler.contract, event: "EpochRebased", logs: logs, sub: sub}, nil
 11849  }
 11850  
 11851  // WatchEpochRebased is a free log subscription operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
 11852  //
 11853  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
 11854  func (_SubmitHandler *SubmitHandlerFilterer) WatchEpochRebased(opts *bind.WatchOpts, sink chan<- *SubmitHandlerEpochRebased) (event.Subscription, error) {
 11855  
 11856  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "EpochRebased")
 11857  	if err != nil {
 11858  		return nil, err
 11859  	}
 11860  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11861  		defer sub.Unsubscribe()
 11862  		for {
 11863  			select {
 11864  			case log := <-logs:
 11865  				// New log arrived, parse the event and forward to the user
 11866  				event := new(SubmitHandlerEpochRebased)
 11867  				if err := _SubmitHandler.contract.UnpackLog(event, "EpochRebased", log); err != nil {
 11868  					return err
 11869  				}
 11870  				event.Raw = log
 11871  
 11872  				select {
 11873  				case sink <- event:
 11874  				case err := <-sub.Err():
 11875  					return err
 11876  				case <-quit:
 11877  					return nil
 11878  				}
 11879  			case err := <-sub.Err():
 11880  				return err
 11881  			case <-quit:
 11882  				return nil
 11883  			}
 11884  		}
 11885  	}), nil
 11886  }
 11887  
 11888  // ParseEpochRebased is a log parse operation binding the contract event 0x030c1c69405c93021f28f57557240dee939a320b826a1fd0d39bf6e629ecab47.
 11889  //
 11890  // Solidity: event EpochRebased(uint256 forkNumber, uint256 epochNumber, uint256 startBlockNumber, uint256 endBlockNumber, uint256 requestStart, uint256 requestEnd, bool epochIsEmpty, bool isRequest, bool userActivated)
 11891  func (_SubmitHandler *SubmitHandlerFilterer) ParseEpochRebased(log types.Log) (*SubmitHandlerEpochRebased, error) {
 11892  	event := new(SubmitHandlerEpochRebased)
 11893  	if err := _SubmitHandler.contract.UnpackLog(event, "EpochRebased", log); err != nil {
 11894  		return nil, err
 11895  	}
 11896  	return event, nil
 11897  }
 11898  
 11899  // SubmitHandlerForkedIterator is returned from FilterForked and is used to iterate over the raw logs and unpacked data for Forked events raised by the SubmitHandler contract.
 11900  type SubmitHandlerForkedIterator struct {
 11901  	Event *SubmitHandlerForked // Event containing the contract specifics and raw log
 11902  
 11903  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11904  	event    string              // Event name to use for unpacking event data
 11905  
 11906  	logs chan types.Log        // Log channel receiving the found contract events
 11907  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11908  	done bool                  // Whether the subscription completed delivering logs
 11909  	fail error                 // Occurred error to stop iteration
 11910  }
 11911  
 11912  // Next advances the iterator to the subsequent event, returning whether there
 11913  // are any more events found. In case of a retrieval or parsing error, false is
 11914  // returned and Error() can be queried for the exact failure.
 11915  func (it *SubmitHandlerForkedIterator) Next() bool {
 11916  	// If the iterator failed, stop iterating
 11917  	if it.fail != nil {
 11918  		return false
 11919  	}
 11920  	// If the iterator completed, deliver directly whatever's available
 11921  	if it.done {
 11922  		select {
 11923  		case log := <-it.logs:
 11924  			it.Event = new(SubmitHandlerForked)
 11925  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11926  				it.fail = err
 11927  				return false
 11928  			}
 11929  			it.Event.Raw = log
 11930  			return true
 11931  
 11932  		default:
 11933  			return false
 11934  		}
 11935  	}
 11936  	// Iterator still in progress, wait for either a data or an error event
 11937  	select {
 11938  	case log := <-it.logs:
 11939  		it.Event = new(SubmitHandlerForked)
 11940  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11941  			it.fail = err
 11942  			return false
 11943  		}
 11944  		it.Event.Raw = log
 11945  		return true
 11946  
 11947  	case err := <-it.sub.Err():
 11948  		it.done = true
 11949  		it.fail = err
 11950  		return it.Next()
 11951  	}
 11952  }
 11953  
 11954  // Error returns any retrieval or parsing error occurred during filtering.
 11955  func (it *SubmitHandlerForkedIterator) Error() error {
 11956  	return it.fail
 11957  }
 11958  
 11959  // Close terminates the iteration process, releasing any pending underlying
 11960  // resources.
 11961  func (it *SubmitHandlerForkedIterator) Close() error {
 11962  	it.sub.Unsubscribe()
 11963  	return nil
 11964  }
 11965  
 11966  // SubmitHandlerForked represents a Forked event raised by the SubmitHandler contract.
 11967  type SubmitHandlerForked struct {
 11968  	NewFork           *big.Int
 11969  	EpochNumber       *big.Int
 11970  	ForkedBlockNumber *big.Int
 11971  	Raw               types.Log // Blockchain specific contextual infos
 11972  }
 11973  
 11974  // FilterForked is a free log retrieval operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
 11975  //
 11976  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
 11977  func (_SubmitHandler *SubmitHandlerFilterer) FilterForked(opts *bind.FilterOpts) (*SubmitHandlerForkedIterator, error) {
 11978  
 11979  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "Forked")
 11980  	if err != nil {
 11981  		return nil, err
 11982  	}
 11983  	return &SubmitHandlerForkedIterator{contract: _SubmitHandler.contract, event: "Forked", logs: logs, sub: sub}, nil
 11984  }
 11985  
 11986  // WatchForked is a free log subscription operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
 11987  //
 11988  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
 11989  func (_SubmitHandler *SubmitHandlerFilterer) WatchForked(opts *bind.WatchOpts, sink chan<- *SubmitHandlerForked) (event.Subscription, error) {
 11990  
 11991  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "Forked")
 11992  	if err != nil {
 11993  		return nil, err
 11994  	}
 11995  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11996  		defer sub.Unsubscribe()
 11997  		for {
 11998  			select {
 11999  			case log := <-logs:
 12000  				// New log arrived, parse the event and forward to the user
 12001  				event := new(SubmitHandlerForked)
 12002  				if err := _SubmitHandler.contract.UnpackLog(event, "Forked", log); err != nil {
 12003  					return err
 12004  				}
 12005  				event.Raw = log
 12006  
 12007  				select {
 12008  				case sink <- event:
 12009  				case err := <-sub.Err():
 12010  					return err
 12011  				case <-quit:
 12012  					return nil
 12013  				}
 12014  			case err := <-sub.Err():
 12015  				return err
 12016  			case <-quit:
 12017  				return nil
 12018  			}
 12019  		}
 12020  	}), nil
 12021  }
 12022  
 12023  // ParseForked is a log parse operation binding the contract event 0x0647d42ab02f6e0ae76959757dcb6aa6feac1d4ba6f077f1223fb4b1b429f06c.
 12024  //
 12025  // Solidity: event Forked(uint256 newFork, uint256 epochNumber, uint256 forkedBlockNumber)
 12026  func (_SubmitHandler *SubmitHandlerFilterer) ParseForked(log types.Log) (*SubmitHandlerForked, error) {
 12027  	event := new(SubmitHandlerForked)
 12028  	if err := _SubmitHandler.contract.UnpackLog(event, "Forked", log); err != nil {
 12029  		return nil, err
 12030  	}
 12031  	return event, nil
 12032  }
 12033  
 12034  // SubmitHandlerOperatorChangedIterator is returned from FilterOperatorChanged and is used to iterate over the raw logs and unpacked data for OperatorChanged events raised by the SubmitHandler contract.
 12035  type SubmitHandlerOperatorChangedIterator struct {
 12036  	Event *SubmitHandlerOperatorChanged // Event containing the contract specifics and raw log
 12037  
 12038  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12039  	event    string              // Event name to use for unpacking event data
 12040  
 12041  	logs chan types.Log        // Log channel receiving the found contract events
 12042  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12043  	done bool                  // Whether the subscription completed delivering logs
 12044  	fail error                 // Occurred error to stop iteration
 12045  }
 12046  
 12047  // Next advances the iterator to the subsequent event, returning whether there
 12048  // are any more events found. In case of a retrieval or parsing error, false is
 12049  // returned and Error() can be queried for the exact failure.
 12050  func (it *SubmitHandlerOperatorChangedIterator) Next() bool {
 12051  	// If the iterator failed, stop iterating
 12052  	if it.fail != nil {
 12053  		return false
 12054  	}
 12055  	// If the iterator completed, deliver directly whatever's available
 12056  	if it.done {
 12057  		select {
 12058  		case log := <-it.logs:
 12059  			it.Event = new(SubmitHandlerOperatorChanged)
 12060  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12061  				it.fail = err
 12062  				return false
 12063  			}
 12064  			it.Event.Raw = log
 12065  			return true
 12066  
 12067  		default:
 12068  			return false
 12069  		}
 12070  	}
 12071  	// Iterator still in progress, wait for either a data or an error event
 12072  	select {
 12073  	case log := <-it.logs:
 12074  		it.Event = new(SubmitHandlerOperatorChanged)
 12075  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12076  			it.fail = err
 12077  			return false
 12078  		}
 12079  		it.Event.Raw = log
 12080  		return true
 12081  
 12082  	case err := <-it.sub.Err():
 12083  		it.done = true
 12084  		it.fail = err
 12085  		return it.Next()
 12086  	}
 12087  }
 12088  
 12089  // Error returns any retrieval or parsing error occurred during filtering.
 12090  func (it *SubmitHandlerOperatorChangedIterator) Error() error {
 12091  	return it.fail
 12092  }
 12093  
 12094  // Close terminates the iteration process, releasing any pending underlying
 12095  // resources.
 12096  func (it *SubmitHandlerOperatorChangedIterator) Close() error {
 12097  	it.sub.Unsubscribe()
 12098  	return nil
 12099  }
 12100  
 12101  // SubmitHandlerOperatorChanged represents a OperatorChanged event raised by the SubmitHandler contract.
 12102  type SubmitHandlerOperatorChanged struct {
 12103  	NewOperator common.Address
 12104  	Raw         types.Log // Blockchain specific contextual infos
 12105  }
 12106  
 12107  // FilterOperatorChanged is a free log retrieval operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
 12108  //
 12109  // Solidity: event OperatorChanged(address _newOperator)
 12110  func (_SubmitHandler *SubmitHandlerFilterer) FilterOperatorChanged(opts *bind.FilterOpts) (*SubmitHandlerOperatorChangedIterator, error) {
 12111  
 12112  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "OperatorChanged")
 12113  	if err != nil {
 12114  		return nil, err
 12115  	}
 12116  	return &SubmitHandlerOperatorChangedIterator{contract: _SubmitHandler.contract, event: "OperatorChanged", logs: logs, sub: sub}, nil
 12117  }
 12118  
 12119  // WatchOperatorChanged is a free log subscription operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
 12120  //
 12121  // Solidity: event OperatorChanged(address _newOperator)
 12122  func (_SubmitHandler *SubmitHandlerFilterer) WatchOperatorChanged(opts *bind.WatchOpts, sink chan<- *SubmitHandlerOperatorChanged) (event.Subscription, error) {
 12123  
 12124  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "OperatorChanged")
 12125  	if err != nil {
 12126  		return nil, err
 12127  	}
 12128  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12129  		defer sub.Unsubscribe()
 12130  		for {
 12131  			select {
 12132  			case log := <-logs:
 12133  				// New log arrived, parse the event and forward to the user
 12134  				event := new(SubmitHandlerOperatorChanged)
 12135  				if err := _SubmitHandler.contract.UnpackLog(event, "OperatorChanged", log); err != nil {
 12136  					return err
 12137  				}
 12138  				event.Raw = log
 12139  
 12140  				select {
 12141  				case sink <- event:
 12142  				case err := <-sub.Err():
 12143  					return err
 12144  				case <-quit:
 12145  					return nil
 12146  				}
 12147  			case err := <-sub.Err():
 12148  				return err
 12149  			case <-quit:
 12150  				return nil
 12151  			}
 12152  		}
 12153  	}), nil
 12154  }
 12155  
 12156  // ParseOperatorChanged is a log parse operation binding the contract event 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54.
 12157  //
 12158  // Solidity: event OperatorChanged(address _newOperator)
 12159  func (_SubmitHandler *SubmitHandlerFilterer) ParseOperatorChanged(log types.Log) (*SubmitHandlerOperatorChanged, error) {
 12160  	event := new(SubmitHandlerOperatorChanged)
 12161  	if err := _SubmitHandler.contract.UnpackLog(event, "OperatorChanged", log); err != nil {
 12162  		return nil, err
 12163  	}
 12164  	return event, nil
 12165  }
 12166  
 12167  // SubmitHandlerRequestAppliedIterator is returned from FilterRequestApplied and is used to iterate over the raw logs and unpacked data for RequestApplied events raised by the SubmitHandler contract.
 12168  type SubmitHandlerRequestAppliedIterator struct {
 12169  	Event *SubmitHandlerRequestApplied // Event containing the contract specifics and raw log
 12170  
 12171  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12172  	event    string              // Event name to use for unpacking event data
 12173  
 12174  	logs chan types.Log        // Log channel receiving the found contract events
 12175  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12176  	done bool                  // Whether the subscription completed delivering logs
 12177  	fail error                 // Occurred error to stop iteration
 12178  }
 12179  
 12180  // Next advances the iterator to the subsequent event, returning whether there
 12181  // are any more events found. In case of a retrieval or parsing error, false is
 12182  // returned and Error() can be queried for the exact failure.
 12183  func (it *SubmitHandlerRequestAppliedIterator) Next() bool {
 12184  	// If the iterator failed, stop iterating
 12185  	if it.fail != nil {
 12186  		return false
 12187  	}
 12188  	// If the iterator completed, deliver directly whatever's available
 12189  	if it.done {
 12190  		select {
 12191  		case log := <-it.logs:
 12192  			it.Event = new(SubmitHandlerRequestApplied)
 12193  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12194  				it.fail = err
 12195  				return false
 12196  			}
 12197  			it.Event.Raw = log
 12198  			return true
 12199  
 12200  		default:
 12201  			return false
 12202  		}
 12203  	}
 12204  	// Iterator still in progress, wait for either a data or an error event
 12205  	select {
 12206  	case log := <-it.logs:
 12207  		it.Event = new(SubmitHandlerRequestApplied)
 12208  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12209  			it.fail = err
 12210  			return false
 12211  		}
 12212  		it.Event.Raw = log
 12213  		return true
 12214  
 12215  	case err := <-it.sub.Err():
 12216  		it.done = true
 12217  		it.fail = err
 12218  		return it.Next()
 12219  	}
 12220  }
 12221  
 12222  // Error returns any retrieval or parsing error occurred during filtering.
 12223  func (it *SubmitHandlerRequestAppliedIterator) Error() error {
 12224  	return it.fail
 12225  }
 12226  
 12227  // Close terminates the iteration process, releasing any pending underlying
 12228  // resources.
 12229  func (it *SubmitHandlerRequestAppliedIterator) Close() error {
 12230  	it.sub.Unsubscribe()
 12231  	return nil
 12232  }
 12233  
 12234  // SubmitHandlerRequestApplied represents a RequestApplied event raised by the SubmitHandler contract.
 12235  type SubmitHandlerRequestApplied struct {
 12236  	RequestId     *big.Int
 12237  	UserActivated bool
 12238  	Raw           types.Log // Blockchain specific contextual infos
 12239  }
 12240  
 12241  // FilterRequestApplied is a free log retrieval operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
 12242  //
 12243  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
 12244  func (_SubmitHandler *SubmitHandlerFilterer) FilterRequestApplied(opts *bind.FilterOpts) (*SubmitHandlerRequestAppliedIterator, error) {
 12245  
 12246  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "RequestApplied")
 12247  	if err != nil {
 12248  		return nil, err
 12249  	}
 12250  	return &SubmitHandlerRequestAppliedIterator{contract: _SubmitHandler.contract, event: "RequestApplied", logs: logs, sub: sub}, nil
 12251  }
 12252  
 12253  // WatchRequestApplied is a free log subscription operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
 12254  //
 12255  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
 12256  func (_SubmitHandler *SubmitHandlerFilterer) WatchRequestApplied(opts *bind.WatchOpts, sink chan<- *SubmitHandlerRequestApplied) (event.Subscription, error) {
 12257  
 12258  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "RequestApplied")
 12259  	if err != nil {
 12260  		return nil, err
 12261  	}
 12262  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12263  		defer sub.Unsubscribe()
 12264  		for {
 12265  			select {
 12266  			case log := <-logs:
 12267  				// New log arrived, parse the event and forward to the user
 12268  				event := new(SubmitHandlerRequestApplied)
 12269  				if err := _SubmitHandler.contract.UnpackLog(event, "RequestApplied", log); err != nil {
 12270  					return err
 12271  				}
 12272  				event.Raw = log
 12273  
 12274  				select {
 12275  				case sink <- event:
 12276  				case err := <-sub.Err():
 12277  					return err
 12278  				case <-quit:
 12279  					return nil
 12280  				}
 12281  			case err := <-sub.Err():
 12282  				return err
 12283  			case <-quit:
 12284  				return nil
 12285  			}
 12286  		}
 12287  	}), nil
 12288  }
 12289  
 12290  // ParseRequestApplied is a log parse operation binding the contract event 0x6940a01870e576ceb735867e13863646d517ce10e66c0133186a4ebdfe9388c2.
 12291  //
 12292  // Solidity: event RequestApplied(uint256 requestId, bool userActivated)
 12293  func (_SubmitHandler *SubmitHandlerFilterer) ParseRequestApplied(log types.Log) (*SubmitHandlerRequestApplied, error) {
 12294  	event := new(SubmitHandlerRequestApplied)
 12295  	if err := _SubmitHandler.contract.UnpackLog(event, "RequestApplied", log); err != nil {
 12296  		return nil, err
 12297  	}
 12298  	return event, nil
 12299  }
 12300  
 12301  // SubmitHandlerRequestChallengedIterator is returned from FilterRequestChallenged and is used to iterate over the raw logs and unpacked data for RequestChallenged events raised by the SubmitHandler contract.
 12302  type SubmitHandlerRequestChallengedIterator struct {
 12303  	Event *SubmitHandlerRequestChallenged // Event containing the contract specifics and raw log
 12304  
 12305  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12306  	event    string              // Event name to use for unpacking event data
 12307  
 12308  	logs chan types.Log        // Log channel receiving the found contract events
 12309  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12310  	done bool                  // Whether the subscription completed delivering logs
 12311  	fail error                 // Occurred error to stop iteration
 12312  }
 12313  
 12314  // Next advances the iterator to the subsequent event, returning whether there
 12315  // are any more events found. In case of a retrieval or parsing error, false is
 12316  // returned and Error() can be queried for the exact failure.
 12317  func (it *SubmitHandlerRequestChallengedIterator) Next() bool {
 12318  	// If the iterator failed, stop iterating
 12319  	if it.fail != nil {
 12320  		return false
 12321  	}
 12322  	// If the iterator completed, deliver directly whatever's available
 12323  	if it.done {
 12324  		select {
 12325  		case log := <-it.logs:
 12326  			it.Event = new(SubmitHandlerRequestChallenged)
 12327  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12328  				it.fail = err
 12329  				return false
 12330  			}
 12331  			it.Event.Raw = log
 12332  			return true
 12333  
 12334  		default:
 12335  			return false
 12336  		}
 12337  	}
 12338  	// Iterator still in progress, wait for either a data or an error event
 12339  	select {
 12340  	case log := <-it.logs:
 12341  		it.Event = new(SubmitHandlerRequestChallenged)
 12342  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12343  			it.fail = err
 12344  			return false
 12345  		}
 12346  		it.Event.Raw = log
 12347  		return true
 12348  
 12349  	case err := <-it.sub.Err():
 12350  		it.done = true
 12351  		it.fail = err
 12352  		return it.Next()
 12353  	}
 12354  }
 12355  
 12356  // Error returns any retrieval or parsing error occurred during filtering.
 12357  func (it *SubmitHandlerRequestChallengedIterator) Error() error {
 12358  	return it.fail
 12359  }
 12360  
 12361  // Close terminates the iteration process, releasing any pending underlying
 12362  // resources.
 12363  func (it *SubmitHandlerRequestChallengedIterator) Close() error {
 12364  	it.sub.Unsubscribe()
 12365  	return nil
 12366  }
 12367  
 12368  // SubmitHandlerRequestChallenged represents a RequestChallenged event raised by the SubmitHandler contract.
 12369  type SubmitHandlerRequestChallenged struct {
 12370  	RequestId     *big.Int
 12371  	UserActivated bool
 12372  	Raw           types.Log // Blockchain specific contextual infos
 12373  }
 12374  
 12375  // FilterRequestChallenged is a free log retrieval operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
 12376  //
 12377  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
 12378  func (_SubmitHandler *SubmitHandlerFilterer) FilterRequestChallenged(opts *bind.FilterOpts) (*SubmitHandlerRequestChallengedIterator, error) {
 12379  
 12380  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "RequestChallenged")
 12381  	if err != nil {
 12382  		return nil, err
 12383  	}
 12384  	return &SubmitHandlerRequestChallengedIterator{contract: _SubmitHandler.contract, event: "RequestChallenged", logs: logs, sub: sub}, nil
 12385  }
 12386  
 12387  // WatchRequestChallenged is a free log subscription operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
 12388  //
 12389  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
 12390  func (_SubmitHandler *SubmitHandlerFilterer) WatchRequestChallenged(opts *bind.WatchOpts, sink chan<- *SubmitHandlerRequestChallenged) (event.Subscription, error) {
 12391  
 12392  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "RequestChallenged")
 12393  	if err != nil {
 12394  		return nil, err
 12395  	}
 12396  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12397  		defer sub.Unsubscribe()
 12398  		for {
 12399  			select {
 12400  			case log := <-logs:
 12401  				// New log arrived, parse the event and forward to the user
 12402  				event := new(SubmitHandlerRequestChallenged)
 12403  				if err := _SubmitHandler.contract.UnpackLog(event, "RequestChallenged", log); err != nil {
 12404  					return err
 12405  				}
 12406  				event.Raw = log
 12407  
 12408  				select {
 12409  				case sink <- event:
 12410  				case err := <-sub.Err():
 12411  					return err
 12412  				case <-quit:
 12413  					return nil
 12414  				}
 12415  			case err := <-sub.Err():
 12416  				return err
 12417  			case <-quit:
 12418  				return nil
 12419  			}
 12420  		}
 12421  	}), nil
 12422  }
 12423  
 12424  // ParseRequestChallenged is a log parse operation binding the contract event 0xc8135db115644ed4ae193313c4c801235ef740d2a57a8d5e6fe26ab66635698a.
 12425  //
 12426  // Solidity: event RequestChallenged(uint256 requestId, bool userActivated)
 12427  func (_SubmitHandler *SubmitHandlerFilterer) ParseRequestChallenged(log types.Log) (*SubmitHandlerRequestChallenged, error) {
 12428  	event := new(SubmitHandlerRequestChallenged)
 12429  	if err := _SubmitHandler.contract.UnpackLog(event, "RequestChallenged", log); err != nil {
 12430  		return nil, err
 12431  	}
 12432  	return event, nil
 12433  }
 12434  
 12435  // SubmitHandlerRequestCreatedIterator is returned from FilterRequestCreated and is used to iterate over the raw logs and unpacked data for RequestCreated events raised by the SubmitHandler contract.
 12436  type SubmitHandlerRequestCreatedIterator struct {
 12437  	Event *SubmitHandlerRequestCreated // Event containing the contract specifics and raw log
 12438  
 12439  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12440  	event    string              // Event name to use for unpacking event data
 12441  
 12442  	logs chan types.Log        // Log channel receiving the found contract events
 12443  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12444  	done bool                  // Whether the subscription completed delivering logs
 12445  	fail error                 // Occurred error to stop iteration
 12446  }
 12447  
 12448  // Next advances the iterator to the subsequent event, returning whether there
 12449  // are any more events found. In case of a retrieval or parsing error, false is
 12450  // returned and Error() can be queried for the exact failure.
 12451  func (it *SubmitHandlerRequestCreatedIterator) Next() bool {
 12452  	// If the iterator failed, stop iterating
 12453  	if it.fail != nil {
 12454  		return false
 12455  	}
 12456  	// If the iterator completed, deliver directly whatever's available
 12457  	if it.done {
 12458  		select {
 12459  		case log := <-it.logs:
 12460  			it.Event = new(SubmitHandlerRequestCreated)
 12461  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12462  				it.fail = err
 12463  				return false
 12464  			}
 12465  			it.Event.Raw = log
 12466  			return true
 12467  
 12468  		default:
 12469  			return false
 12470  		}
 12471  	}
 12472  	// Iterator still in progress, wait for either a data or an error event
 12473  	select {
 12474  	case log := <-it.logs:
 12475  		it.Event = new(SubmitHandlerRequestCreated)
 12476  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12477  			it.fail = err
 12478  			return false
 12479  		}
 12480  		it.Event.Raw = log
 12481  		return true
 12482  
 12483  	case err := <-it.sub.Err():
 12484  		it.done = true
 12485  		it.fail = err
 12486  		return it.Next()
 12487  	}
 12488  }
 12489  
 12490  // Error returns any retrieval or parsing error occurred during filtering.
 12491  func (it *SubmitHandlerRequestCreatedIterator) Error() error {
 12492  	return it.fail
 12493  }
 12494  
 12495  // Close terminates the iteration process, releasing any pending underlying
 12496  // resources.
 12497  func (it *SubmitHandlerRequestCreatedIterator) Close() error {
 12498  	it.sub.Unsubscribe()
 12499  	return nil
 12500  }
 12501  
 12502  // SubmitHandlerRequestCreated represents a RequestCreated event raised by the SubmitHandler contract.
 12503  type SubmitHandlerRequestCreated struct {
 12504  	RequestId     *big.Int
 12505  	Requestor     common.Address
 12506  	To            common.Address
 12507  	WeiAmount     *big.Int
 12508  	TrieKey       [32]byte
 12509  	TrieValue     []byte
 12510  	IsExit        bool
 12511  	UserActivated bool
 12512  	Raw           types.Log // Blockchain specific contextual infos
 12513  }
 12514  
 12515  // FilterRequestCreated is a free log retrieval operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
 12516  //
 12517  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
 12518  func (_SubmitHandler *SubmitHandlerFilterer) FilterRequestCreated(opts *bind.FilterOpts) (*SubmitHandlerRequestCreatedIterator, error) {
 12519  
 12520  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "RequestCreated")
 12521  	if err != nil {
 12522  		return nil, err
 12523  	}
 12524  	return &SubmitHandlerRequestCreatedIterator{contract: _SubmitHandler.contract, event: "RequestCreated", logs: logs, sub: sub}, nil
 12525  }
 12526  
 12527  // WatchRequestCreated is a free log subscription operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
 12528  //
 12529  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
 12530  func (_SubmitHandler *SubmitHandlerFilterer) WatchRequestCreated(opts *bind.WatchOpts, sink chan<- *SubmitHandlerRequestCreated) (event.Subscription, error) {
 12531  
 12532  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "RequestCreated")
 12533  	if err != nil {
 12534  		return nil, err
 12535  	}
 12536  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12537  		defer sub.Unsubscribe()
 12538  		for {
 12539  			select {
 12540  			case log := <-logs:
 12541  				// New log arrived, parse the event and forward to the user
 12542  				event := new(SubmitHandlerRequestCreated)
 12543  				if err := _SubmitHandler.contract.UnpackLog(event, "RequestCreated", log); err != nil {
 12544  					return err
 12545  				}
 12546  				event.Raw = log
 12547  
 12548  				select {
 12549  				case sink <- event:
 12550  				case err := <-sub.Err():
 12551  					return err
 12552  				case <-quit:
 12553  					return nil
 12554  				}
 12555  			case err := <-sub.Err():
 12556  				return err
 12557  			case <-quit:
 12558  				return nil
 12559  			}
 12560  		}
 12561  	}), nil
 12562  }
 12563  
 12564  // ParseRequestCreated is a log parse operation binding the contract event 0x879922cf5fcada9ebaf8bd7424dc62877f4b220cae07fb6695cc1e8f94c52b4d.
 12565  //
 12566  // Solidity: event RequestCreated(uint256 requestId, address requestor, address to, uint256 weiAmount, bytes32 trieKey, bytes trieValue, bool isExit, bool userActivated)
 12567  func (_SubmitHandler *SubmitHandlerFilterer) ParseRequestCreated(log types.Log) (*SubmitHandlerRequestCreated, error) {
 12568  	event := new(SubmitHandlerRequestCreated)
 12569  	if err := _SubmitHandler.contract.UnpackLog(event, "RequestCreated", log); err != nil {
 12570  		return nil, err
 12571  	}
 12572  	return event, nil
 12573  }
 12574  
 12575  // SubmitHandlerRequestFinalizedIterator is returned from FilterRequestFinalized and is used to iterate over the raw logs and unpacked data for RequestFinalized events raised by the SubmitHandler contract.
 12576  type SubmitHandlerRequestFinalizedIterator struct {
 12577  	Event *SubmitHandlerRequestFinalized // Event containing the contract specifics and raw log
 12578  
 12579  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12580  	event    string              // Event name to use for unpacking event data
 12581  
 12582  	logs chan types.Log        // Log channel receiving the found contract events
 12583  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12584  	done bool                  // Whether the subscription completed delivering logs
 12585  	fail error                 // Occurred error to stop iteration
 12586  }
 12587  
 12588  // Next advances the iterator to the subsequent event, returning whether there
 12589  // are any more events found. In case of a retrieval or parsing error, false is
 12590  // returned and Error() can be queried for the exact failure.
 12591  func (it *SubmitHandlerRequestFinalizedIterator) Next() bool {
 12592  	// If the iterator failed, stop iterating
 12593  	if it.fail != nil {
 12594  		return false
 12595  	}
 12596  	// If the iterator completed, deliver directly whatever's available
 12597  	if it.done {
 12598  		select {
 12599  		case log := <-it.logs:
 12600  			it.Event = new(SubmitHandlerRequestFinalized)
 12601  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12602  				it.fail = err
 12603  				return false
 12604  			}
 12605  			it.Event.Raw = log
 12606  			return true
 12607  
 12608  		default:
 12609  			return false
 12610  		}
 12611  	}
 12612  	// Iterator still in progress, wait for either a data or an error event
 12613  	select {
 12614  	case log := <-it.logs:
 12615  		it.Event = new(SubmitHandlerRequestFinalized)
 12616  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12617  			it.fail = err
 12618  			return false
 12619  		}
 12620  		it.Event.Raw = log
 12621  		return true
 12622  
 12623  	case err := <-it.sub.Err():
 12624  		it.done = true
 12625  		it.fail = err
 12626  		return it.Next()
 12627  	}
 12628  }
 12629  
 12630  // Error returns any retrieval or parsing error occurred during filtering.
 12631  func (it *SubmitHandlerRequestFinalizedIterator) Error() error {
 12632  	return it.fail
 12633  }
 12634  
 12635  // Close terminates the iteration process, releasing any pending underlying
 12636  // resources.
 12637  func (it *SubmitHandlerRequestFinalizedIterator) Close() error {
 12638  	it.sub.Unsubscribe()
 12639  	return nil
 12640  }
 12641  
 12642  // SubmitHandlerRequestFinalized represents a RequestFinalized event raised by the SubmitHandler contract.
 12643  type SubmitHandlerRequestFinalized struct {
 12644  	RequestId     *big.Int
 12645  	UserActivated bool
 12646  	Raw           types.Log // Blockchain specific contextual infos
 12647  }
 12648  
 12649  // FilterRequestFinalized is a free log retrieval operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
 12650  //
 12651  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
 12652  func (_SubmitHandler *SubmitHandlerFilterer) FilterRequestFinalized(opts *bind.FilterOpts) (*SubmitHandlerRequestFinalizedIterator, error) {
 12653  
 12654  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "RequestFinalized")
 12655  	if err != nil {
 12656  		return nil, err
 12657  	}
 12658  	return &SubmitHandlerRequestFinalizedIterator{contract: _SubmitHandler.contract, event: "RequestFinalized", logs: logs, sub: sub}, nil
 12659  }
 12660  
 12661  // WatchRequestFinalized is a free log subscription operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
 12662  //
 12663  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
 12664  func (_SubmitHandler *SubmitHandlerFilterer) WatchRequestFinalized(opts *bind.WatchOpts, sink chan<- *SubmitHandlerRequestFinalized) (event.Subscription, error) {
 12665  
 12666  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "RequestFinalized")
 12667  	if err != nil {
 12668  		return nil, err
 12669  	}
 12670  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12671  		defer sub.Unsubscribe()
 12672  		for {
 12673  			select {
 12674  			case log := <-logs:
 12675  				// New log arrived, parse the event and forward to the user
 12676  				event := new(SubmitHandlerRequestFinalized)
 12677  				if err := _SubmitHandler.contract.UnpackLog(event, "RequestFinalized", log); err != nil {
 12678  					return err
 12679  				}
 12680  				event.Raw = log
 12681  
 12682  				select {
 12683  				case sink <- event:
 12684  				case err := <-sub.Err():
 12685  					return err
 12686  				case <-quit:
 12687  					return nil
 12688  				}
 12689  			case err := <-sub.Err():
 12690  				return err
 12691  			case <-quit:
 12692  				return nil
 12693  			}
 12694  		}
 12695  	}), nil
 12696  }
 12697  
 12698  // ParseRequestFinalized is a log parse operation binding the contract event 0x134017cf3262b18f892ee95dde3b0aec9a80cc70a7c96f09c64bd237aceb0473.
 12699  //
 12700  // Solidity: event RequestFinalized(uint256 requestId, bool userActivated)
 12701  func (_SubmitHandler *SubmitHandlerFilterer) ParseRequestFinalized(log types.Log) (*SubmitHandlerRequestFinalized, error) {
 12702  	event := new(SubmitHandlerRequestFinalized)
 12703  	if err := _SubmitHandler.contract.UnpackLog(event, "RequestFinalized", log); err != nil {
 12704  		return nil, err
 12705  	}
 12706  	return event, nil
 12707  }
 12708  
 12709  // SubmitHandlerRequestableContractMappedIterator is returned from FilterRequestableContractMapped and is used to iterate over the raw logs and unpacked data for RequestableContractMapped events raised by the SubmitHandler contract.
 12710  type SubmitHandlerRequestableContractMappedIterator struct {
 12711  	Event *SubmitHandlerRequestableContractMapped // Event containing the contract specifics and raw log
 12712  
 12713  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12714  	event    string              // Event name to use for unpacking event data
 12715  
 12716  	logs chan types.Log        // Log channel receiving the found contract events
 12717  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12718  	done bool                  // Whether the subscription completed delivering logs
 12719  	fail error                 // Occurred error to stop iteration
 12720  }
 12721  
 12722  // Next advances the iterator to the subsequent event, returning whether there
 12723  // are any more events found. In case of a retrieval or parsing error, false is
 12724  // returned and Error() can be queried for the exact failure.
 12725  func (it *SubmitHandlerRequestableContractMappedIterator) Next() bool {
 12726  	// If the iterator failed, stop iterating
 12727  	if it.fail != nil {
 12728  		return false
 12729  	}
 12730  	// If the iterator completed, deliver directly whatever's available
 12731  	if it.done {
 12732  		select {
 12733  		case log := <-it.logs:
 12734  			it.Event = new(SubmitHandlerRequestableContractMapped)
 12735  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12736  				it.fail = err
 12737  				return false
 12738  			}
 12739  			it.Event.Raw = log
 12740  			return true
 12741  
 12742  		default:
 12743  			return false
 12744  		}
 12745  	}
 12746  	// Iterator still in progress, wait for either a data or an error event
 12747  	select {
 12748  	case log := <-it.logs:
 12749  		it.Event = new(SubmitHandlerRequestableContractMapped)
 12750  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12751  			it.fail = err
 12752  			return false
 12753  		}
 12754  		it.Event.Raw = log
 12755  		return true
 12756  
 12757  	case err := <-it.sub.Err():
 12758  		it.done = true
 12759  		it.fail = err
 12760  		return it.Next()
 12761  	}
 12762  }
 12763  
 12764  // Error returns any retrieval or parsing error occurred during filtering.
 12765  func (it *SubmitHandlerRequestableContractMappedIterator) Error() error {
 12766  	return it.fail
 12767  }
 12768  
 12769  // Close terminates the iteration process, releasing any pending underlying
 12770  // resources.
 12771  func (it *SubmitHandlerRequestableContractMappedIterator) Close() error {
 12772  	it.sub.Unsubscribe()
 12773  	return nil
 12774  }
 12775  
 12776  // SubmitHandlerRequestableContractMapped represents a RequestableContractMapped event raised by the SubmitHandler contract.
 12777  type SubmitHandlerRequestableContractMapped struct {
 12778  	ContractInRootchain  common.Address
 12779  	ContractInChildchain common.Address
 12780  	Raw                  types.Log // Blockchain specific contextual infos
 12781  }
 12782  
 12783  // FilterRequestableContractMapped is a free log retrieval operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
 12784  //
 12785  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
 12786  func (_SubmitHandler *SubmitHandlerFilterer) FilterRequestableContractMapped(opts *bind.FilterOpts) (*SubmitHandlerRequestableContractMappedIterator, error) {
 12787  
 12788  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "RequestableContractMapped")
 12789  	if err != nil {
 12790  		return nil, err
 12791  	}
 12792  	return &SubmitHandlerRequestableContractMappedIterator{contract: _SubmitHandler.contract, event: "RequestableContractMapped", logs: logs, sub: sub}, nil
 12793  }
 12794  
 12795  // WatchRequestableContractMapped is a free log subscription operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
 12796  //
 12797  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
 12798  func (_SubmitHandler *SubmitHandlerFilterer) WatchRequestableContractMapped(opts *bind.WatchOpts, sink chan<- *SubmitHandlerRequestableContractMapped) (event.Subscription, error) {
 12799  
 12800  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "RequestableContractMapped")
 12801  	if err != nil {
 12802  		return nil, err
 12803  	}
 12804  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12805  		defer sub.Unsubscribe()
 12806  		for {
 12807  			select {
 12808  			case log := <-logs:
 12809  				// New log arrived, parse the event and forward to the user
 12810  				event := new(SubmitHandlerRequestableContractMapped)
 12811  				if err := _SubmitHandler.contract.UnpackLog(event, "RequestableContractMapped", log); err != nil {
 12812  					return err
 12813  				}
 12814  				event.Raw = log
 12815  
 12816  				select {
 12817  				case sink <- event:
 12818  				case err := <-sub.Err():
 12819  					return err
 12820  				case <-quit:
 12821  					return nil
 12822  				}
 12823  			case err := <-sub.Err():
 12824  				return err
 12825  			case <-quit:
 12826  				return nil
 12827  			}
 12828  		}
 12829  	}), nil
 12830  }
 12831  
 12832  // ParseRequestableContractMapped is a log parse operation binding the contract event 0xc5ec2ed49686197edd2ed642c7e6096893cc81e6658cde2527030316037715d0.
 12833  //
 12834  // Solidity: event RequestableContractMapped(address contractInRootchain, address contractInChildchain)
 12835  func (_SubmitHandler *SubmitHandlerFilterer) ParseRequestableContractMapped(log types.Log) (*SubmitHandlerRequestableContractMapped, error) {
 12836  	event := new(SubmitHandlerRequestableContractMapped)
 12837  	if err := _SubmitHandler.contract.UnpackLog(event, "RequestableContractMapped", log); err != nil {
 12838  		return nil, err
 12839  	}
 12840  	return event, nil
 12841  }
 12842  
 12843  // SubmitHandlerSessionTimeoutIterator is returned from FilterSessionTimeout and is used to iterate over the raw logs and unpacked data for SessionTimeout events raised by the SubmitHandler contract.
 12844  type SubmitHandlerSessionTimeoutIterator struct {
 12845  	Event *SubmitHandlerSessionTimeout // Event containing the contract specifics and raw log
 12846  
 12847  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12848  	event    string              // Event name to use for unpacking event data
 12849  
 12850  	logs chan types.Log        // Log channel receiving the found contract events
 12851  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12852  	done bool                  // Whether the subscription completed delivering logs
 12853  	fail error                 // Occurred error to stop iteration
 12854  }
 12855  
 12856  // Next advances the iterator to the subsequent event, returning whether there
 12857  // are any more events found. In case of a retrieval or parsing error, false is
 12858  // returned and Error() can be queried for the exact failure.
 12859  func (it *SubmitHandlerSessionTimeoutIterator) Next() bool {
 12860  	// If the iterator failed, stop iterating
 12861  	if it.fail != nil {
 12862  		return false
 12863  	}
 12864  	// If the iterator completed, deliver directly whatever's available
 12865  	if it.done {
 12866  		select {
 12867  		case log := <-it.logs:
 12868  			it.Event = new(SubmitHandlerSessionTimeout)
 12869  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12870  				it.fail = err
 12871  				return false
 12872  			}
 12873  			it.Event.Raw = log
 12874  			return true
 12875  
 12876  		default:
 12877  			return false
 12878  		}
 12879  	}
 12880  	// Iterator still in progress, wait for either a data or an error event
 12881  	select {
 12882  	case log := <-it.logs:
 12883  		it.Event = new(SubmitHandlerSessionTimeout)
 12884  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12885  			it.fail = err
 12886  			return false
 12887  		}
 12888  		it.Event.Raw = log
 12889  		return true
 12890  
 12891  	case err := <-it.sub.Err():
 12892  		it.done = true
 12893  		it.fail = err
 12894  		return it.Next()
 12895  	}
 12896  }
 12897  
 12898  // Error returns any retrieval or parsing error occurred during filtering.
 12899  func (it *SubmitHandlerSessionTimeoutIterator) Error() error {
 12900  	return it.fail
 12901  }
 12902  
 12903  // Close terminates the iteration process, releasing any pending underlying
 12904  // resources.
 12905  func (it *SubmitHandlerSessionTimeoutIterator) Close() error {
 12906  	it.sub.Unsubscribe()
 12907  	return nil
 12908  }
 12909  
 12910  // SubmitHandlerSessionTimeout represents a SessionTimeout event raised by the SubmitHandler contract.
 12911  type SubmitHandlerSessionTimeout struct {
 12912  	UserActivated bool
 12913  	Raw           types.Log // Blockchain specific contextual infos
 12914  }
 12915  
 12916  // FilterSessionTimeout is a free log retrieval operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
 12917  //
 12918  // Solidity: event SessionTimeout(bool userActivated)
 12919  func (_SubmitHandler *SubmitHandlerFilterer) FilterSessionTimeout(opts *bind.FilterOpts) (*SubmitHandlerSessionTimeoutIterator, error) {
 12920  
 12921  	logs, sub, err := _SubmitHandler.contract.FilterLogs(opts, "SessionTimeout")
 12922  	if err != nil {
 12923  		return nil, err
 12924  	}
 12925  	return &SubmitHandlerSessionTimeoutIterator{contract: _SubmitHandler.contract, event: "SessionTimeout", logs: logs, sub: sub}, nil
 12926  }
 12927  
 12928  // WatchSessionTimeout is a free log subscription operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
 12929  //
 12930  // Solidity: event SessionTimeout(bool userActivated)
 12931  func (_SubmitHandler *SubmitHandlerFilterer) WatchSessionTimeout(opts *bind.WatchOpts, sink chan<- *SubmitHandlerSessionTimeout) (event.Subscription, error) {
 12932  
 12933  	logs, sub, err := _SubmitHandler.contract.WatchLogs(opts, "SessionTimeout")
 12934  	if err != nil {
 12935  		return nil, err
 12936  	}
 12937  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12938  		defer sub.Unsubscribe()
 12939  		for {
 12940  			select {
 12941  			case log := <-logs:
 12942  				// New log arrived, parse the event and forward to the user
 12943  				event := new(SubmitHandlerSessionTimeout)
 12944  				if err := _SubmitHandler.contract.UnpackLog(event, "SessionTimeout", log); err != nil {
 12945  					return err
 12946  				}
 12947  				event.Raw = log
 12948  
 12949  				select {
 12950  				case sink <- event:
 12951  				case err := <-sub.Err():
 12952  					return err
 12953  				case <-quit:
 12954  					return nil
 12955  				}
 12956  			case err := <-sub.Err():
 12957  				return err
 12958  			case <-quit:
 12959  				return nil
 12960  			}
 12961  		}
 12962  	}), nil
 12963  }
 12964  
 12965  // ParseSessionTimeout is a log parse operation binding the contract event 0x2122ec719581cd177f225f59a1ee005831211196831f8f1ccffa817d2e7bd108.
 12966  //
 12967  // Solidity: event SessionTimeout(bool userActivated)
 12968  func (_SubmitHandler *SubmitHandlerFilterer) ParseSessionTimeout(log types.Log) (*SubmitHandlerSessionTimeout, error) {
 12969  	event := new(SubmitHandlerSessionTimeout)
 12970  	if err := _SubmitHandler.contract.UnpackLog(event, "SessionTimeout", log); err != nil {
 12971  		return nil, err
 12972  	}
 12973  	return event, nil
 12974  }