github.com/klaytn/klaytn@v1.12.1/contracts/extbridge/ext_bridge.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 extbridge
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	"github.com/klaytn/klaytn"
    12  	"github.com/klaytn/klaytn/accounts/abi"
    13  	"github.com/klaytn/klaytn/accounts/abi/bind"
    14  	"github.com/klaytn/klaytn/blockchain/types"
    15  	"github.com/klaytn/klaytn/common"
    16  	"github.com/klaytn/klaytn/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = klaytn.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // AddressMetaData contains all meta data concerning the Address contract.
    33  var AddressMetaData = &bind.MetaData{
    34  	ABI: "[]",
    35  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820299ebfdf39258e62f3b1db6c55ebb9d11001cde07d51662fa2fd336c270f24630029",
    36  }
    37  
    38  // AddressABI is the input ABI used to generate the binding from.
    39  // Deprecated: Use AddressMetaData.ABI instead.
    40  var AddressABI = AddressMetaData.ABI
    41  
    42  // AddressBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
    43  const AddressBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820299ebfdf39258e62f3b1db6c55ebb9d11001cde07d51662fa2fd336c270f24630029`
    44  
    45  // AddressBin is the compiled bytecode used for deploying new contracts.
    46  // Deprecated: Use AddressMetaData.Bin instead.
    47  var AddressBin = AddressMetaData.Bin
    48  
    49  // DeployAddress deploys a new Klaytn contract, binding an instance of Address to it.
    50  func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) {
    51  	parsed, err := AddressMetaData.GetAbi()
    52  	if err != nil {
    53  		return common.Address{}, nil, nil, err
    54  	}
    55  	if parsed == nil {
    56  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    57  	}
    58  
    59  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressBin), backend)
    60  	if err != nil {
    61  		return common.Address{}, nil, nil, err
    62  	}
    63  	return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
    64  }
    65  
    66  // Address is an auto generated Go binding around a Klaytn contract.
    67  type Address struct {
    68  	AddressCaller     // Read-only binding to the contract
    69  	AddressTransactor // Write-only binding to the contract
    70  	AddressFilterer   // Log filterer for contract events
    71  }
    72  
    73  // AddressCaller is an auto generated read-only Go binding around a Klaytn contract.
    74  type AddressCaller struct {
    75  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    76  }
    77  
    78  // AddressTransactor is an auto generated write-only Go binding around a Klaytn contract.
    79  type AddressTransactor struct {
    80  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    81  }
    82  
    83  // AddressFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
    84  type AddressFilterer struct {
    85  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    86  }
    87  
    88  // AddressSession is an auto generated Go binding around a Klaytn contract,
    89  // with pre-set call and transact options.
    90  type AddressSession struct {
    91  	Contract     *Address          // Generic contract binding to set the session for
    92  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    93  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    94  }
    95  
    96  // AddressCallerSession is an auto generated read-only Go binding around a Klaytn contract,
    97  // with pre-set call options.
    98  type AddressCallerSession struct {
    99  	Contract *AddressCaller // Generic contract caller binding to set the session for
   100  	CallOpts bind.CallOpts  // Call options to use throughout this session
   101  }
   102  
   103  // AddressTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   104  // with pre-set transact options.
   105  type AddressTransactorSession struct {
   106  	Contract     *AddressTransactor // Generic contract transactor binding to set the session for
   107  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
   108  }
   109  
   110  // AddressRaw is an auto generated low-level Go binding around a Klaytn contract.
   111  type AddressRaw struct {
   112  	Contract *Address // Generic contract binding to access the raw methods on
   113  }
   114  
   115  // AddressCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   116  type AddressCallerRaw struct {
   117  	Contract *AddressCaller // Generic read-only contract binding to access the raw methods on
   118  }
   119  
   120  // AddressTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   121  type AddressTransactorRaw struct {
   122  	Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on
   123  }
   124  
   125  // NewAddress creates a new instance of Address, bound to a specific deployed contract.
   126  func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) {
   127  	contract, err := bindAddress(address, backend, backend, backend)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
   132  }
   133  
   134  // NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract.
   135  func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) {
   136  	contract, err := bindAddress(address, caller, nil, nil)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &AddressCaller{contract: contract}, nil
   141  }
   142  
   143  // NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract.
   144  func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) {
   145  	contract, err := bindAddress(address, nil, transactor, nil)
   146  	if err != nil {
   147  		return nil, err
   148  	}
   149  	return &AddressTransactor{contract: contract}, nil
   150  }
   151  
   152  // NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract.
   153  func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) {
   154  	contract, err := bindAddress(address, nil, nil, filterer)
   155  	if err != nil {
   156  		return nil, err
   157  	}
   158  	return &AddressFilterer{contract: contract}, nil
   159  }
   160  
   161  // bindAddress binds a generic wrapper to an already deployed contract.
   162  func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   163  	parsed, err := AddressMetaData.GetAbi()
   164  	if err != nil {
   165  		return nil, err
   166  	}
   167  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   168  }
   169  
   170  // Call invokes the (constant) contract method with params as input values and
   171  // sets the output to result. The result type might be a single field for simple
   172  // returns, a slice of interfaces for anonymous returns and a struct for named
   173  // returns.
   174  func (_Address *AddressRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   175  	return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...)
   176  }
   177  
   178  // Transfer initiates a plain transaction to move funds to the contract, calling
   179  // its default method if one is available.
   180  func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   181  	return _Address.Contract.AddressTransactor.contract.Transfer(opts)
   182  }
   183  
   184  // Transact invokes the (paid) contract method with params as input values.
   185  func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   186  	return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...)
   187  }
   188  
   189  // Call invokes the (constant) contract method with params as input values and
   190  // sets the output to result. The result type might be a single field for simple
   191  // returns, a slice of interfaces for anonymous returns and a struct for named
   192  // returns.
   193  func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   194  	return _Address.Contract.contract.Call(opts, result, method, params...)
   195  }
   196  
   197  // Transfer initiates a plain transaction to move funds to the contract, calling
   198  // its default method if one is available.
   199  func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   200  	return _Address.Contract.contract.Transfer(opts)
   201  }
   202  
   203  // Transact invokes the (paid) contract method with params as input values.
   204  func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   205  	return _Address.Contract.contract.Transact(opts, method, params...)
   206  }
   207  
   208  // BridgeFeeMetaData contains all meta data concerning the BridgeFee contract.
   209  var BridgeFeeMetaData = &bind.MetaData{
   210  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
   211  	Sigs: map[string]string{
   212  		"488af871": "feeOfERC20(address)",
   213  		"c263b5d6": "feeOfKLAY()",
   214  		"b3f00674": "feeReceiver()",
   215  	},
   216  }
   217  
   218  // BridgeFeeABI is the input ABI used to generate the binding from.
   219  // Deprecated: Use BridgeFeeMetaData.ABI instead.
   220  var BridgeFeeABI = BridgeFeeMetaData.ABI
   221  
   222  // BridgeFeeBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   223  const BridgeFeeBinRuntime = ``
   224  
   225  // BridgeFeeFuncSigs maps the 4-byte function signature to its string representation.
   226  // Deprecated: Use BridgeFeeMetaData.Sigs instead.
   227  var BridgeFeeFuncSigs = BridgeFeeMetaData.Sigs
   228  
   229  // BridgeFee is an auto generated Go binding around a Klaytn contract.
   230  type BridgeFee struct {
   231  	BridgeFeeCaller     // Read-only binding to the contract
   232  	BridgeFeeTransactor // Write-only binding to the contract
   233  	BridgeFeeFilterer   // Log filterer for contract events
   234  }
   235  
   236  // BridgeFeeCaller is an auto generated read-only Go binding around a Klaytn contract.
   237  type BridgeFeeCaller struct {
   238  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   239  }
   240  
   241  // BridgeFeeTransactor is an auto generated write-only Go binding around a Klaytn contract.
   242  type BridgeFeeTransactor struct {
   243  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   244  }
   245  
   246  // BridgeFeeFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   247  type BridgeFeeFilterer struct {
   248  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   249  }
   250  
   251  // BridgeFeeSession is an auto generated Go binding around a Klaytn contract,
   252  // with pre-set call and transact options.
   253  type BridgeFeeSession struct {
   254  	Contract     *BridgeFee        // Generic contract binding to set the session for
   255  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   256  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   257  }
   258  
   259  // BridgeFeeCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   260  // with pre-set call options.
   261  type BridgeFeeCallerSession struct {
   262  	Contract *BridgeFeeCaller // Generic contract caller binding to set the session for
   263  	CallOpts bind.CallOpts    // Call options to use throughout this session
   264  }
   265  
   266  // BridgeFeeTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   267  // with pre-set transact options.
   268  type BridgeFeeTransactorSession struct {
   269  	Contract     *BridgeFeeTransactor // Generic contract transactor binding to set the session for
   270  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
   271  }
   272  
   273  // BridgeFeeRaw is an auto generated low-level Go binding around a Klaytn contract.
   274  type BridgeFeeRaw struct {
   275  	Contract *BridgeFee // Generic contract binding to access the raw methods on
   276  }
   277  
   278  // BridgeFeeCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   279  type BridgeFeeCallerRaw struct {
   280  	Contract *BridgeFeeCaller // Generic read-only contract binding to access the raw methods on
   281  }
   282  
   283  // BridgeFeeTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   284  type BridgeFeeTransactorRaw struct {
   285  	Contract *BridgeFeeTransactor // Generic write-only contract binding to access the raw methods on
   286  }
   287  
   288  // NewBridgeFee creates a new instance of BridgeFee, bound to a specific deployed contract.
   289  func NewBridgeFee(address common.Address, backend bind.ContractBackend) (*BridgeFee, error) {
   290  	contract, err := bindBridgeFee(address, backend, backend, backend)
   291  	if err != nil {
   292  		return nil, err
   293  	}
   294  	return &BridgeFee{BridgeFeeCaller: BridgeFeeCaller{contract: contract}, BridgeFeeTransactor: BridgeFeeTransactor{contract: contract}, BridgeFeeFilterer: BridgeFeeFilterer{contract: contract}}, nil
   295  }
   296  
   297  // NewBridgeFeeCaller creates a new read-only instance of BridgeFee, bound to a specific deployed contract.
   298  func NewBridgeFeeCaller(address common.Address, caller bind.ContractCaller) (*BridgeFeeCaller, error) {
   299  	contract, err := bindBridgeFee(address, caller, nil, nil)
   300  	if err != nil {
   301  		return nil, err
   302  	}
   303  	return &BridgeFeeCaller{contract: contract}, nil
   304  }
   305  
   306  // NewBridgeFeeTransactor creates a new write-only instance of BridgeFee, bound to a specific deployed contract.
   307  func NewBridgeFeeTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeFeeTransactor, error) {
   308  	contract, err := bindBridgeFee(address, nil, transactor, nil)
   309  	if err != nil {
   310  		return nil, err
   311  	}
   312  	return &BridgeFeeTransactor{contract: contract}, nil
   313  }
   314  
   315  // NewBridgeFeeFilterer creates a new log filterer instance of BridgeFee, bound to a specific deployed contract.
   316  func NewBridgeFeeFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeFeeFilterer, error) {
   317  	contract, err := bindBridgeFee(address, nil, nil, filterer)
   318  	if err != nil {
   319  		return nil, err
   320  	}
   321  	return &BridgeFeeFilterer{contract: contract}, nil
   322  }
   323  
   324  // bindBridgeFee binds a generic wrapper to an already deployed contract.
   325  func bindBridgeFee(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   326  	parsed, err := BridgeFeeMetaData.GetAbi()
   327  	if err != nil {
   328  		return nil, err
   329  	}
   330  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   331  }
   332  
   333  // Call invokes the (constant) contract method with params as input values and
   334  // sets the output to result. The result type might be a single field for simple
   335  // returns, a slice of interfaces for anonymous returns and a struct for named
   336  // returns.
   337  func (_BridgeFee *BridgeFeeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   338  	return _BridgeFee.Contract.BridgeFeeCaller.contract.Call(opts, result, method, params...)
   339  }
   340  
   341  // Transfer initiates a plain transaction to move funds to the contract, calling
   342  // its default method if one is available.
   343  func (_BridgeFee *BridgeFeeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   344  	return _BridgeFee.Contract.BridgeFeeTransactor.contract.Transfer(opts)
   345  }
   346  
   347  // Transact invokes the (paid) contract method with params as input values.
   348  func (_BridgeFee *BridgeFeeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   349  	return _BridgeFee.Contract.BridgeFeeTransactor.contract.Transact(opts, method, params...)
   350  }
   351  
   352  // Call invokes the (constant) contract method with params as input values and
   353  // sets the output to result. The result type might be a single field for simple
   354  // returns, a slice of interfaces for anonymous returns and a struct for named
   355  // returns.
   356  func (_BridgeFee *BridgeFeeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   357  	return _BridgeFee.Contract.contract.Call(opts, result, method, params...)
   358  }
   359  
   360  // Transfer initiates a plain transaction to move funds to the contract, calling
   361  // its default method if one is available.
   362  func (_BridgeFee *BridgeFeeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   363  	return _BridgeFee.Contract.contract.Transfer(opts)
   364  }
   365  
   366  // Transact invokes the (paid) contract method with params as input values.
   367  func (_BridgeFee *BridgeFeeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   368  	return _BridgeFee.Contract.contract.Transact(opts, method, params...)
   369  }
   370  
   371  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
   372  //
   373  // Solidity: function feeOfERC20(address ) view returns(uint256)
   374  func (_BridgeFee *BridgeFeeCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
   375  	var out []interface{}
   376  	err := _BridgeFee.contract.Call(opts, &out, "feeOfERC20", arg0)
   377  
   378  	if err != nil {
   379  		return *new(*big.Int), err
   380  	}
   381  
   382  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   383  
   384  	return out0, err
   385  
   386  }
   387  
   388  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
   389  //
   390  // Solidity: function feeOfERC20(address ) view returns(uint256)
   391  func (_BridgeFee *BridgeFeeSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
   392  	return _BridgeFee.Contract.FeeOfERC20(&_BridgeFee.CallOpts, arg0)
   393  }
   394  
   395  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
   396  //
   397  // Solidity: function feeOfERC20(address ) view returns(uint256)
   398  func (_BridgeFee *BridgeFeeCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
   399  	return _BridgeFee.Contract.FeeOfERC20(&_BridgeFee.CallOpts, arg0)
   400  }
   401  
   402  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
   403  //
   404  // Solidity: function feeOfKLAY() view returns(uint256)
   405  func (_BridgeFee *BridgeFeeCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
   406  	var out []interface{}
   407  	err := _BridgeFee.contract.Call(opts, &out, "feeOfKLAY")
   408  
   409  	if err != nil {
   410  		return *new(*big.Int), err
   411  	}
   412  
   413  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   414  
   415  	return out0, err
   416  
   417  }
   418  
   419  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
   420  //
   421  // Solidity: function feeOfKLAY() view returns(uint256)
   422  func (_BridgeFee *BridgeFeeSession) FeeOfKLAY() (*big.Int, error) {
   423  	return _BridgeFee.Contract.FeeOfKLAY(&_BridgeFee.CallOpts)
   424  }
   425  
   426  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
   427  //
   428  // Solidity: function feeOfKLAY() view returns(uint256)
   429  func (_BridgeFee *BridgeFeeCallerSession) FeeOfKLAY() (*big.Int, error) {
   430  	return _BridgeFee.Contract.FeeOfKLAY(&_BridgeFee.CallOpts)
   431  }
   432  
   433  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
   434  //
   435  // Solidity: function feeReceiver() view returns(address)
   436  func (_BridgeFee *BridgeFeeCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
   437  	var out []interface{}
   438  	err := _BridgeFee.contract.Call(opts, &out, "feeReceiver")
   439  
   440  	if err != nil {
   441  		return *new(common.Address), err
   442  	}
   443  
   444  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   445  
   446  	return out0, err
   447  
   448  }
   449  
   450  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
   451  //
   452  // Solidity: function feeReceiver() view returns(address)
   453  func (_BridgeFee *BridgeFeeSession) FeeReceiver() (common.Address, error) {
   454  	return _BridgeFee.Contract.FeeReceiver(&_BridgeFee.CallOpts)
   455  }
   456  
   457  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
   458  //
   459  // Solidity: function feeReceiver() view returns(address)
   460  func (_BridgeFee *BridgeFeeCallerSession) FeeReceiver() (common.Address, error) {
   461  	return _BridgeFee.Contract.FeeReceiver(&_BridgeFee.CallOpts)
   462  }
   463  
   464  // BridgeFeeERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeFee contract.
   465  type BridgeFeeERC20FeeChangedIterator struct {
   466  	Event *BridgeFeeERC20FeeChanged // Event containing the contract specifics and raw log
   467  
   468  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   469  	event    string              // Event name to use for unpacking event data
   470  
   471  	logs chan types.Log      // Log channel receiving the found contract events
   472  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   473  	done bool                // Whether the subscription completed delivering logs
   474  	fail error               // Occurred error to stop iteration
   475  }
   476  
   477  // Next advances the iterator to the subsequent event, returning whether there
   478  // are any more events found. In case of a retrieval or parsing error, false is
   479  // returned and Error() can be queried for the exact failure.
   480  func (it *BridgeFeeERC20FeeChangedIterator) Next() bool {
   481  	// If the iterator failed, stop iterating
   482  	if it.fail != nil {
   483  		return false
   484  	}
   485  	// If the iterator completed, deliver directly whatever's available
   486  	if it.done {
   487  		select {
   488  		case log := <-it.logs:
   489  			it.Event = new(BridgeFeeERC20FeeChanged)
   490  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   491  				it.fail = err
   492  				return false
   493  			}
   494  			it.Event.Raw = log
   495  			return true
   496  
   497  		default:
   498  			return false
   499  		}
   500  	}
   501  	// Iterator still in progress, wait for either a data or an error event
   502  	select {
   503  	case log := <-it.logs:
   504  		it.Event = new(BridgeFeeERC20FeeChanged)
   505  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   506  			it.fail = err
   507  			return false
   508  		}
   509  		it.Event.Raw = log
   510  		return true
   511  
   512  	case err := <-it.sub.Err():
   513  		it.done = true
   514  		it.fail = err
   515  		return it.Next()
   516  	}
   517  }
   518  
   519  // Error returns any retrieval or parsing error occurred during filtering.
   520  func (it *BridgeFeeERC20FeeChangedIterator) Error() error {
   521  	return it.fail
   522  }
   523  
   524  // Close terminates the iteration process, releasing any pending underlying
   525  // resources.
   526  func (it *BridgeFeeERC20FeeChangedIterator) Close() error {
   527  	it.sub.Unsubscribe()
   528  	return nil
   529  }
   530  
   531  // BridgeFeeERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeFee contract.
   532  type BridgeFeeERC20FeeChanged struct {
   533  	Token common.Address
   534  	Fee   *big.Int
   535  	Raw   types.Log // Blockchain specific contextual infos
   536  }
   537  
   538  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
   539  //
   540  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
   541  func (_BridgeFee *BridgeFeeFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeFeeERC20FeeChangedIterator, error) {
   542  
   543  	var tokenRule []interface{}
   544  	for _, tokenItem := range token {
   545  		tokenRule = append(tokenRule, tokenItem)
   546  	}
   547  	var feeRule []interface{}
   548  	for _, feeItem := range fee {
   549  		feeRule = append(feeRule, feeItem)
   550  	}
   551  
   552  	logs, sub, err := _BridgeFee.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
   553  	if err != nil {
   554  		return nil, err
   555  	}
   556  	return &BridgeFeeERC20FeeChangedIterator{contract: _BridgeFee.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
   557  }
   558  
   559  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
   560  //
   561  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
   562  func (_BridgeFee *BridgeFeeFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
   563  
   564  	var tokenRule []interface{}
   565  	for _, tokenItem := range token {
   566  		tokenRule = append(tokenRule, tokenItem)
   567  	}
   568  	var feeRule []interface{}
   569  	for _, feeItem := range fee {
   570  		feeRule = append(feeRule, feeItem)
   571  	}
   572  
   573  	logs, sub, err := _BridgeFee.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
   574  	if err != nil {
   575  		return nil, err
   576  	}
   577  	return event.NewSubscription(func(quit <-chan struct{}) error {
   578  		defer sub.Unsubscribe()
   579  		for {
   580  			select {
   581  			case log := <-logs:
   582  				// New log arrived, parse the event and forward to the user
   583  				event := new(BridgeFeeERC20FeeChanged)
   584  				if err := _BridgeFee.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
   585  					return err
   586  				}
   587  				event.Raw = log
   588  
   589  				select {
   590  				case sink <- event:
   591  				case err := <-sub.Err():
   592  					return err
   593  				case <-quit:
   594  					return nil
   595  				}
   596  			case err := <-sub.Err():
   597  				return err
   598  			case <-quit:
   599  				return nil
   600  			}
   601  		}
   602  	}), nil
   603  }
   604  
   605  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
   606  //
   607  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
   608  func (_BridgeFee *BridgeFeeFilterer) ParseERC20FeeChanged(log types.Log) (*BridgeFeeERC20FeeChanged, error) {
   609  	event := new(BridgeFeeERC20FeeChanged)
   610  	if err := _BridgeFee.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
   611  		return nil, err
   612  	}
   613  	return event, nil
   614  }
   615  
   616  // BridgeFeeFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeFee contract.
   617  type BridgeFeeFeeReceiverChangedIterator struct {
   618  	Event *BridgeFeeFeeReceiverChanged // Event containing the contract specifics and raw log
   619  
   620  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   621  	event    string              // Event name to use for unpacking event data
   622  
   623  	logs chan types.Log      // Log channel receiving the found contract events
   624  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   625  	done bool                // Whether the subscription completed delivering logs
   626  	fail error               // Occurred error to stop iteration
   627  }
   628  
   629  // Next advances the iterator to the subsequent event, returning whether there
   630  // are any more events found. In case of a retrieval or parsing error, false is
   631  // returned and Error() can be queried for the exact failure.
   632  func (it *BridgeFeeFeeReceiverChangedIterator) Next() bool {
   633  	// If the iterator failed, stop iterating
   634  	if it.fail != nil {
   635  		return false
   636  	}
   637  	// If the iterator completed, deliver directly whatever's available
   638  	if it.done {
   639  		select {
   640  		case log := <-it.logs:
   641  			it.Event = new(BridgeFeeFeeReceiverChanged)
   642  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   643  				it.fail = err
   644  				return false
   645  			}
   646  			it.Event.Raw = log
   647  			return true
   648  
   649  		default:
   650  			return false
   651  		}
   652  	}
   653  	// Iterator still in progress, wait for either a data or an error event
   654  	select {
   655  	case log := <-it.logs:
   656  		it.Event = new(BridgeFeeFeeReceiverChanged)
   657  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   658  			it.fail = err
   659  			return false
   660  		}
   661  		it.Event.Raw = log
   662  		return true
   663  
   664  	case err := <-it.sub.Err():
   665  		it.done = true
   666  		it.fail = err
   667  		return it.Next()
   668  	}
   669  }
   670  
   671  // Error returns any retrieval or parsing error occurred during filtering.
   672  func (it *BridgeFeeFeeReceiverChangedIterator) Error() error {
   673  	return it.fail
   674  }
   675  
   676  // Close terminates the iteration process, releasing any pending underlying
   677  // resources.
   678  func (it *BridgeFeeFeeReceiverChangedIterator) Close() error {
   679  	it.sub.Unsubscribe()
   680  	return nil
   681  }
   682  
   683  // BridgeFeeFeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeFee contract.
   684  type BridgeFeeFeeReceiverChanged struct {
   685  	FeeReceiver common.Address
   686  	Raw         types.Log // Blockchain specific contextual infos
   687  }
   688  
   689  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
   690  //
   691  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
   692  func (_BridgeFee *BridgeFeeFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeFeeFeeReceiverChangedIterator, error) {
   693  
   694  	var feeReceiverRule []interface{}
   695  	for _, feeReceiverItem := range feeReceiver {
   696  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
   697  	}
   698  
   699  	logs, sub, err := _BridgeFee.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
   700  	if err != nil {
   701  		return nil, err
   702  	}
   703  	return &BridgeFeeFeeReceiverChangedIterator{contract: _BridgeFee.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
   704  }
   705  
   706  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
   707  //
   708  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
   709  func (_BridgeFee *BridgeFeeFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
   710  
   711  	var feeReceiverRule []interface{}
   712  	for _, feeReceiverItem := range feeReceiver {
   713  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
   714  	}
   715  
   716  	logs, sub, err := _BridgeFee.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
   717  	if err != nil {
   718  		return nil, err
   719  	}
   720  	return event.NewSubscription(func(quit <-chan struct{}) error {
   721  		defer sub.Unsubscribe()
   722  		for {
   723  			select {
   724  			case log := <-logs:
   725  				// New log arrived, parse the event and forward to the user
   726  				event := new(BridgeFeeFeeReceiverChanged)
   727  				if err := _BridgeFee.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
   728  					return err
   729  				}
   730  				event.Raw = log
   731  
   732  				select {
   733  				case sink <- event:
   734  				case err := <-sub.Err():
   735  					return err
   736  				case <-quit:
   737  					return nil
   738  				}
   739  			case err := <-sub.Err():
   740  				return err
   741  			case <-quit:
   742  				return nil
   743  			}
   744  		}
   745  	}), nil
   746  }
   747  
   748  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
   749  //
   750  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
   751  func (_BridgeFee *BridgeFeeFilterer) ParseFeeReceiverChanged(log types.Log) (*BridgeFeeFeeReceiverChanged, error) {
   752  	event := new(BridgeFeeFeeReceiverChanged)
   753  	if err := _BridgeFee.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
   754  		return nil, err
   755  	}
   756  	return event, nil
   757  }
   758  
   759  // BridgeFeeKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeFee contract.
   760  type BridgeFeeKLAYFeeChangedIterator struct {
   761  	Event *BridgeFeeKLAYFeeChanged // Event containing the contract specifics and raw log
   762  
   763  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   764  	event    string              // Event name to use for unpacking event data
   765  
   766  	logs chan types.Log      // Log channel receiving the found contract events
   767  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   768  	done bool                // Whether the subscription completed delivering logs
   769  	fail error               // Occurred error to stop iteration
   770  }
   771  
   772  // Next advances the iterator to the subsequent event, returning whether there
   773  // are any more events found. In case of a retrieval or parsing error, false is
   774  // returned and Error() can be queried for the exact failure.
   775  func (it *BridgeFeeKLAYFeeChangedIterator) Next() bool {
   776  	// If the iterator failed, stop iterating
   777  	if it.fail != nil {
   778  		return false
   779  	}
   780  	// If the iterator completed, deliver directly whatever's available
   781  	if it.done {
   782  		select {
   783  		case log := <-it.logs:
   784  			it.Event = new(BridgeFeeKLAYFeeChanged)
   785  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   786  				it.fail = err
   787  				return false
   788  			}
   789  			it.Event.Raw = log
   790  			return true
   791  
   792  		default:
   793  			return false
   794  		}
   795  	}
   796  	// Iterator still in progress, wait for either a data or an error event
   797  	select {
   798  	case log := <-it.logs:
   799  		it.Event = new(BridgeFeeKLAYFeeChanged)
   800  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   801  			it.fail = err
   802  			return false
   803  		}
   804  		it.Event.Raw = log
   805  		return true
   806  
   807  	case err := <-it.sub.Err():
   808  		it.done = true
   809  		it.fail = err
   810  		return it.Next()
   811  	}
   812  }
   813  
   814  // Error returns any retrieval or parsing error occurred during filtering.
   815  func (it *BridgeFeeKLAYFeeChangedIterator) Error() error {
   816  	return it.fail
   817  }
   818  
   819  // Close terminates the iteration process, releasing any pending underlying
   820  // resources.
   821  func (it *BridgeFeeKLAYFeeChangedIterator) Close() error {
   822  	it.sub.Unsubscribe()
   823  	return nil
   824  }
   825  
   826  // BridgeFeeKLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeFee contract.
   827  type BridgeFeeKLAYFeeChanged struct {
   828  	Fee *big.Int
   829  	Raw types.Log // Blockchain specific contextual infos
   830  }
   831  
   832  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
   833  //
   834  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
   835  func (_BridgeFee *BridgeFeeFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeFeeKLAYFeeChangedIterator, error) {
   836  
   837  	var feeRule []interface{}
   838  	for _, feeItem := range fee {
   839  		feeRule = append(feeRule, feeItem)
   840  	}
   841  
   842  	logs, sub, err := _BridgeFee.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
   843  	if err != nil {
   844  		return nil, err
   845  	}
   846  	return &BridgeFeeKLAYFeeChangedIterator{contract: _BridgeFee.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
   847  }
   848  
   849  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
   850  //
   851  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
   852  func (_BridgeFee *BridgeFeeFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
   853  
   854  	var feeRule []interface{}
   855  	for _, feeItem := range fee {
   856  		feeRule = append(feeRule, feeItem)
   857  	}
   858  
   859  	logs, sub, err := _BridgeFee.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
   860  	if err != nil {
   861  		return nil, err
   862  	}
   863  	return event.NewSubscription(func(quit <-chan struct{}) error {
   864  		defer sub.Unsubscribe()
   865  		for {
   866  			select {
   867  			case log := <-logs:
   868  				// New log arrived, parse the event and forward to the user
   869  				event := new(BridgeFeeKLAYFeeChanged)
   870  				if err := _BridgeFee.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
   871  					return err
   872  				}
   873  				event.Raw = log
   874  
   875  				select {
   876  				case sink <- event:
   877  				case err := <-sub.Err():
   878  					return err
   879  				case <-quit:
   880  					return nil
   881  				}
   882  			case err := <-sub.Err():
   883  				return err
   884  			case <-quit:
   885  				return nil
   886  			}
   887  		}
   888  	}), nil
   889  }
   890  
   891  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
   892  //
   893  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
   894  func (_BridgeFee *BridgeFeeFilterer) ParseKLAYFeeChanged(log types.Log) (*BridgeFeeKLAYFeeChanged, error) {
   895  	event := new(BridgeFeeKLAYFeeChanged)
   896  	if err := _BridgeFee.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
   897  		return nil, err
   898  	}
   899  	return event, nil
   900  }
   901  
   902  // BridgeHandledRequestsMetaData contains all meta data concerning the BridgeHandledRequests contract.
   903  var BridgeHandledRequestsMetaData = &bind.MetaData{
   904  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
   905  	Sigs: map[string]string{
   906  		"8a75eee2": "handledRequestTx(bytes32)",
   907  	},
   908  	Bin: "0x6080604052348015600f57600080fd5b50609c8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638a75eee214602d575b600080fd5b604760048036036020811015604157600080fd5b5035605b565b604080519115158252519081900360200190f35b60006020819052908152604090205460ff168156fea165627a7a723058203e22c718bbe5d55248c5fec027875ec0af893fe14a07c4756091366474f562c80029",
   909  }
   910  
   911  // BridgeHandledRequestsABI is the input ABI used to generate the binding from.
   912  // Deprecated: Use BridgeHandledRequestsMetaData.ABI instead.
   913  var BridgeHandledRequestsABI = BridgeHandledRequestsMetaData.ABI
   914  
   915  // BridgeHandledRequestsBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   916  const BridgeHandledRequestsBinRuntime = `6080604052348015600f57600080fd5b506004361060285760003560e01c80638a75eee214602d575b600080fd5b604760048036036020811015604157600080fd5b5035605b565b604080519115158252519081900360200190f35b60006020819052908152604090205460ff168156fea165627a7a723058203e22c718bbe5d55248c5fec027875ec0af893fe14a07c4756091366474f562c80029`
   917  
   918  // BridgeHandledRequestsFuncSigs maps the 4-byte function signature to its string representation.
   919  // Deprecated: Use BridgeHandledRequestsMetaData.Sigs instead.
   920  var BridgeHandledRequestsFuncSigs = BridgeHandledRequestsMetaData.Sigs
   921  
   922  // BridgeHandledRequestsBin is the compiled bytecode used for deploying new contracts.
   923  // Deprecated: Use BridgeHandledRequestsMetaData.Bin instead.
   924  var BridgeHandledRequestsBin = BridgeHandledRequestsMetaData.Bin
   925  
   926  // DeployBridgeHandledRequests deploys a new Klaytn contract, binding an instance of BridgeHandledRequests to it.
   927  func DeployBridgeHandledRequests(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BridgeHandledRequests, error) {
   928  	parsed, err := BridgeHandledRequestsMetaData.GetAbi()
   929  	if err != nil {
   930  		return common.Address{}, nil, nil, err
   931  	}
   932  	if parsed == nil {
   933  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   934  	}
   935  
   936  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BridgeHandledRequestsBin), backend)
   937  	if err != nil {
   938  		return common.Address{}, nil, nil, err
   939  	}
   940  	return address, tx, &BridgeHandledRequests{BridgeHandledRequestsCaller: BridgeHandledRequestsCaller{contract: contract}, BridgeHandledRequestsTransactor: BridgeHandledRequestsTransactor{contract: contract}, BridgeHandledRequestsFilterer: BridgeHandledRequestsFilterer{contract: contract}}, nil
   941  }
   942  
   943  // BridgeHandledRequests is an auto generated Go binding around a Klaytn contract.
   944  type BridgeHandledRequests struct {
   945  	BridgeHandledRequestsCaller     // Read-only binding to the contract
   946  	BridgeHandledRequestsTransactor // Write-only binding to the contract
   947  	BridgeHandledRequestsFilterer   // Log filterer for contract events
   948  }
   949  
   950  // BridgeHandledRequestsCaller is an auto generated read-only Go binding around a Klaytn contract.
   951  type BridgeHandledRequestsCaller struct {
   952  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   953  }
   954  
   955  // BridgeHandledRequestsTransactor is an auto generated write-only Go binding around a Klaytn contract.
   956  type BridgeHandledRequestsTransactor struct {
   957  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   958  }
   959  
   960  // BridgeHandledRequestsFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   961  type BridgeHandledRequestsFilterer struct {
   962  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   963  }
   964  
   965  // BridgeHandledRequestsSession is an auto generated Go binding around a Klaytn contract,
   966  // with pre-set call and transact options.
   967  type BridgeHandledRequestsSession struct {
   968  	Contract     *BridgeHandledRequests // Generic contract binding to set the session for
   969  	CallOpts     bind.CallOpts          // Call options to use throughout this session
   970  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
   971  }
   972  
   973  // BridgeHandledRequestsCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   974  // with pre-set call options.
   975  type BridgeHandledRequestsCallerSession struct {
   976  	Contract *BridgeHandledRequestsCaller // Generic contract caller binding to set the session for
   977  	CallOpts bind.CallOpts                // Call options to use throughout this session
   978  }
   979  
   980  // BridgeHandledRequestsTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   981  // with pre-set transact options.
   982  type BridgeHandledRequestsTransactorSession struct {
   983  	Contract     *BridgeHandledRequestsTransactor // Generic contract transactor binding to set the session for
   984  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
   985  }
   986  
   987  // BridgeHandledRequestsRaw is an auto generated low-level Go binding around a Klaytn contract.
   988  type BridgeHandledRequestsRaw struct {
   989  	Contract *BridgeHandledRequests // Generic contract binding to access the raw methods on
   990  }
   991  
   992  // BridgeHandledRequestsCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   993  type BridgeHandledRequestsCallerRaw struct {
   994  	Contract *BridgeHandledRequestsCaller // Generic read-only contract binding to access the raw methods on
   995  }
   996  
   997  // BridgeHandledRequestsTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   998  type BridgeHandledRequestsTransactorRaw struct {
   999  	Contract *BridgeHandledRequestsTransactor // Generic write-only contract binding to access the raw methods on
  1000  }
  1001  
  1002  // NewBridgeHandledRequests creates a new instance of BridgeHandledRequests, bound to a specific deployed contract.
  1003  func NewBridgeHandledRequests(address common.Address, backend bind.ContractBackend) (*BridgeHandledRequests, error) {
  1004  	contract, err := bindBridgeHandledRequests(address, backend, backend, backend)
  1005  	if err != nil {
  1006  		return nil, err
  1007  	}
  1008  	return &BridgeHandledRequests{BridgeHandledRequestsCaller: BridgeHandledRequestsCaller{contract: contract}, BridgeHandledRequestsTransactor: BridgeHandledRequestsTransactor{contract: contract}, BridgeHandledRequestsFilterer: BridgeHandledRequestsFilterer{contract: contract}}, nil
  1009  }
  1010  
  1011  // NewBridgeHandledRequestsCaller creates a new read-only instance of BridgeHandledRequests, bound to a specific deployed contract.
  1012  func NewBridgeHandledRequestsCaller(address common.Address, caller bind.ContractCaller) (*BridgeHandledRequestsCaller, error) {
  1013  	contract, err := bindBridgeHandledRequests(address, caller, nil, nil)
  1014  	if err != nil {
  1015  		return nil, err
  1016  	}
  1017  	return &BridgeHandledRequestsCaller{contract: contract}, nil
  1018  }
  1019  
  1020  // NewBridgeHandledRequestsTransactor creates a new write-only instance of BridgeHandledRequests, bound to a specific deployed contract.
  1021  func NewBridgeHandledRequestsTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeHandledRequestsTransactor, error) {
  1022  	contract, err := bindBridgeHandledRequests(address, nil, transactor, nil)
  1023  	if err != nil {
  1024  		return nil, err
  1025  	}
  1026  	return &BridgeHandledRequestsTransactor{contract: contract}, nil
  1027  }
  1028  
  1029  // NewBridgeHandledRequestsFilterer creates a new log filterer instance of BridgeHandledRequests, bound to a specific deployed contract.
  1030  func NewBridgeHandledRequestsFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeHandledRequestsFilterer, error) {
  1031  	contract, err := bindBridgeHandledRequests(address, nil, nil, filterer)
  1032  	if err != nil {
  1033  		return nil, err
  1034  	}
  1035  	return &BridgeHandledRequestsFilterer{contract: contract}, nil
  1036  }
  1037  
  1038  // bindBridgeHandledRequests binds a generic wrapper to an already deployed contract.
  1039  func bindBridgeHandledRequests(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1040  	parsed, err := BridgeHandledRequestsMetaData.GetAbi()
  1041  	if err != nil {
  1042  		return nil, err
  1043  	}
  1044  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  1045  }
  1046  
  1047  // Call invokes the (constant) contract method with params as input values and
  1048  // sets the output to result. The result type might be a single field for simple
  1049  // returns, a slice of interfaces for anonymous returns and a struct for named
  1050  // returns.
  1051  func (_BridgeHandledRequests *BridgeHandledRequestsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1052  	return _BridgeHandledRequests.Contract.BridgeHandledRequestsCaller.contract.Call(opts, result, method, params...)
  1053  }
  1054  
  1055  // Transfer initiates a plain transaction to move funds to the contract, calling
  1056  // its default method if one is available.
  1057  func (_BridgeHandledRequests *BridgeHandledRequestsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1058  	return _BridgeHandledRequests.Contract.BridgeHandledRequestsTransactor.contract.Transfer(opts)
  1059  }
  1060  
  1061  // Transact invokes the (paid) contract method with params as input values.
  1062  func (_BridgeHandledRequests *BridgeHandledRequestsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1063  	return _BridgeHandledRequests.Contract.BridgeHandledRequestsTransactor.contract.Transact(opts, method, params...)
  1064  }
  1065  
  1066  // Call invokes the (constant) contract method with params as input values and
  1067  // sets the output to result. The result type might be a single field for simple
  1068  // returns, a slice of interfaces for anonymous returns and a struct for named
  1069  // returns.
  1070  func (_BridgeHandledRequests *BridgeHandledRequestsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1071  	return _BridgeHandledRequests.Contract.contract.Call(opts, result, method, params...)
  1072  }
  1073  
  1074  // Transfer initiates a plain transaction to move funds to the contract, calling
  1075  // its default method if one is available.
  1076  func (_BridgeHandledRequests *BridgeHandledRequestsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1077  	return _BridgeHandledRequests.Contract.contract.Transfer(opts)
  1078  }
  1079  
  1080  // Transact invokes the (paid) contract method with params as input values.
  1081  func (_BridgeHandledRequests *BridgeHandledRequestsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1082  	return _BridgeHandledRequests.Contract.contract.Transact(opts, method, params...)
  1083  }
  1084  
  1085  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  1086  //
  1087  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  1088  func (_BridgeHandledRequests *BridgeHandledRequestsCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  1089  	var out []interface{}
  1090  	err := _BridgeHandledRequests.contract.Call(opts, &out, "handledRequestTx", arg0)
  1091  
  1092  	if err != nil {
  1093  		return *new(bool), err
  1094  	}
  1095  
  1096  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1097  
  1098  	return out0, err
  1099  
  1100  }
  1101  
  1102  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  1103  //
  1104  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  1105  func (_BridgeHandledRequests *BridgeHandledRequestsSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  1106  	return _BridgeHandledRequests.Contract.HandledRequestTx(&_BridgeHandledRequests.CallOpts, arg0)
  1107  }
  1108  
  1109  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  1110  //
  1111  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  1112  func (_BridgeHandledRequests *BridgeHandledRequestsCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  1113  	return _BridgeHandledRequests.Contract.HandledRequestTx(&_BridgeHandledRequests.CallOpts, arg0)
  1114  }
  1115  
  1116  // BridgeOperatorMetaData contains all meta data concerning the BridgeOperator contract.
  1117  var BridgeOperatorMetaData = &bind.MetaData{
  1118  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
  1119  	Sigs: map[string]string{
  1120  		"3a3099d1": "MAX_OPERATOR()",
  1121  		"9832c1d7": "closedValueTransferVotes(uint64)",
  1122  		"ac6fff0b": "configurationNonce()",
  1123  		"d8cf98ca": "deregisterOperator(address)",
  1124  		"b2c01030": "getOperatorList()",
  1125  		"8f32d59b": "isOwner()",
  1126  		"cb38f407": "operatorList(uint256)",
  1127  		"5526f76b": "operatorThresholds(uint8)",
  1128  		"13e7c9d8": "operators(address)",
  1129  		"8da5cb5b": "owner()",
  1130  		"3682a450": "registerOperator(address)",
  1131  		"715018a6": "renounceOwnership()",
  1132  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  1133  		"f2fde38b": "transferOwnership(address)",
  1134  	},
  1135  }
  1136  
  1137  // BridgeOperatorABI is the input ABI used to generate the binding from.
  1138  // Deprecated: Use BridgeOperatorMetaData.ABI instead.
  1139  var BridgeOperatorABI = BridgeOperatorMetaData.ABI
  1140  
  1141  // BridgeOperatorBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  1142  const BridgeOperatorBinRuntime = ``
  1143  
  1144  // BridgeOperatorFuncSigs maps the 4-byte function signature to its string representation.
  1145  // Deprecated: Use BridgeOperatorMetaData.Sigs instead.
  1146  var BridgeOperatorFuncSigs = BridgeOperatorMetaData.Sigs
  1147  
  1148  // BridgeOperator is an auto generated Go binding around a Klaytn contract.
  1149  type BridgeOperator struct {
  1150  	BridgeOperatorCaller     // Read-only binding to the contract
  1151  	BridgeOperatorTransactor // Write-only binding to the contract
  1152  	BridgeOperatorFilterer   // Log filterer for contract events
  1153  }
  1154  
  1155  // BridgeOperatorCaller is an auto generated read-only Go binding around a Klaytn contract.
  1156  type BridgeOperatorCaller struct {
  1157  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1158  }
  1159  
  1160  // BridgeOperatorTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1161  type BridgeOperatorTransactor struct {
  1162  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1163  }
  1164  
  1165  // BridgeOperatorFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1166  type BridgeOperatorFilterer struct {
  1167  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1168  }
  1169  
  1170  // BridgeOperatorSession is an auto generated Go binding around a Klaytn contract,
  1171  // with pre-set call and transact options.
  1172  type BridgeOperatorSession struct {
  1173  	Contract     *BridgeOperator   // Generic contract binding to set the session for
  1174  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1175  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1176  }
  1177  
  1178  // BridgeOperatorCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1179  // with pre-set call options.
  1180  type BridgeOperatorCallerSession struct {
  1181  	Contract *BridgeOperatorCaller // Generic contract caller binding to set the session for
  1182  	CallOpts bind.CallOpts         // Call options to use throughout this session
  1183  }
  1184  
  1185  // BridgeOperatorTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1186  // with pre-set transact options.
  1187  type BridgeOperatorTransactorSession struct {
  1188  	Contract     *BridgeOperatorTransactor // Generic contract transactor binding to set the session for
  1189  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  1190  }
  1191  
  1192  // BridgeOperatorRaw is an auto generated low-level Go binding around a Klaytn contract.
  1193  type BridgeOperatorRaw struct {
  1194  	Contract *BridgeOperator // Generic contract binding to access the raw methods on
  1195  }
  1196  
  1197  // BridgeOperatorCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1198  type BridgeOperatorCallerRaw struct {
  1199  	Contract *BridgeOperatorCaller // Generic read-only contract binding to access the raw methods on
  1200  }
  1201  
  1202  // BridgeOperatorTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1203  type BridgeOperatorTransactorRaw struct {
  1204  	Contract *BridgeOperatorTransactor // Generic write-only contract binding to access the raw methods on
  1205  }
  1206  
  1207  // NewBridgeOperator creates a new instance of BridgeOperator, bound to a specific deployed contract.
  1208  func NewBridgeOperator(address common.Address, backend bind.ContractBackend) (*BridgeOperator, error) {
  1209  	contract, err := bindBridgeOperator(address, backend, backend, backend)
  1210  	if err != nil {
  1211  		return nil, err
  1212  	}
  1213  	return &BridgeOperator{BridgeOperatorCaller: BridgeOperatorCaller{contract: contract}, BridgeOperatorTransactor: BridgeOperatorTransactor{contract: contract}, BridgeOperatorFilterer: BridgeOperatorFilterer{contract: contract}}, nil
  1214  }
  1215  
  1216  // NewBridgeOperatorCaller creates a new read-only instance of BridgeOperator, bound to a specific deployed contract.
  1217  func NewBridgeOperatorCaller(address common.Address, caller bind.ContractCaller) (*BridgeOperatorCaller, error) {
  1218  	contract, err := bindBridgeOperator(address, caller, nil, nil)
  1219  	if err != nil {
  1220  		return nil, err
  1221  	}
  1222  	return &BridgeOperatorCaller{contract: contract}, nil
  1223  }
  1224  
  1225  // NewBridgeOperatorTransactor creates a new write-only instance of BridgeOperator, bound to a specific deployed contract.
  1226  func NewBridgeOperatorTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeOperatorTransactor, error) {
  1227  	contract, err := bindBridgeOperator(address, nil, transactor, nil)
  1228  	if err != nil {
  1229  		return nil, err
  1230  	}
  1231  	return &BridgeOperatorTransactor{contract: contract}, nil
  1232  }
  1233  
  1234  // NewBridgeOperatorFilterer creates a new log filterer instance of BridgeOperator, bound to a specific deployed contract.
  1235  func NewBridgeOperatorFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeOperatorFilterer, error) {
  1236  	contract, err := bindBridgeOperator(address, nil, nil, filterer)
  1237  	if err != nil {
  1238  		return nil, err
  1239  	}
  1240  	return &BridgeOperatorFilterer{contract: contract}, nil
  1241  }
  1242  
  1243  // bindBridgeOperator binds a generic wrapper to an already deployed contract.
  1244  func bindBridgeOperator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1245  	parsed, err := BridgeOperatorMetaData.GetAbi()
  1246  	if err != nil {
  1247  		return nil, err
  1248  	}
  1249  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  1250  }
  1251  
  1252  // Call invokes the (constant) contract method with params as input values and
  1253  // sets the output to result. The result type might be a single field for simple
  1254  // returns, a slice of interfaces for anonymous returns and a struct for named
  1255  // returns.
  1256  func (_BridgeOperator *BridgeOperatorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1257  	return _BridgeOperator.Contract.BridgeOperatorCaller.contract.Call(opts, result, method, params...)
  1258  }
  1259  
  1260  // Transfer initiates a plain transaction to move funds to the contract, calling
  1261  // its default method if one is available.
  1262  func (_BridgeOperator *BridgeOperatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1263  	return _BridgeOperator.Contract.BridgeOperatorTransactor.contract.Transfer(opts)
  1264  }
  1265  
  1266  // Transact invokes the (paid) contract method with params as input values.
  1267  func (_BridgeOperator *BridgeOperatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1268  	return _BridgeOperator.Contract.BridgeOperatorTransactor.contract.Transact(opts, method, params...)
  1269  }
  1270  
  1271  // Call invokes the (constant) contract method with params as input values and
  1272  // sets the output to result. The result type might be a single field for simple
  1273  // returns, a slice of interfaces for anonymous returns and a struct for named
  1274  // returns.
  1275  func (_BridgeOperator *BridgeOperatorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1276  	return _BridgeOperator.Contract.contract.Call(opts, result, method, params...)
  1277  }
  1278  
  1279  // Transfer initiates a plain transaction to move funds to the contract, calling
  1280  // its default method if one is available.
  1281  func (_BridgeOperator *BridgeOperatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1282  	return _BridgeOperator.Contract.contract.Transfer(opts)
  1283  }
  1284  
  1285  // Transact invokes the (paid) contract method with params as input values.
  1286  func (_BridgeOperator *BridgeOperatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1287  	return _BridgeOperator.Contract.contract.Transact(opts, method, params...)
  1288  }
  1289  
  1290  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  1291  //
  1292  // Solidity: function MAX_OPERATOR() view returns(uint64)
  1293  func (_BridgeOperator *BridgeOperatorCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  1294  	var out []interface{}
  1295  	err := _BridgeOperator.contract.Call(opts, &out, "MAX_OPERATOR")
  1296  
  1297  	if err != nil {
  1298  		return *new(uint64), err
  1299  	}
  1300  
  1301  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  1302  
  1303  	return out0, err
  1304  
  1305  }
  1306  
  1307  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  1308  //
  1309  // Solidity: function MAX_OPERATOR() view returns(uint64)
  1310  func (_BridgeOperator *BridgeOperatorSession) MAXOPERATOR() (uint64, error) {
  1311  	return _BridgeOperator.Contract.MAXOPERATOR(&_BridgeOperator.CallOpts)
  1312  }
  1313  
  1314  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  1315  //
  1316  // Solidity: function MAX_OPERATOR() view returns(uint64)
  1317  func (_BridgeOperator *BridgeOperatorCallerSession) MAXOPERATOR() (uint64, error) {
  1318  	return _BridgeOperator.Contract.MAXOPERATOR(&_BridgeOperator.CallOpts)
  1319  }
  1320  
  1321  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  1322  //
  1323  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  1324  func (_BridgeOperator *BridgeOperatorCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  1325  	var out []interface{}
  1326  	err := _BridgeOperator.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  1327  
  1328  	if err != nil {
  1329  		return *new(bool), err
  1330  	}
  1331  
  1332  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1333  
  1334  	return out0, err
  1335  
  1336  }
  1337  
  1338  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  1339  //
  1340  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  1341  func (_BridgeOperator *BridgeOperatorSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  1342  	return _BridgeOperator.Contract.ClosedValueTransferVotes(&_BridgeOperator.CallOpts, arg0)
  1343  }
  1344  
  1345  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  1346  //
  1347  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  1348  func (_BridgeOperator *BridgeOperatorCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  1349  	return _BridgeOperator.Contract.ClosedValueTransferVotes(&_BridgeOperator.CallOpts, arg0)
  1350  }
  1351  
  1352  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  1353  //
  1354  // Solidity: function configurationNonce() view returns(uint64)
  1355  func (_BridgeOperator *BridgeOperatorCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  1356  	var out []interface{}
  1357  	err := _BridgeOperator.contract.Call(opts, &out, "configurationNonce")
  1358  
  1359  	if err != nil {
  1360  		return *new(uint64), err
  1361  	}
  1362  
  1363  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  1364  
  1365  	return out0, err
  1366  
  1367  }
  1368  
  1369  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  1370  //
  1371  // Solidity: function configurationNonce() view returns(uint64)
  1372  func (_BridgeOperator *BridgeOperatorSession) ConfigurationNonce() (uint64, error) {
  1373  	return _BridgeOperator.Contract.ConfigurationNonce(&_BridgeOperator.CallOpts)
  1374  }
  1375  
  1376  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  1377  //
  1378  // Solidity: function configurationNonce() view returns(uint64)
  1379  func (_BridgeOperator *BridgeOperatorCallerSession) ConfigurationNonce() (uint64, error) {
  1380  	return _BridgeOperator.Contract.ConfigurationNonce(&_BridgeOperator.CallOpts)
  1381  }
  1382  
  1383  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  1384  //
  1385  // Solidity: function getOperatorList() view returns(address[])
  1386  func (_BridgeOperator *BridgeOperatorCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  1387  	var out []interface{}
  1388  	err := _BridgeOperator.contract.Call(opts, &out, "getOperatorList")
  1389  
  1390  	if err != nil {
  1391  		return *new([]common.Address), err
  1392  	}
  1393  
  1394  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  1395  
  1396  	return out0, err
  1397  
  1398  }
  1399  
  1400  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  1401  //
  1402  // Solidity: function getOperatorList() view returns(address[])
  1403  func (_BridgeOperator *BridgeOperatorSession) GetOperatorList() ([]common.Address, error) {
  1404  	return _BridgeOperator.Contract.GetOperatorList(&_BridgeOperator.CallOpts)
  1405  }
  1406  
  1407  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  1408  //
  1409  // Solidity: function getOperatorList() view returns(address[])
  1410  func (_BridgeOperator *BridgeOperatorCallerSession) GetOperatorList() ([]common.Address, error) {
  1411  	return _BridgeOperator.Contract.GetOperatorList(&_BridgeOperator.CallOpts)
  1412  }
  1413  
  1414  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  1415  //
  1416  // Solidity: function isOwner() view returns(bool)
  1417  func (_BridgeOperator *BridgeOperatorCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  1418  	var out []interface{}
  1419  	err := _BridgeOperator.contract.Call(opts, &out, "isOwner")
  1420  
  1421  	if err != nil {
  1422  		return *new(bool), err
  1423  	}
  1424  
  1425  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1426  
  1427  	return out0, err
  1428  
  1429  }
  1430  
  1431  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  1432  //
  1433  // Solidity: function isOwner() view returns(bool)
  1434  func (_BridgeOperator *BridgeOperatorSession) IsOwner() (bool, error) {
  1435  	return _BridgeOperator.Contract.IsOwner(&_BridgeOperator.CallOpts)
  1436  }
  1437  
  1438  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  1439  //
  1440  // Solidity: function isOwner() view returns(bool)
  1441  func (_BridgeOperator *BridgeOperatorCallerSession) IsOwner() (bool, error) {
  1442  	return _BridgeOperator.Contract.IsOwner(&_BridgeOperator.CallOpts)
  1443  }
  1444  
  1445  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  1446  //
  1447  // Solidity: function operatorList(uint256 ) view returns(address)
  1448  func (_BridgeOperator *BridgeOperatorCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  1449  	var out []interface{}
  1450  	err := _BridgeOperator.contract.Call(opts, &out, "operatorList", arg0)
  1451  
  1452  	if err != nil {
  1453  		return *new(common.Address), err
  1454  	}
  1455  
  1456  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1457  
  1458  	return out0, err
  1459  
  1460  }
  1461  
  1462  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  1463  //
  1464  // Solidity: function operatorList(uint256 ) view returns(address)
  1465  func (_BridgeOperator *BridgeOperatorSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  1466  	return _BridgeOperator.Contract.OperatorList(&_BridgeOperator.CallOpts, arg0)
  1467  }
  1468  
  1469  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  1470  //
  1471  // Solidity: function operatorList(uint256 ) view returns(address)
  1472  func (_BridgeOperator *BridgeOperatorCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  1473  	return _BridgeOperator.Contract.OperatorList(&_BridgeOperator.CallOpts, arg0)
  1474  }
  1475  
  1476  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  1477  //
  1478  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  1479  func (_BridgeOperator *BridgeOperatorCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  1480  	var out []interface{}
  1481  	err := _BridgeOperator.contract.Call(opts, &out, "operatorThresholds", arg0)
  1482  
  1483  	if err != nil {
  1484  		return *new(uint8), err
  1485  	}
  1486  
  1487  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  1488  
  1489  	return out0, err
  1490  
  1491  }
  1492  
  1493  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  1494  //
  1495  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  1496  func (_BridgeOperator *BridgeOperatorSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  1497  	return _BridgeOperator.Contract.OperatorThresholds(&_BridgeOperator.CallOpts, arg0)
  1498  }
  1499  
  1500  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  1501  //
  1502  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  1503  func (_BridgeOperator *BridgeOperatorCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  1504  	return _BridgeOperator.Contract.OperatorThresholds(&_BridgeOperator.CallOpts, arg0)
  1505  }
  1506  
  1507  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  1508  //
  1509  // Solidity: function operators(address ) view returns(bool)
  1510  func (_BridgeOperator *BridgeOperatorCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  1511  	var out []interface{}
  1512  	err := _BridgeOperator.contract.Call(opts, &out, "operators", arg0)
  1513  
  1514  	if err != nil {
  1515  		return *new(bool), err
  1516  	}
  1517  
  1518  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1519  
  1520  	return out0, err
  1521  
  1522  }
  1523  
  1524  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  1525  //
  1526  // Solidity: function operators(address ) view returns(bool)
  1527  func (_BridgeOperator *BridgeOperatorSession) Operators(arg0 common.Address) (bool, error) {
  1528  	return _BridgeOperator.Contract.Operators(&_BridgeOperator.CallOpts, arg0)
  1529  }
  1530  
  1531  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  1532  //
  1533  // Solidity: function operators(address ) view returns(bool)
  1534  func (_BridgeOperator *BridgeOperatorCallerSession) Operators(arg0 common.Address) (bool, error) {
  1535  	return _BridgeOperator.Contract.Operators(&_BridgeOperator.CallOpts, arg0)
  1536  }
  1537  
  1538  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1539  //
  1540  // Solidity: function owner() view returns(address)
  1541  func (_BridgeOperator *BridgeOperatorCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  1542  	var out []interface{}
  1543  	err := _BridgeOperator.contract.Call(opts, &out, "owner")
  1544  
  1545  	if err != nil {
  1546  		return *new(common.Address), err
  1547  	}
  1548  
  1549  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1550  
  1551  	return out0, err
  1552  
  1553  }
  1554  
  1555  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1556  //
  1557  // Solidity: function owner() view returns(address)
  1558  func (_BridgeOperator *BridgeOperatorSession) Owner() (common.Address, error) {
  1559  	return _BridgeOperator.Contract.Owner(&_BridgeOperator.CallOpts)
  1560  }
  1561  
  1562  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1563  //
  1564  // Solidity: function owner() view returns(address)
  1565  func (_BridgeOperator *BridgeOperatorCallerSession) Owner() (common.Address, error) {
  1566  	return _BridgeOperator.Contract.Owner(&_BridgeOperator.CallOpts)
  1567  }
  1568  
  1569  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  1570  //
  1571  // Solidity: function deregisterOperator(address _operator) returns()
  1572  func (_BridgeOperator *BridgeOperatorTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  1573  	return _BridgeOperator.contract.Transact(opts, "deregisterOperator", _operator)
  1574  }
  1575  
  1576  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  1577  //
  1578  // Solidity: function deregisterOperator(address _operator) returns()
  1579  func (_BridgeOperator *BridgeOperatorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  1580  	return _BridgeOperator.Contract.DeregisterOperator(&_BridgeOperator.TransactOpts, _operator)
  1581  }
  1582  
  1583  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  1584  //
  1585  // Solidity: function deregisterOperator(address _operator) returns()
  1586  func (_BridgeOperator *BridgeOperatorTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  1587  	return _BridgeOperator.Contract.DeregisterOperator(&_BridgeOperator.TransactOpts, _operator)
  1588  }
  1589  
  1590  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  1591  //
  1592  // Solidity: function registerOperator(address _operator) returns()
  1593  func (_BridgeOperator *BridgeOperatorTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  1594  	return _BridgeOperator.contract.Transact(opts, "registerOperator", _operator)
  1595  }
  1596  
  1597  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  1598  //
  1599  // Solidity: function registerOperator(address _operator) returns()
  1600  func (_BridgeOperator *BridgeOperatorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  1601  	return _BridgeOperator.Contract.RegisterOperator(&_BridgeOperator.TransactOpts, _operator)
  1602  }
  1603  
  1604  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  1605  //
  1606  // Solidity: function registerOperator(address _operator) returns()
  1607  func (_BridgeOperator *BridgeOperatorTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  1608  	return _BridgeOperator.Contract.RegisterOperator(&_BridgeOperator.TransactOpts, _operator)
  1609  }
  1610  
  1611  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1612  //
  1613  // Solidity: function renounceOwnership() returns()
  1614  func (_BridgeOperator *BridgeOperatorTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1615  	return _BridgeOperator.contract.Transact(opts, "renounceOwnership")
  1616  }
  1617  
  1618  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1619  //
  1620  // Solidity: function renounceOwnership() returns()
  1621  func (_BridgeOperator *BridgeOperatorSession) RenounceOwnership() (*types.Transaction, error) {
  1622  	return _BridgeOperator.Contract.RenounceOwnership(&_BridgeOperator.TransactOpts)
  1623  }
  1624  
  1625  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1626  //
  1627  // Solidity: function renounceOwnership() returns()
  1628  func (_BridgeOperator *BridgeOperatorTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1629  	return _BridgeOperator.Contract.RenounceOwnership(&_BridgeOperator.TransactOpts)
  1630  }
  1631  
  1632  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  1633  //
  1634  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  1635  func (_BridgeOperator *BridgeOperatorTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  1636  	return _BridgeOperator.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  1637  }
  1638  
  1639  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  1640  //
  1641  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  1642  func (_BridgeOperator *BridgeOperatorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  1643  	return _BridgeOperator.Contract.SetOperatorThreshold(&_BridgeOperator.TransactOpts, _voteType, _threshold)
  1644  }
  1645  
  1646  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  1647  //
  1648  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  1649  func (_BridgeOperator *BridgeOperatorTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  1650  	return _BridgeOperator.Contract.SetOperatorThreshold(&_BridgeOperator.TransactOpts, _voteType, _threshold)
  1651  }
  1652  
  1653  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1654  //
  1655  // Solidity: function transferOwnership(address newOwner) returns()
  1656  func (_BridgeOperator *BridgeOperatorTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1657  	return _BridgeOperator.contract.Transact(opts, "transferOwnership", newOwner)
  1658  }
  1659  
  1660  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1661  //
  1662  // Solidity: function transferOwnership(address newOwner) returns()
  1663  func (_BridgeOperator *BridgeOperatorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1664  	return _BridgeOperator.Contract.TransferOwnership(&_BridgeOperator.TransactOpts, newOwner)
  1665  }
  1666  
  1667  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1668  //
  1669  // Solidity: function transferOwnership(address newOwner) returns()
  1670  func (_BridgeOperator *BridgeOperatorTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1671  	return _BridgeOperator.Contract.TransferOwnership(&_BridgeOperator.TransactOpts, newOwner)
  1672  }
  1673  
  1674  // BridgeOperatorOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeOperator contract.
  1675  type BridgeOperatorOwnershipTransferredIterator struct {
  1676  	Event *BridgeOperatorOwnershipTransferred // Event containing the contract specifics and raw log
  1677  
  1678  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1679  	event    string              // Event name to use for unpacking event data
  1680  
  1681  	logs chan types.Log      // Log channel receiving the found contract events
  1682  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1683  	done bool                // Whether the subscription completed delivering logs
  1684  	fail error               // Occurred error to stop iteration
  1685  }
  1686  
  1687  // Next advances the iterator to the subsequent event, returning whether there
  1688  // are any more events found. In case of a retrieval or parsing error, false is
  1689  // returned and Error() can be queried for the exact failure.
  1690  func (it *BridgeOperatorOwnershipTransferredIterator) Next() bool {
  1691  	// If the iterator failed, stop iterating
  1692  	if it.fail != nil {
  1693  		return false
  1694  	}
  1695  	// If the iterator completed, deliver directly whatever's available
  1696  	if it.done {
  1697  		select {
  1698  		case log := <-it.logs:
  1699  			it.Event = new(BridgeOperatorOwnershipTransferred)
  1700  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1701  				it.fail = err
  1702  				return false
  1703  			}
  1704  			it.Event.Raw = log
  1705  			return true
  1706  
  1707  		default:
  1708  			return false
  1709  		}
  1710  	}
  1711  	// Iterator still in progress, wait for either a data or an error event
  1712  	select {
  1713  	case log := <-it.logs:
  1714  		it.Event = new(BridgeOperatorOwnershipTransferred)
  1715  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1716  			it.fail = err
  1717  			return false
  1718  		}
  1719  		it.Event.Raw = log
  1720  		return true
  1721  
  1722  	case err := <-it.sub.Err():
  1723  		it.done = true
  1724  		it.fail = err
  1725  		return it.Next()
  1726  	}
  1727  }
  1728  
  1729  // Error returns any retrieval or parsing error occurred during filtering.
  1730  func (it *BridgeOperatorOwnershipTransferredIterator) Error() error {
  1731  	return it.fail
  1732  }
  1733  
  1734  // Close terminates the iteration process, releasing any pending underlying
  1735  // resources.
  1736  func (it *BridgeOperatorOwnershipTransferredIterator) Close() error {
  1737  	it.sub.Unsubscribe()
  1738  	return nil
  1739  }
  1740  
  1741  // BridgeOperatorOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeOperator contract.
  1742  type BridgeOperatorOwnershipTransferred struct {
  1743  	PreviousOwner common.Address
  1744  	NewOwner      common.Address
  1745  	Raw           types.Log // Blockchain specific contextual infos
  1746  }
  1747  
  1748  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1749  //
  1750  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1751  func (_BridgeOperator *BridgeOperatorFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeOperatorOwnershipTransferredIterator, error) {
  1752  
  1753  	var previousOwnerRule []interface{}
  1754  	for _, previousOwnerItem := range previousOwner {
  1755  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1756  	}
  1757  	var newOwnerRule []interface{}
  1758  	for _, newOwnerItem := range newOwner {
  1759  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1760  	}
  1761  
  1762  	logs, sub, err := _BridgeOperator.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1763  	if err != nil {
  1764  		return nil, err
  1765  	}
  1766  	return &BridgeOperatorOwnershipTransferredIterator{contract: _BridgeOperator.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1767  }
  1768  
  1769  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1770  //
  1771  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1772  func (_BridgeOperator *BridgeOperatorFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeOperatorOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1773  
  1774  	var previousOwnerRule []interface{}
  1775  	for _, previousOwnerItem := range previousOwner {
  1776  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1777  	}
  1778  	var newOwnerRule []interface{}
  1779  	for _, newOwnerItem := range newOwner {
  1780  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1781  	}
  1782  
  1783  	logs, sub, err := _BridgeOperator.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1784  	if err != nil {
  1785  		return nil, err
  1786  	}
  1787  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1788  		defer sub.Unsubscribe()
  1789  		for {
  1790  			select {
  1791  			case log := <-logs:
  1792  				// New log arrived, parse the event and forward to the user
  1793  				event := new(BridgeOperatorOwnershipTransferred)
  1794  				if err := _BridgeOperator.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1795  					return err
  1796  				}
  1797  				event.Raw = log
  1798  
  1799  				select {
  1800  				case sink <- event:
  1801  				case err := <-sub.Err():
  1802  					return err
  1803  				case <-quit:
  1804  					return nil
  1805  				}
  1806  			case err := <-sub.Err():
  1807  				return err
  1808  			case <-quit:
  1809  				return nil
  1810  			}
  1811  		}
  1812  	}), nil
  1813  }
  1814  
  1815  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1816  //
  1817  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1818  func (_BridgeOperator *BridgeOperatorFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeOperatorOwnershipTransferred, error) {
  1819  	event := new(BridgeOperatorOwnershipTransferred)
  1820  	if err := _BridgeOperator.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1821  		return nil, err
  1822  	}
  1823  	return event, nil
  1824  }
  1825  
  1826  // BridgeTokensMetaData contains all meta data concerning the BridgeTokens contract.
  1827  var BridgeTokensMetaData = &bind.MetaData{
  1828  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
  1829  	Sigs: map[string]string{
  1830  		"bab2af1d": "deregisterToken(address)",
  1831  		"ea21eade": "getRegisteredTokenList()",
  1832  		"48a18a6a": "indexOfTokens(address)",
  1833  		"8f32d59b": "isOwner()",
  1834  		"10693fcd": "lockToken(address)",
  1835  		"5eb7413a": "lockedTokens(address)",
  1836  		"8da5cb5b": "owner()",
  1837  		"4739f7e5": "registerToken(address,address)",
  1838  		"3e4fe949": "registeredTokenList(uint256)",
  1839  		"8c0bd916": "registeredTokens(address)",
  1840  		"715018a6": "renounceOwnership()",
  1841  		"f2fde38b": "transferOwnership(address)",
  1842  		"9ef2017b": "unlockToken(address)",
  1843  	},
  1844  	Bin: "0x60806040819052600080546001600160a01b03191633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3610c40806100576000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638c0bd9161161008c5780639ef2017b116100665780639ef2017b14610213578063bab2af1d14610239578063ea21eade1461025f578063f2fde38b146102b7576100cf565b80638c0bd916146101dd5780638da5cb5b146102035780638f32d59b1461020b576100cf565b806310693fcd146100d45780633e4fe949146100fc5780634739f7e51461013557806348a18a6a146101635780635eb7413a1461019b578063715018a6146101d5575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166102dd565b005b6101196004803603602081101561011257600080fd5b5035610450565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603604081101561014b57600080fd5b506001600160a01b0381358116916020013516610477565b6101896004803603602081101561017957600080fd5b50356001600160a01b03166105d2565b60408051918252519081900360200190f35b6101c1600480360360208110156101b157600080fd5b50356001600160a01b03166105e4565b604080519115158252519081900360200190f35b6100fa6105f9565b610119600480360360208110156101f357600080fd5b50356001600160a01b031661068d565b6101196106a8565b6101c16106b8565b6100fa6004803603602081101561022957600080fd5b50356001600160a01b03166106c9565b6100fa6004803603602081101561024f57600080fd5b50356001600160a01b031661083d565b610267610a2c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a357818101518382015260200161028b565b505050509050019250505060405180910390f35b6100fa600480360360208110156102cd57600080fd5b50356001600160a01b0316610a8e565b6102e56106b8565b6103275760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661038f5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff16156104025760408051600160e51b62461bcd02815260206004820152600c60248201527f6c6f636b656420746f6b656e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6003818154811061045d57fe5b6000918252602090912001546001600160a01b0316905081565b61047f6106b8565b6104c15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b03808316600090815260016020526040902054839116156105335760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260016020818152604080842080549689166001600160a01b031997881617905560038054600290935281852083905592820183559183527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60026020526000908152604090205481565b60046020526000908152604090205460ff1681565b6106016106b8565b6106435760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001602052600090815260409020546001600160a01b031681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6106d16106b8565b6107135760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661077b5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff1615156001146107f25760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b6108456106b8565b6108875760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600160205260409020548291166108ef5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260016020908152604080832080546001600160a01b031916905560048252808320805460ff19169055600290915281208054919055600354600019018110156109df5760038054600019810190811061095357fe5b600091825260209091200154600380546001600160a01b03909216918390811061097957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060026000600384815481106109b957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60038054906109f2906000198301610b87565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60606003805480602002602001604051908101604052809291908181526020018280548015610a8457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a66575b5050505050905090565b610a966106b8565b610ad85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b610ae181610ae4565b50565b6001600160a01b038116610b2c57604051600160e51b62461bcd028152600401808060200182810382526026815260200180610bcf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815481835581811115610bab57600083815260209020610bab918101908301610bb0565b505050565b6106b591905b80821115610bca5760008155600101610bb6565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820243673cf74b8c0a271295a362dbfc8b387e00b277b0762b4f5eee61d706035e60029",
  1845  }
  1846  
  1847  // BridgeTokensABI is the input ABI used to generate the binding from.
  1848  // Deprecated: Use BridgeTokensMetaData.ABI instead.
  1849  var BridgeTokensABI = BridgeTokensMetaData.ABI
  1850  
  1851  // BridgeTokensBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  1852  const BridgeTokensBinRuntime = `608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638c0bd9161161008c5780639ef2017b116100665780639ef2017b14610213578063bab2af1d14610239578063ea21eade1461025f578063f2fde38b146102b7576100cf565b80638c0bd916146101dd5780638da5cb5b146102035780638f32d59b1461020b576100cf565b806310693fcd146100d45780633e4fe949146100fc5780634739f7e51461013557806348a18a6a146101635780635eb7413a1461019b578063715018a6146101d5575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166102dd565b005b6101196004803603602081101561011257600080fd5b5035610450565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603604081101561014b57600080fd5b506001600160a01b0381358116916020013516610477565b6101896004803603602081101561017957600080fd5b50356001600160a01b03166105d2565b60408051918252519081900360200190f35b6101c1600480360360208110156101b157600080fd5b50356001600160a01b03166105e4565b604080519115158252519081900360200190f35b6100fa6105f9565b610119600480360360208110156101f357600080fd5b50356001600160a01b031661068d565b6101196106a8565b6101c16106b8565b6100fa6004803603602081101561022957600080fd5b50356001600160a01b03166106c9565b6100fa6004803603602081101561024f57600080fd5b50356001600160a01b031661083d565b610267610a2c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a357818101518382015260200161028b565b505050509050019250505060405180910390f35b6100fa600480360360208110156102cd57600080fd5b50356001600160a01b0316610a8e565b6102e56106b8565b6103275760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661038f5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff16156104025760408051600160e51b62461bcd02815260206004820152600c60248201527f6c6f636b656420746f6b656e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6003818154811061045d57fe5b6000918252602090912001546001600160a01b0316905081565b61047f6106b8565b6104c15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b03808316600090815260016020526040902054839116156105335760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260016020818152604080842080549689166001600160a01b031997881617905560038054600290935281852083905592820183559183527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60026020526000908152604090205481565b60046020526000908152604090205460ff1681565b6106016106b8565b6106435760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001602052600090815260409020546001600160a01b031681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6106d16106b8565b6107135760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661077b5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff1615156001146107f25760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b6108456106b8565b6108875760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600160205260409020548291166108ef5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260016020908152604080832080546001600160a01b031916905560048252808320805460ff19169055600290915281208054919055600354600019018110156109df5760038054600019810190811061095357fe5b600091825260209091200154600380546001600160a01b03909216918390811061097957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060026000600384815481106109b957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60038054906109f2906000198301610b87565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60606003805480602002602001604051908101604052809291908181526020018280548015610a8457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a66575b5050505050905090565b610a966106b8565b610ad85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b610ae181610ae4565b50565b6001600160a01b038116610b2c57604051600160e51b62461bcd028152600401808060200182810382526026815260200180610bcf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815481835581811115610bab57600083815260209020610bab918101908301610bb0565b505050565b6106b591905b80821115610bca5760008155600101610bb6565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820243673cf74b8c0a271295a362dbfc8b387e00b277b0762b4f5eee61d706035e60029`
  1853  
  1854  // BridgeTokensFuncSigs maps the 4-byte function signature to its string representation.
  1855  // Deprecated: Use BridgeTokensMetaData.Sigs instead.
  1856  var BridgeTokensFuncSigs = BridgeTokensMetaData.Sigs
  1857  
  1858  // BridgeTokensBin is the compiled bytecode used for deploying new contracts.
  1859  // Deprecated: Use BridgeTokensMetaData.Bin instead.
  1860  var BridgeTokensBin = BridgeTokensMetaData.Bin
  1861  
  1862  // DeployBridgeTokens deploys a new Klaytn contract, binding an instance of BridgeTokens to it.
  1863  func DeployBridgeTokens(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BridgeTokens, error) {
  1864  	parsed, err := BridgeTokensMetaData.GetAbi()
  1865  	if err != nil {
  1866  		return common.Address{}, nil, nil, err
  1867  	}
  1868  	if parsed == nil {
  1869  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  1870  	}
  1871  
  1872  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BridgeTokensBin), backend)
  1873  	if err != nil {
  1874  		return common.Address{}, nil, nil, err
  1875  	}
  1876  	return address, tx, &BridgeTokens{BridgeTokensCaller: BridgeTokensCaller{contract: contract}, BridgeTokensTransactor: BridgeTokensTransactor{contract: contract}, BridgeTokensFilterer: BridgeTokensFilterer{contract: contract}}, nil
  1877  }
  1878  
  1879  // BridgeTokens is an auto generated Go binding around a Klaytn contract.
  1880  type BridgeTokens struct {
  1881  	BridgeTokensCaller     // Read-only binding to the contract
  1882  	BridgeTokensTransactor // Write-only binding to the contract
  1883  	BridgeTokensFilterer   // Log filterer for contract events
  1884  }
  1885  
  1886  // BridgeTokensCaller is an auto generated read-only Go binding around a Klaytn contract.
  1887  type BridgeTokensCaller struct {
  1888  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1889  }
  1890  
  1891  // BridgeTokensTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1892  type BridgeTokensTransactor struct {
  1893  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1894  }
  1895  
  1896  // BridgeTokensFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1897  type BridgeTokensFilterer struct {
  1898  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1899  }
  1900  
  1901  // BridgeTokensSession is an auto generated Go binding around a Klaytn contract,
  1902  // with pre-set call and transact options.
  1903  type BridgeTokensSession struct {
  1904  	Contract     *BridgeTokens     // Generic contract binding to set the session for
  1905  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1906  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1907  }
  1908  
  1909  // BridgeTokensCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1910  // with pre-set call options.
  1911  type BridgeTokensCallerSession struct {
  1912  	Contract *BridgeTokensCaller // Generic contract caller binding to set the session for
  1913  	CallOpts bind.CallOpts       // Call options to use throughout this session
  1914  }
  1915  
  1916  // BridgeTokensTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1917  // with pre-set transact options.
  1918  type BridgeTokensTransactorSession struct {
  1919  	Contract     *BridgeTokensTransactor // Generic contract transactor binding to set the session for
  1920  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  1921  }
  1922  
  1923  // BridgeTokensRaw is an auto generated low-level Go binding around a Klaytn contract.
  1924  type BridgeTokensRaw struct {
  1925  	Contract *BridgeTokens // Generic contract binding to access the raw methods on
  1926  }
  1927  
  1928  // BridgeTokensCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1929  type BridgeTokensCallerRaw struct {
  1930  	Contract *BridgeTokensCaller // Generic read-only contract binding to access the raw methods on
  1931  }
  1932  
  1933  // BridgeTokensTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1934  type BridgeTokensTransactorRaw struct {
  1935  	Contract *BridgeTokensTransactor // Generic write-only contract binding to access the raw methods on
  1936  }
  1937  
  1938  // NewBridgeTokens creates a new instance of BridgeTokens, bound to a specific deployed contract.
  1939  func NewBridgeTokens(address common.Address, backend bind.ContractBackend) (*BridgeTokens, error) {
  1940  	contract, err := bindBridgeTokens(address, backend, backend, backend)
  1941  	if err != nil {
  1942  		return nil, err
  1943  	}
  1944  	return &BridgeTokens{BridgeTokensCaller: BridgeTokensCaller{contract: contract}, BridgeTokensTransactor: BridgeTokensTransactor{contract: contract}, BridgeTokensFilterer: BridgeTokensFilterer{contract: contract}}, nil
  1945  }
  1946  
  1947  // NewBridgeTokensCaller creates a new read-only instance of BridgeTokens, bound to a specific deployed contract.
  1948  func NewBridgeTokensCaller(address common.Address, caller bind.ContractCaller) (*BridgeTokensCaller, error) {
  1949  	contract, err := bindBridgeTokens(address, caller, nil, nil)
  1950  	if err != nil {
  1951  		return nil, err
  1952  	}
  1953  	return &BridgeTokensCaller{contract: contract}, nil
  1954  }
  1955  
  1956  // NewBridgeTokensTransactor creates a new write-only instance of BridgeTokens, bound to a specific deployed contract.
  1957  func NewBridgeTokensTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTokensTransactor, error) {
  1958  	contract, err := bindBridgeTokens(address, nil, transactor, nil)
  1959  	if err != nil {
  1960  		return nil, err
  1961  	}
  1962  	return &BridgeTokensTransactor{contract: contract}, nil
  1963  }
  1964  
  1965  // NewBridgeTokensFilterer creates a new log filterer instance of BridgeTokens, bound to a specific deployed contract.
  1966  func NewBridgeTokensFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTokensFilterer, error) {
  1967  	contract, err := bindBridgeTokens(address, nil, nil, filterer)
  1968  	if err != nil {
  1969  		return nil, err
  1970  	}
  1971  	return &BridgeTokensFilterer{contract: contract}, nil
  1972  }
  1973  
  1974  // bindBridgeTokens binds a generic wrapper to an already deployed contract.
  1975  func bindBridgeTokens(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1976  	parsed, err := BridgeTokensMetaData.GetAbi()
  1977  	if err != nil {
  1978  		return nil, err
  1979  	}
  1980  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  1981  }
  1982  
  1983  // Call invokes the (constant) contract method with params as input values and
  1984  // sets the output to result. The result type might be a single field for simple
  1985  // returns, a slice of interfaces for anonymous returns and a struct for named
  1986  // returns.
  1987  func (_BridgeTokens *BridgeTokensRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1988  	return _BridgeTokens.Contract.BridgeTokensCaller.contract.Call(opts, result, method, params...)
  1989  }
  1990  
  1991  // Transfer initiates a plain transaction to move funds to the contract, calling
  1992  // its default method if one is available.
  1993  func (_BridgeTokens *BridgeTokensRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1994  	return _BridgeTokens.Contract.BridgeTokensTransactor.contract.Transfer(opts)
  1995  }
  1996  
  1997  // Transact invokes the (paid) contract method with params as input values.
  1998  func (_BridgeTokens *BridgeTokensRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1999  	return _BridgeTokens.Contract.BridgeTokensTransactor.contract.Transact(opts, method, params...)
  2000  }
  2001  
  2002  // Call invokes the (constant) contract method with params as input values and
  2003  // sets the output to result. The result type might be a single field for simple
  2004  // returns, a slice of interfaces for anonymous returns and a struct for named
  2005  // returns.
  2006  func (_BridgeTokens *BridgeTokensCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2007  	return _BridgeTokens.Contract.contract.Call(opts, result, method, params...)
  2008  }
  2009  
  2010  // Transfer initiates a plain transaction to move funds to the contract, calling
  2011  // its default method if one is available.
  2012  func (_BridgeTokens *BridgeTokensTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2013  	return _BridgeTokens.Contract.contract.Transfer(opts)
  2014  }
  2015  
  2016  // Transact invokes the (paid) contract method with params as input values.
  2017  func (_BridgeTokens *BridgeTokensTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2018  	return _BridgeTokens.Contract.contract.Transact(opts, method, params...)
  2019  }
  2020  
  2021  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  2022  //
  2023  // Solidity: function getRegisteredTokenList() view returns(address[])
  2024  func (_BridgeTokens *BridgeTokensCaller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
  2025  	var out []interface{}
  2026  	err := _BridgeTokens.contract.Call(opts, &out, "getRegisteredTokenList")
  2027  
  2028  	if err != nil {
  2029  		return *new([]common.Address), err
  2030  	}
  2031  
  2032  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  2033  
  2034  	return out0, err
  2035  
  2036  }
  2037  
  2038  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  2039  //
  2040  // Solidity: function getRegisteredTokenList() view returns(address[])
  2041  func (_BridgeTokens *BridgeTokensSession) GetRegisteredTokenList() ([]common.Address, error) {
  2042  	return _BridgeTokens.Contract.GetRegisteredTokenList(&_BridgeTokens.CallOpts)
  2043  }
  2044  
  2045  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  2046  //
  2047  // Solidity: function getRegisteredTokenList() view returns(address[])
  2048  func (_BridgeTokens *BridgeTokensCallerSession) GetRegisteredTokenList() ([]common.Address, error) {
  2049  	return _BridgeTokens.Contract.GetRegisteredTokenList(&_BridgeTokens.CallOpts)
  2050  }
  2051  
  2052  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  2053  //
  2054  // Solidity: function indexOfTokens(address ) view returns(uint256)
  2055  func (_BridgeTokens *BridgeTokensCaller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  2056  	var out []interface{}
  2057  	err := _BridgeTokens.contract.Call(opts, &out, "indexOfTokens", arg0)
  2058  
  2059  	if err != nil {
  2060  		return *new(*big.Int), err
  2061  	}
  2062  
  2063  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2064  
  2065  	return out0, err
  2066  
  2067  }
  2068  
  2069  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  2070  //
  2071  // Solidity: function indexOfTokens(address ) view returns(uint256)
  2072  func (_BridgeTokens *BridgeTokensSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  2073  	return _BridgeTokens.Contract.IndexOfTokens(&_BridgeTokens.CallOpts, arg0)
  2074  }
  2075  
  2076  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  2077  //
  2078  // Solidity: function indexOfTokens(address ) view returns(uint256)
  2079  func (_BridgeTokens *BridgeTokensCallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  2080  	return _BridgeTokens.Contract.IndexOfTokens(&_BridgeTokens.CallOpts, arg0)
  2081  }
  2082  
  2083  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  2084  //
  2085  // Solidity: function isOwner() view returns(bool)
  2086  func (_BridgeTokens *BridgeTokensCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  2087  	var out []interface{}
  2088  	err := _BridgeTokens.contract.Call(opts, &out, "isOwner")
  2089  
  2090  	if err != nil {
  2091  		return *new(bool), err
  2092  	}
  2093  
  2094  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2095  
  2096  	return out0, err
  2097  
  2098  }
  2099  
  2100  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  2101  //
  2102  // Solidity: function isOwner() view returns(bool)
  2103  func (_BridgeTokens *BridgeTokensSession) IsOwner() (bool, error) {
  2104  	return _BridgeTokens.Contract.IsOwner(&_BridgeTokens.CallOpts)
  2105  }
  2106  
  2107  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  2108  //
  2109  // Solidity: function isOwner() view returns(bool)
  2110  func (_BridgeTokens *BridgeTokensCallerSession) IsOwner() (bool, error) {
  2111  	return _BridgeTokens.Contract.IsOwner(&_BridgeTokens.CallOpts)
  2112  }
  2113  
  2114  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  2115  //
  2116  // Solidity: function lockedTokens(address ) view returns(bool)
  2117  func (_BridgeTokens *BridgeTokensCaller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  2118  	var out []interface{}
  2119  	err := _BridgeTokens.contract.Call(opts, &out, "lockedTokens", arg0)
  2120  
  2121  	if err != nil {
  2122  		return *new(bool), err
  2123  	}
  2124  
  2125  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2126  
  2127  	return out0, err
  2128  
  2129  }
  2130  
  2131  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  2132  //
  2133  // Solidity: function lockedTokens(address ) view returns(bool)
  2134  func (_BridgeTokens *BridgeTokensSession) LockedTokens(arg0 common.Address) (bool, error) {
  2135  	return _BridgeTokens.Contract.LockedTokens(&_BridgeTokens.CallOpts, arg0)
  2136  }
  2137  
  2138  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  2139  //
  2140  // Solidity: function lockedTokens(address ) view returns(bool)
  2141  func (_BridgeTokens *BridgeTokensCallerSession) LockedTokens(arg0 common.Address) (bool, error) {
  2142  	return _BridgeTokens.Contract.LockedTokens(&_BridgeTokens.CallOpts, arg0)
  2143  }
  2144  
  2145  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2146  //
  2147  // Solidity: function owner() view returns(address)
  2148  func (_BridgeTokens *BridgeTokensCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  2149  	var out []interface{}
  2150  	err := _BridgeTokens.contract.Call(opts, &out, "owner")
  2151  
  2152  	if err != nil {
  2153  		return *new(common.Address), err
  2154  	}
  2155  
  2156  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2157  
  2158  	return out0, err
  2159  
  2160  }
  2161  
  2162  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2163  //
  2164  // Solidity: function owner() view returns(address)
  2165  func (_BridgeTokens *BridgeTokensSession) Owner() (common.Address, error) {
  2166  	return _BridgeTokens.Contract.Owner(&_BridgeTokens.CallOpts)
  2167  }
  2168  
  2169  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2170  //
  2171  // Solidity: function owner() view returns(address)
  2172  func (_BridgeTokens *BridgeTokensCallerSession) Owner() (common.Address, error) {
  2173  	return _BridgeTokens.Contract.Owner(&_BridgeTokens.CallOpts)
  2174  }
  2175  
  2176  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  2177  //
  2178  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  2179  func (_BridgeTokens *BridgeTokensCaller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  2180  	var out []interface{}
  2181  	err := _BridgeTokens.contract.Call(opts, &out, "registeredTokenList", arg0)
  2182  
  2183  	if err != nil {
  2184  		return *new(common.Address), err
  2185  	}
  2186  
  2187  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2188  
  2189  	return out0, err
  2190  
  2191  }
  2192  
  2193  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  2194  //
  2195  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  2196  func (_BridgeTokens *BridgeTokensSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  2197  	return _BridgeTokens.Contract.RegisteredTokenList(&_BridgeTokens.CallOpts, arg0)
  2198  }
  2199  
  2200  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  2201  //
  2202  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  2203  func (_BridgeTokens *BridgeTokensCallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  2204  	return _BridgeTokens.Contract.RegisteredTokenList(&_BridgeTokens.CallOpts, arg0)
  2205  }
  2206  
  2207  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  2208  //
  2209  // Solidity: function registeredTokens(address ) view returns(address)
  2210  func (_BridgeTokens *BridgeTokensCaller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  2211  	var out []interface{}
  2212  	err := _BridgeTokens.contract.Call(opts, &out, "registeredTokens", arg0)
  2213  
  2214  	if err != nil {
  2215  		return *new(common.Address), err
  2216  	}
  2217  
  2218  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2219  
  2220  	return out0, err
  2221  
  2222  }
  2223  
  2224  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  2225  //
  2226  // Solidity: function registeredTokens(address ) view returns(address)
  2227  func (_BridgeTokens *BridgeTokensSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  2228  	return _BridgeTokens.Contract.RegisteredTokens(&_BridgeTokens.CallOpts, arg0)
  2229  }
  2230  
  2231  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  2232  //
  2233  // Solidity: function registeredTokens(address ) view returns(address)
  2234  func (_BridgeTokens *BridgeTokensCallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  2235  	return _BridgeTokens.Contract.RegisteredTokens(&_BridgeTokens.CallOpts, arg0)
  2236  }
  2237  
  2238  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  2239  //
  2240  // Solidity: function deregisterToken(address _token) returns()
  2241  func (_BridgeTokens *BridgeTokensTransactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  2242  	return _BridgeTokens.contract.Transact(opts, "deregisterToken", _token)
  2243  }
  2244  
  2245  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  2246  //
  2247  // Solidity: function deregisterToken(address _token) returns()
  2248  func (_BridgeTokens *BridgeTokensSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  2249  	return _BridgeTokens.Contract.DeregisterToken(&_BridgeTokens.TransactOpts, _token)
  2250  }
  2251  
  2252  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  2253  //
  2254  // Solidity: function deregisterToken(address _token) returns()
  2255  func (_BridgeTokens *BridgeTokensTransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  2256  	return _BridgeTokens.Contract.DeregisterToken(&_BridgeTokens.TransactOpts, _token)
  2257  }
  2258  
  2259  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  2260  //
  2261  // Solidity: function lockToken(address _token) returns()
  2262  func (_BridgeTokens *BridgeTokensTransactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  2263  	return _BridgeTokens.contract.Transact(opts, "lockToken", _token)
  2264  }
  2265  
  2266  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  2267  //
  2268  // Solidity: function lockToken(address _token) returns()
  2269  func (_BridgeTokens *BridgeTokensSession) LockToken(_token common.Address) (*types.Transaction, error) {
  2270  	return _BridgeTokens.Contract.LockToken(&_BridgeTokens.TransactOpts, _token)
  2271  }
  2272  
  2273  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  2274  //
  2275  // Solidity: function lockToken(address _token) returns()
  2276  func (_BridgeTokens *BridgeTokensTransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
  2277  	return _BridgeTokens.Contract.LockToken(&_BridgeTokens.TransactOpts, _token)
  2278  }
  2279  
  2280  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  2281  //
  2282  // Solidity: function registerToken(address _token, address _cToken) returns()
  2283  func (_BridgeTokens *BridgeTokensTransactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
  2284  	return _BridgeTokens.contract.Transact(opts, "registerToken", _token, _cToken)
  2285  }
  2286  
  2287  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  2288  //
  2289  // Solidity: function registerToken(address _token, address _cToken) returns()
  2290  func (_BridgeTokens *BridgeTokensSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  2291  	return _BridgeTokens.Contract.RegisterToken(&_BridgeTokens.TransactOpts, _token, _cToken)
  2292  }
  2293  
  2294  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  2295  //
  2296  // Solidity: function registerToken(address _token, address _cToken) returns()
  2297  func (_BridgeTokens *BridgeTokensTransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  2298  	return _BridgeTokens.Contract.RegisterToken(&_BridgeTokens.TransactOpts, _token, _cToken)
  2299  }
  2300  
  2301  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  2302  //
  2303  // Solidity: function renounceOwnership() returns()
  2304  func (_BridgeTokens *BridgeTokensTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  2305  	return _BridgeTokens.contract.Transact(opts, "renounceOwnership")
  2306  }
  2307  
  2308  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  2309  //
  2310  // Solidity: function renounceOwnership() returns()
  2311  func (_BridgeTokens *BridgeTokensSession) RenounceOwnership() (*types.Transaction, error) {
  2312  	return _BridgeTokens.Contract.RenounceOwnership(&_BridgeTokens.TransactOpts)
  2313  }
  2314  
  2315  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  2316  //
  2317  // Solidity: function renounceOwnership() returns()
  2318  func (_BridgeTokens *BridgeTokensTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  2319  	return _BridgeTokens.Contract.RenounceOwnership(&_BridgeTokens.TransactOpts)
  2320  }
  2321  
  2322  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2323  //
  2324  // Solidity: function transferOwnership(address newOwner) returns()
  2325  func (_BridgeTokens *BridgeTokensTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  2326  	return _BridgeTokens.contract.Transact(opts, "transferOwnership", newOwner)
  2327  }
  2328  
  2329  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2330  //
  2331  // Solidity: function transferOwnership(address newOwner) returns()
  2332  func (_BridgeTokens *BridgeTokensSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2333  	return _BridgeTokens.Contract.TransferOwnership(&_BridgeTokens.TransactOpts, newOwner)
  2334  }
  2335  
  2336  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2337  //
  2338  // Solidity: function transferOwnership(address newOwner) returns()
  2339  func (_BridgeTokens *BridgeTokensTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2340  	return _BridgeTokens.Contract.TransferOwnership(&_BridgeTokens.TransactOpts, newOwner)
  2341  }
  2342  
  2343  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  2344  //
  2345  // Solidity: function unlockToken(address _token) returns()
  2346  func (_BridgeTokens *BridgeTokensTransactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  2347  	return _BridgeTokens.contract.Transact(opts, "unlockToken", _token)
  2348  }
  2349  
  2350  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  2351  //
  2352  // Solidity: function unlockToken(address _token) returns()
  2353  func (_BridgeTokens *BridgeTokensSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  2354  	return _BridgeTokens.Contract.UnlockToken(&_BridgeTokens.TransactOpts, _token)
  2355  }
  2356  
  2357  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  2358  //
  2359  // Solidity: function unlockToken(address _token) returns()
  2360  func (_BridgeTokens *BridgeTokensTransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  2361  	return _BridgeTokens.Contract.UnlockToken(&_BridgeTokens.TransactOpts, _token)
  2362  }
  2363  
  2364  // BridgeTokensOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTokens contract.
  2365  type BridgeTokensOwnershipTransferredIterator struct {
  2366  	Event *BridgeTokensOwnershipTransferred // Event containing the contract specifics and raw log
  2367  
  2368  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2369  	event    string              // Event name to use for unpacking event data
  2370  
  2371  	logs chan types.Log      // Log channel receiving the found contract events
  2372  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2373  	done bool                // Whether the subscription completed delivering logs
  2374  	fail error               // Occurred error to stop iteration
  2375  }
  2376  
  2377  // Next advances the iterator to the subsequent event, returning whether there
  2378  // are any more events found. In case of a retrieval or parsing error, false is
  2379  // returned and Error() can be queried for the exact failure.
  2380  func (it *BridgeTokensOwnershipTransferredIterator) Next() bool {
  2381  	// If the iterator failed, stop iterating
  2382  	if it.fail != nil {
  2383  		return false
  2384  	}
  2385  	// If the iterator completed, deliver directly whatever's available
  2386  	if it.done {
  2387  		select {
  2388  		case log := <-it.logs:
  2389  			it.Event = new(BridgeTokensOwnershipTransferred)
  2390  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2391  				it.fail = err
  2392  				return false
  2393  			}
  2394  			it.Event.Raw = log
  2395  			return true
  2396  
  2397  		default:
  2398  			return false
  2399  		}
  2400  	}
  2401  	// Iterator still in progress, wait for either a data or an error event
  2402  	select {
  2403  	case log := <-it.logs:
  2404  		it.Event = new(BridgeTokensOwnershipTransferred)
  2405  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2406  			it.fail = err
  2407  			return false
  2408  		}
  2409  		it.Event.Raw = log
  2410  		return true
  2411  
  2412  	case err := <-it.sub.Err():
  2413  		it.done = true
  2414  		it.fail = err
  2415  		return it.Next()
  2416  	}
  2417  }
  2418  
  2419  // Error returns any retrieval or parsing error occurred during filtering.
  2420  func (it *BridgeTokensOwnershipTransferredIterator) Error() error {
  2421  	return it.fail
  2422  }
  2423  
  2424  // Close terminates the iteration process, releasing any pending underlying
  2425  // resources.
  2426  func (it *BridgeTokensOwnershipTransferredIterator) Close() error {
  2427  	it.sub.Unsubscribe()
  2428  	return nil
  2429  }
  2430  
  2431  // BridgeTokensOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTokens contract.
  2432  type BridgeTokensOwnershipTransferred struct {
  2433  	PreviousOwner common.Address
  2434  	NewOwner      common.Address
  2435  	Raw           types.Log // Blockchain specific contextual infos
  2436  }
  2437  
  2438  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2439  //
  2440  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2441  func (_BridgeTokens *BridgeTokensFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTokensOwnershipTransferredIterator, error) {
  2442  
  2443  	var previousOwnerRule []interface{}
  2444  	for _, previousOwnerItem := range previousOwner {
  2445  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2446  	}
  2447  	var newOwnerRule []interface{}
  2448  	for _, newOwnerItem := range newOwner {
  2449  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2450  	}
  2451  
  2452  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2453  	if err != nil {
  2454  		return nil, err
  2455  	}
  2456  	return &BridgeTokensOwnershipTransferredIterator{contract: _BridgeTokens.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  2457  }
  2458  
  2459  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2460  //
  2461  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2462  func (_BridgeTokens *BridgeTokensFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTokensOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  2463  
  2464  	var previousOwnerRule []interface{}
  2465  	for _, previousOwnerItem := range previousOwner {
  2466  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2467  	}
  2468  	var newOwnerRule []interface{}
  2469  	for _, newOwnerItem := range newOwner {
  2470  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2471  	}
  2472  
  2473  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2474  	if err != nil {
  2475  		return nil, err
  2476  	}
  2477  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2478  		defer sub.Unsubscribe()
  2479  		for {
  2480  			select {
  2481  			case log := <-logs:
  2482  				// New log arrived, parse the event and forward to the user
  2483  				event := new(BridgeTokensOwnershipTransferred)
  2484  				if err := _BridgeTokens.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2485  					return err
  2486  				}
  2487  				event.Raw = log
  2488  
  2489  				select {
  2490  				case sink <- event:
  2491  				case err := <-sub.Err():
  2492  					return err
  2493  				case <-quit:
  2494  					return nil
  2495  				}
  2496  			case err := <-sub.Err():
  2497  				return err
  2498  			case <-quit:
  2499  				return nil
  2500  			}
  2501  		}
  2502  	}), nil
  2503  }
  2504  
  2505  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2506  //
  2507  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2508  func (_BridgeTokens *BridgeTokensFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeTokensOwnershipTransferred, error) {
  2509  	event := new(BridgeTokensOwnershipTransferred)
  2510  	if err := _BridgeTokens.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2511  		return nil, err
  2512  	}
  2513  	return event, nil
  2514  }
  2515  
  2516  // BridgeTokensTokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the BridgeTokens contract.
  2517  type BridgeTokensTokenDeregisteredIterator struct {
  2518  	Event *BridgeTokensTokenDeregistered // Event containing the contract specifics and raw log
  2519  
  2520  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2521  	event    string              // Event name to use for unpacking event data
  2522  
  2523  	logs chan types.Log      // Log channel receiving the found contract events
  2524  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2525  	done bool                // Whether the subscription completed delivering logs
  2526  	fail error               // Occurred error to stop iteration
  2527  }
  2528  
  2529  // Next advances the iterator to the subsequent event, returning whether there
  2530  // are any more events found. In case of a retrieval or parsing error, false is
  2531  // returned and Error() can be queried for the exact failure.
  2532  func (it *BridgeTokensTokenDeregisteredIterator) Next() bool {
  2533  	// If the iterator failed, stop iterating
  2534  	if it.fail != nil {
  2535  		return false
  2536  	}
  2537  	// If the iterator completed, deliver directly whatever's available
  2538  	if it.done {
  2539  		select {
  2540  		case log := <-it.logs:
  2541  			it.Event = new(BridgeTokensTokenDeregistered)
  2542  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2543  				it.fail = err
  2544  				return false
  2545  			}
  2546  			it.Event.Raw = log
  2547  			return true
  2548  
  2549  		default:
  2550  			return false
  2551  		}
  2552  	}
  2553  	// Iterator still in progress, wait for either a data or an error event
  2554  	select {
  2555  	case log := <-it.logs:
  2556  		it.Event = new(BridgeTokensTokenDeregistered)
  2557  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2558  			it.fail = err
  2559  			return false
  2560  		}
  2561  		it.Event.Raw = log
  2562  		return true
  2563  
  2564  	case err := <-it.sub.Err():
  2565  		it.done = true
  2566  		it.fail = err
  2567  		return it.Next()
  2568  	}
  2569  }
  2570  
  2571  // Error returns any retrieval or parsing error occurred during filtering.
  2572  func (it *BridgeTokensTokenDeregisteredIterator) Error() error {
  2573  	return it.fail
  2574  }
  2575  
  2576  // Close terminates the iteration process, releasing any pending underlying
  2577  // resources.
  2578  func (it *BridgeTokensTokenDeregisteredIterator) Close() error {
  2579  	it.sub.Unsubscribe()
  2580  	return nil
  2581  }
  2582  
  2583  // BridgeTokensTokenDeregistered represents a TokenDeregistered event raised by the BridgeTokens contract.
  2584  type BridgeTokensTokenDeregistered struct {
  2585  	Token common.Address
  2586  	Raw   types.Log // Blockchain specific contextual infos
  2587  }
  2588  
  2589  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  2590  //
  2591  // Solidity: event TokenDeregistered(address indexed token)
  2592  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenDeregisteredIterator, error) {
  2593  
  2594  	var tokenRule []interface{}
  2595  	for _, tokenItem := range token {
  2596  		tokenRule = append(tokenRule, tokenItem)
  2597  	}
  2598  
  2599  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
  2600  	if err != nil {
  2601  		return nil, err
  2602  	}
  2603  	return &BridgeTokensTokenDeregisteredIterator{contract: _BridgeTokens.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
  2604  }
  2605  
  2606  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  2607  //
  2608  // Solidity: event TokenDeregistered(address indexed token)
  2609  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenDeregistered, token []common.Address) (event.Subscription, error) {
  2610  
  2611  	var tokenRule []interface{}
  2612  	for _, tokenItem := range token {
  2613  		tokenRule = append(tokenRule, tokenItem)
  2614  	}
  2615  
  2616  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
  2617  	if err != nil {
  2618  		return nil, err
  2619  	}
  2620  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2621  		defer sub.Unsubscribe()
  2622  		for {
  2623  			select {
  2624  			case log := <-logs:
  2625  				// New log arrived, parse the event and forward to the user
  2626  				event := new(BridgeTokensTokenDeregistered)
  2627  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  2628  					return err
  2629  				}
  2630  				event.Raw = log
  2631  
  2632  				select {
  2633  				case sink <- event:
  2634  				case err := <-sub.Err():
  2635  					return err
  2636  				case <-quit:
  2637  					return nil
  2638  				}
  2639  			case err := <-sub.Err():
  2640  				return err
  2641  			case <-quit:
  2642  				return nil
  2643  			}
  2644  		}
  2645  	}), nil
  2646  }
  2647  
  2648  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  2649  //
  2650  // Solidity: event TokenDeregistered(address indexed token)
  2651  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenDeregistered(log types.Log) (*BridgeTokensTokenDeregistered, error) {
  2652  	event := new(BridgeTokensTokenDeregistered)
  2653  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  2654  		return nil, err
  2655  	}
  2656  	return event, nil
  2657  }
  2658  
  2659  // BridgeTokensTokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the BridgeTokens contract.
  2660  type BridgeTokensTokenLockedIterator struct {
  2661  	Event *BridgeTokensTokenLocked // Event containing the contract specifics and raw log
  2662  
  2663  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2664  	event    string              // Event name to use for unpacking event data
  2665  
  2666  	logs chan types.Log      // Log channel receiving the found contract events
  2667  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2668  	done bool                // Whether the subscription completed delivering logs
  2669  	fail error               // Occurred error to stop iteration
  2670  }
  2671  
  2672  // Next advances the iterator to the subsequent event, returning whether there
  2673  // are any more events found. In case of a retrieval or parsing error, false is
  2674  // returned and Error() can be queried for the exact failure.
  2675  func (it *BridgeTokensTokenLockedIterator) Next() bool {
  2676  	// If the iterator failed, stop iterating
  2677  	if it.fail != nil {
  2678  		return false
  2679  	}
  2680  	// If the iterator completed, deliver directly whatever's available
  2681  	if it.done {
  2682  		select {
  2683  		case log := <-it.logs:
  2684  			it.Event = new(BridgeTokensTokenLocked)
  2685  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2686  				it.fail = err
  2687  				return false
  2688  			}
  2689  			it.Event.Raw = log
  2690  			return true
  2691  
  2692  		default:
  2693  			return false
  2694  		}
  2695  	}
  2696  	// Iterator still in progress, wait for either a data or an error event
  2697  	select {
  2698  	case log := <-it.logs:
  2699  		it.Event = new(BridgeTokensTokenLocked)
  2700  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2701  			it.fail = err
  2702  			return false
  2703  		}
  2704  		it.Event.Raw = log
  2705  		return true
  2706  
  2707  	case err := <-it.sub.Err():
  2708  		it.done = true
  2709  		it.fail = err
  2710  		return it.Next()
  2711  	}
  2712  }
  2713  
  2714  // Error returns any retrieval or parsing error occurred during filtering.
  2715  func (it *BridgeTokensTokenLockedIterator) Error() error {
  2716  	return it.fail
  2717  }
  2718  
  2719  // Close terminates the iteration process, releasing any pending underlying
  2720  // resources.
  2721  func (it *BridgeTokensTokenLockedIterator) Close() error {
  2722  	it.sub.Unsubscribe()
  2723  	return nil
  2724  }
  2725  
  2726  // BridgeTokensTokenLocked represents a TokenLocked event raised by the BridgeTokens contract.
  2727  type BridgeTokensTokenLocked struct {
  2728  	Token common.Address
  2729  	Raw   types.Log // Blockchain specific contextual infos
  2730  }
  2731  
  2732  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  2733  //
  2734  // Solidity: event TokenLocked(address indexed token)
  2735  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenLockedIterator, error) {
  2736  
  2737  	var tokenRule []interface{}
  2738  	for _, tokenItem := range token {
  2739  		tokenRule = append(tokenRule, tokenItem)
  2740  	}
  2741  
  2742  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenLocked", tokenRule)
  2743  	if err != nil {
  2744  		return nil, err
  2745  	}
  2746  	return &BridgeTokensTokenLockedIterator{contract: _BridgeTokens.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
  2747  }
  2748  
  2749  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  2750  //
  2751  // Solidity: event TokenLocked(address indexed token)
  2752  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenLocked, token []common.Address) (event.Subscription, error) {
  2753  
  2754  	var tokenRule []interface{}
  2755  	for _, tokenItem := range token {
  2756  		tokenRule = append(tokenRule, tokenItem)
  2757  	}
  2758  
  2759  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenLocked", tokenRule)
  2760  	if err != nil {
  2761  		return nil, err
  2762  	}
  2763  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2764  		defer sub.Unsubscribe()
  2765  		for {
  2766  			select {
  2767  			case log := <-logs:
  2768  				// New log arrived, parse the event and forward to the user
  2769  				event := new(BridgeTokensTokenLocked)
  2770  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  2771  					return err
  2772  				}
  2773  				event.Raw = log
  2774  
  2775  				select {
  2776  				case sink <- event:
  2777  				case err := <-sub.Err():
  2778  					return err
  2779  				case <-quit:
  2780  					return nil
  2781  				}
  2782  			case err := <-sub.Err():
  2783  				return err
  2784  			case <-quit:
  2785  				return nil
  2786  			}
  2787  		}
  2788  	}), nil
  2789  }
  2790  
  2791  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  2792  //
  2793  // Solidity: event TokenLocked(address indexed token)
  2794  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenLocked(log types.Log) (*BridgeTokensTokenLocked, error) {
  2795  	event := new(BridgeTokensTokenLocked)
  2796  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  2797  		return nil, err
  2798  	}
  2799  	return event, nil
  2800  }
  2801  
  2802  // BridgeTokensTokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the BridgeTokens contract.
  2803  type BridgeTokensTokenRegisteredIterator struct {
  2804  	Event *BridgeTokensTokenRegistered // Event containing the contract specifics and raw log
  2805  
  2806  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2807  	event    string              // Event name to use for unpacking event data
  2808  
  2809  	logs chan types.Log      // Log channel receiving the found contract events
  2810  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2811  	done bool                // Whether the subscription completed delivering logs
  2812  	fail error               // Occurred error to stop iteration
  2813  }
  2814  
  2815  // Next advances the iterator to the subsequent event, returning whether there
  2816  // are any more events found. In case of a retrieval or parsing error, false is
  2817  // returned and Error() can be queried for the exact failure.
  2818  func (it *BridgeTokensTokenRegisteredIterator) Next() bool {
  2819  	// If the iterator failed, stop iterating
  2820  	if it.fail != nil {
  2821  		return false
  2822  	}
  2823  	// If the iterator completed, deliver directly whatever's available
  2824  	if it.done {
  2825  		select {
  2826  		case log := <-it.logs:
  2827  			it.Event = new(BridgeTokensTokenRegistered)
  2828  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2829  				it.fail = err
  2830  				return false
  2831  			}
  2832  			it.Event.Raw = log
  2833  			return true
  2834  
  2835  		default:
  2836  			return false
  2837  		}
  2838  	}
  2839  	// Iterator still in progress, wait for either a data or an error event
  2840  	select {
  2841  	case log := <-it.logs:
  2842  		it.Event = new(BridgeTokensTokenRegistered)
  2843  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2844  			it.fail = err
  2845  			return false
  2846  		}
  2847  		it.Event.Raw = log
  2848  		return true
  2849  
  2850  	case err := <-it.sub.Err():
  2851  		it.done = true
  2852  		it.fail = err
  2853  		return it.Next()
  2854  	}
  2855  }
  2856  
  2857  // Error returns any retrieval or parsing error occurred during filtering.
  2858  func (it *BridgeTokensTokenRegisteredIterator) Error() error {
  2859  	return it.fail
  2860  }
  2861  
  2862  // Close terminates the iteration process, releasing any pending underlying
  2863  // resources.
  2864  func (it *BridgeTokensTokenRegisteredIterator) Close() error {
  2865  	it.sub.Unsubscribe()
  2866  	return nil
  2867  }
  2868  
  2869  // BridgeTokensTokenRegistered represents a TokenRegistered event raised by the BridgeTokens contract.
  2870  type BridgeTokensTokenRegistered struct {
  2871  	Token common.Address
  2872  	Raw   types.Log // Blockchain specific contextual infos
  2873  }
  2874  
  2875  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  2876  //
  2877  // Solidity: event TokenRegistered(address indexed token)
  2878  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenRegisteredIterator, error) {
  2879  
  2880  	var tokenRule []interface{}
  2881  	for _, tokenItem := range token {
  2882  		tokenRule = append(tokenRule, tokenItem)
  2883  	}
  2884  
  2885  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
  2886  	if err != nil {
  2887  		return nil, err
  2888  	}
  2889  	return &BridgeTokensTokenRegisteredIterator{contract: _BridgeTokens.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
  2890  }
  2891  
  2892  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  2893  //
  2894  // Solidity: event TokenRegistered(address indexed token)
  2895  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenRegistered, token []common.Address) (event.Subscription, error) {
  2896  
  2897  	var tokenRule []interface{}
  2898  	for _, tokenItem := range token {
  2899  		tokenRule = append(tokenRule, tokenItem)
  2900  	}
  2901  
  2902  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
  2903  	if err != nil {
  2904  		return nil, err
  2905  	}
  2906  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2907  		defer sub.Unsubscribe()
  2908  		for {
  2909  			select {
  2910  			case log := <-logs:
  2911  				// New log arrived, parse the event and forward to the user
  2912  				event := new(BridgeTokensTokenRegistered)
  2913  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  2914  					return err
  2915  				}
  2916  				event.Raw = log
  2917  
  2918  				select {
  2919  				case sink <- event:
  2920  				case err := <-sub.Err():
  2921  					return err
  2922  				case <-quit:
  2923  					return nil
  2924  				}
  2925  			case err := <-sub.Err():
  2926  				return err
  2927  			case <-quit:
  2928  				return nil
  2929  			}
  2930  		}
  2931  	}), nil
  2932  }
  2933  
  2934  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  2935  //
  2936  // Solidity: event TokenRegistered(address indexed token)
  2937  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenRegistered(log types.Log) (*BridgeTokensTokenRegistered, error) {
  2938  	event := new(BridgeTokensTokenRegistered)
  2939  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  2940  		return nil, err
  2941  	}
  2942  	return event, nil
  2943  }
  2944  
  2945  // BridgeTokensTokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the BridgeTokens contract.
  2946  type BridgeTokensTokenUnlockedIterator struct {
  2947  	Event *BridgeTokensTokenUnlocked // Event containing the contract specifics and raw log
  2948  
  2949  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2950  	event    string              // Event name to use for unpacking event data
  2951  
  2952  	logs chan types.Log      // Log channel receiving the found contract events
  2953  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2954  	done bool                // Whether the subscription completed delivering logs
  2955  	fail error               // Occurred error to stop iteration
  2956  }
  2957  
  2958  // Next advances the iterator to the subsequent event, returning whether there
  2959  // are any more events found. In case of a retrieval or parsing error, false is
  2960  // returned and Error() can be queried for the exact failure.
  2961  func (it *BridgeTokensTokenUnlockedIterator) Next() bool {
  2962  	// If the iterator failed, stop iterating
  2963  	if it.fail != nil {
  2964  		return false
  2965  	}
  2966  	// If the iterator completed, deliver directly whatever's available
  2967  	if it.done {
  2968  		select {
  2969  		case log := <-it.logs:
  2970  			it.Event = new(BridgeTokensTokenUnlocked)
  2971  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2972  				it.fail = err
  2973  				return false
  2974  			}
  2975  			it.Event.Raw = log
  2976  			return true
  2977  
  2978  		default:
  2979  			return false
  2980  		}
  2981  	}
  2982  	// Iterator still in progress, wait for either a data or an error event
  2983  	select {
  2984  	case log := <-it.logs:
  2985  		it.Event = new(BridgeTokensTokenUnlocked)
  2986  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2987  			it.fail = err
  2988  			return false
  2989  		}
  2990  		it.Event.Raw = log
  2991  		return true
  2992  
  2993  	case err := <-it.sub.Err():
  2994  		it.done = true
  2995  		it.fail = err
  2996  		return it.Next()
  2997  	}
  2998  }
  2999  
  3000  // Error returns any retrieval or parsing error occurred during filtering.
  3001  func (it *BridgeTokensTokenUnlockedIterator) Error() error {
  3002  	return it.fail
  3003  }
  3004  
  3005  // Close terminates the iteration process, releasing any pending underlying
  3006  // resources.
  3007  func (it *BridgeTokensTokenUnlockedIterator) Close() error {
  3008  	it.sub.Unsubscribe()
  3009  	return nil
  3010  }
  3011  
  3012  // BridgeTokensTokenUnlocked represents a TokenUnlocked event raised by the BridgeTokens contract.
  3013  type BridgeTokensTokenUnlocked struct {
  3014  	Token common.Address
  3015  	Raw   types.Log // Blockchain specific contextual infos
  3016  }
  3017  
  3018  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  3019  //
  3020  // Solidity: event TokenUnlocked(address indexed token)
  3021  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenUnlockedIterator, error) {
  3022  
  3023  	var tokenRule []interface{}
  3024  	for _, tokenItem := range token {
  3025  		tokenRule = append(tokenRule, tokenItem)
  3026  	}
  3027  
  3028  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
  3029  	if err != nil {
  3030  		return nil, err
  3031  	}
  3032  	return &BridgeTokensTokenUnlockedIterator{contract: _BridgeTokens.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
  3033  }
  3034  
  3035  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  3036  //
  3037  // Solidity: event TokenUnlocked(address indexed token)
  3038  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenUnlocked, token []common.Address) (event.Subscription, error) {
  3039  
  3040  	var tokenRule []interface{}
  3041  	for _, tokenItem := range token {
  3042  		tokenRule = append(tokenRule, tokenItem)
  3043  	}
  3044  
  3045  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
  3046  	if err != nil {
  3047  		return nil, err
  3048  	}
  3049  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3050  		defer sub.Unsubscribe()
  3051  		for {
  3052  			select {
  3053  			case log := <-logs:
  3054  				// New log arrived, parse the event and forward to the user
  3055  				event := new(BridgeTokensTokenUnlocked)
  3056  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  3057  					return err
  3058  				}
  3059  				event.Raw = log
  3060  
  3061  				select {
  3062  				case sink <- event:
  3063  				case err := <-sub.Err():
  3064  					return err
  3065  				case <-quit:
  3066  					return nil
  3067  				}
  3068  			case err := <-sub.Err():
  3069  				return err
  3070  			case <-quit:
  3071  				return nil
  3072  			}
  3073  		}
  3074  	}), nil
  3075  }
  3076  
  3077  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  3078  //
  3079  // Solidity: event TokenUnlocked(address indexed token)
  3080  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenUnlocked(log types.Log) (*BridgeTokensTokenUnlocked, error) {
  3081  	event := new(BridgeTokensTokenUnlocked)
  3082  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  3083  		return nil, err
  3084  	}
  3085  	return event, nil
  3086  }
  3087  
  3088  // BridgeTransferMetaData contains all meta data concerning the BridgeTransfer contract.
  3089  var BridgeTransferMetaData = &bind.MetaData{
  3090  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_modeMintBurn\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
  3091  	Sigs: map[string]string{
  3092  		"3a3099d1": "MAX_OPERATOR()",
  3093  		"9832c1d7": "closedValueTransferVotes(uint64)",
  3094  		"ac6fff0b": "configurationNonce()",
  3095  		"d8cf98ca": "deregisterOperator(address)",
  3096  		"488af871": "feeOfERC20(address)",
  3097  		"c263b5d6": "feeOfKLAY()",
  3098  		"b3f00674": "feeReceiver()",
  3099  		"b2c01030": "getOperatorList()",
  3100  		"13a6738a": "handleNoncesToBlockNums(uint64)",
  3101  		"8a75eee2": "handledRequestTx(bytes32)",
  3102  		"8f32d59b": "isOwner()",
  3103  		"2014e5d1": "isRunning()",
  3104  		"4b40b826": "lowerHandleNonce()",
  3105  		"6e176ec2": "modeMintBurn()",
  3106  		"cb38f407": "operatorList(uint256)",
  3107  		"5526f76b": "operatorThresholds(uint8)",
  3108  		"13e7c9d8": "operators(address)",
  3109  		"8da5cb5b": "owner()",
  3110  		"989ba0d3": "recoveryBlockNumber()",
  3111  		"3682a450": "registerOperator(address)",
  3112  		"715018a6": "renounceOwnership()",
  3113  		"7c1a0302": "requestNonce()",
  3114  		"efdcd974": "setFeeReceiver(address)",
  3115  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  3116  		"c877cf37": "start(bool)",
  3117  		"f2fde38b": "transferOwnership(address)",
  3118  		"54edad72": "upperHandleNonce()",
  3119  	},
  3120  }
  3121  
  3122  // BridgeTransferABI is the input ABI used to generate the binding from.
  3123  // Deprecated: Use BridgeTransferMetaData.ABI instead.
  3124  var BridgeTransferABI = BridgeTransferMetaData.ABI
  3125  
  3126  // BridgeTransferBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  3127  const BridgeTransferBinRuntime = ``
  3128  
  3129  // BridgeTransferFuncSigs maps the 4-byte function signature to its string representation.
  3130  // Deprecated: Use BridgeTransferMetaData.Sigs instead.
  3131  var BridgeTransferFuncSigs = BridgeTransferMetaData.Sigs
  3132  
  3133  // BridgeTransfer is an auto generated Go binding around a Klaytn contract.
  3134  type BridgeTransfer struct {
  3135  	BridgeTransferCaller     // Read-only binding to the contract
  3136  	BridgeTransferTransactor // Write-only binding to the contract
  3137  	BridgeTransferFilterer   // Log filterer for contract events
  3138  }
  3139  
  3140  // BridgeTransferCaller is an auto generated read-only Go binding around a Klaytn contract.
  3141  type BridgeTransferCaller struct {
  3142  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3143  }
  3144  
  3145  // BridgeTransferTransactor is an auto generated write-only Go binding around a Klaytn contract.
  3146  type BridgeTransferTransactor struct {
  3147  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3148  }
  3149  
  3150  // BridgeTransferFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  3151  type BridgeTransferFilterer struct {
  3152  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3153  }
  3154  
  3155  // BridgeTransferSession is an auto generated Go binding around a Klaytn contract,
  3156  // with pre-set call and transact options.
  3157  type BridgeTransferSession struct {
  3158  	Contract     *BridgeTransfer   // Generic contract binding to set the session for
  3159  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  3160  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  3161  }
  3162  
  3163  // BridgeTransferCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  3164  // with pre-set call options.
  3165  type BridgeTransferCallerSession struct {
  3166  	Contract *BridgeTransferCaller // Generic contract caller binding to set the session for
  3167  	CallOpts bind.CallOpts         // Call options to use throughout this session
  3168  }
  3169  
  3170  // BridgeTransferTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  3171  // with pre-set transact options.
  3172  type BridgeTransferTransactorSession struct {
  3173  	Contract     *BridgeTransferTransactor // Generic contract transactor binding to set the session for
  3174  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  3175  }
  3176  
  3177  // BridgeTransferRaw is an auto generated low-level Go binding around a Klaytn contract.
  3178  type BridgeTransferRaw struct {
  3179  	Contract *BridgeTransfer // Generic contract binding to access the raw methods on
  3180  }
  3181  
  3182  // BridgeTransferCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  3183  type BridgeTransferCallerRaw struct {
  3184  	Contract *BridgeTransferCaller // Generic read-only contract binding to access the raw methods on
  3185  }
  3186  
  3187  // BridgeTransferTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  3188  type BridgeTransferTransactorRaw struct {
  3189  	Contract *BridgeTransferTransactor // Generic write-only contract binding to access the raw methods on
  3190  }
  3191  
  3192  // NewBridgeTransfer creates a new instance of BridgeTransfer, bound to a specific deployed contract.
  3193  func NewBridgeTransfer(address common.Address, backend bind.ContractBackend) (*BridgeTransfer, error) {
  3194  	contract, err := bindBridgeTransfer(address, backend, backend, backend)
  3195  	if err != nil {
  3196  		return nil, err
  3197  	}
  3198  	return &BridgeTransfer{BridgeTransferCaller: BridgeTransferCaller{contract: contract}, BridgeTransferTransactor: BridgeTransferTransactor{contract: contract}, BridgeTransferFilterer: BridgeTransferFilterer{contract: contract}}, nil
  3199  }
  3200  
  3201  // NewBridgeTransferCaller creates a new read-only instance of BridgeTransfer, bound to a specific deployed contract.
  3202  func NewBridgeTransferCaller(address common.Address, caller bind.ContractCaller) (*BridgeTransferCaller, error) {
  3203  	contract, err := bindBridgeTransfer(address, caller, nil, nil)
  3204  	if err != nil {
  3205  		return nil, err
  3206  	}
  3207  	return &BridgeTransferCaller{contract: contract}, nil
  3208  }
  3209  
  3210  // NewBridgeTransferTransactor creates a new write-only instance of BridgeTransfer, bound to a specific deployed contract.
  3211  func NewBridgeTransferTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferTransactor, error) {
  3212  	contract, err := bindBridgeTransfer(address, nil, transactor, nil)
  3213  	if err != nil {
  3214  		return nil, err
  3215  	}
  3216  	return &BridgeTransferTransactor{contract: contract}, nil
  3217  }
  3218  
  3219  // NewBridgeTransferFilterer creates a new log filterer instance of BridgeTransfer, bound to a specific deployed contract.
  3220  func NewBridgeTransferFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferFilterer, error) {
  3221  	contract, err := bindBridgeTransfer(address, nil, nil, filterer)
  3222  	if err != nil {
  3223  		return nil, err
  3224  	}
  3225  	return &BridgeTransferFilterer{contract: contract}, nil
  3226  }
  3227  
  3228  // bindBridgeTransfer binds a generic wrapper to an already deployed contract.
  3229  func bindBridgeTransfer(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3230  	parsed, err := BridgeTransferMetaData.GetAbi()
  3231  	if err != nil {
  3232  		return nil, err
  3233  	}
  3234  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  3235  }
  3236  
  3237  // Call invokes the (constant) contract method with params as input values and
  3238  // sets the output to result. The result type might be a single field for simple
  3239  // returns, a slice of interfaces for anonymous returns and a struct for named
  3240  // returns.
  3241  func (_BridgeTransfer *BridgeTransferRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3242  	return _BridgeTransfer.Contract.BridgeTransferCaller.contract.Call(opts, result, method, params...)
  3243  }
  3244  
  3245  // Transfer initiates a plain transaction to move funds to the contract, calling
  3246  // its default method if one is available.
  3247  func (_BridgeTransfer *BridgeTransferRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3248  	return _BridgeTransfer.Contract.BridgeTransferTransactor.contract.Transfer(opts)
  3249  }
  3250  
  3251  // Transact invokes the (paid) contract method with params as input values.
  3252  func (_BridgeTransfer *BridgeTransferRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3253  	return _BridgeTransfer.Contract.BridgeTransferTransactor.contract.Transact(opts, method, params...)
  3254  }
  3255  
  3256  // Call invokes the (constant) contract method with params as input values and
  3257  // sets the output to result. The result type might be a single field for simple
  3258  // returns, a slice of interfaces for anonymous returns and a struct for named
  3259  // returns.
  3260  func (_BridgeTransfer *BridgeTransferCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3261  	return _BridgeTransfer.Contract.contract.Call(opts, result, method, params...)
  3262  }
  3263  
  3264  // Transfer initiates a plain transaction to move funds to the contract, calling
  3265  // its default method if one is available.
  3266  func (_BridgeTransfer *BridgeTransferTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3267  	return _BridgeTransfer.Contract.contract.Transfer(opts)
  3268  }
  3269  
  3270  // Transact invokes the (paid) contract method with params as input values.
  3271  func (_BridgeTransfer *BridgeTransferTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3272  	return _BridgeTransfer.Contract.contract.Transact(opts, method, params...)
  3273  }
  3274  
  3275  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  3276  //
  3277  // Solidity: function MAX_OPERATOR() view returns(uint64)
  3278  func (_BridgeTransfer *BridgeTransferCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  3279  	var out []interface{}
  3280  	err := _BridgeTransfer.contract.Call(opts, &out, "MAX_OPERATOR")
  3281  
  3282  	if err != nil {
  3283  		return *new(uint64), err
  3284  	}
  3285  
  3286  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3287  
  3288  	return out0, err
  3289  
  3290  }
  3291  
  3292  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  3293  //
  3294  // Solidity: function MAX_OPERATOR() view returns(uint64)
  3295  func (_BridgeTransfer *BridgeTransferSession) MAXOPERATOR() (uint64, error) {
  3296  	return _BridgeTransfer.Contract.MAXOPERATOR(&_BridgeTransfer.CallOpts)
  3297  }
  3298  
  3299  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  3300  //
  3301  // Solidity: function MAX_OPERATOR() view returns(uint64)
  3302  func (_BridgeTransfer *BridgeTransferCallerSession) MAXOPERATOR() (uint64, error) {
  3303  	return _BridgeTransfer.Contract.MAXOPERATOR(&_BridgeTransfer.CallOpts)
  3304  }
  3305  
  3306  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  3307  //
  3308  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  3309  func (_BridgeTransfer *BridgeTransferCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  3310  	var out []interface{}
  3311  	err := _BridgeTransfer.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  3312  
  3313  	if err != nil {
  3314  		return *new(bool), err
  3315  	}
  3316  
  3317  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3318  
  3319  	return out0, err
  3320  
  3321  }
  3322  
  3323  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  3324  //
  3325  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  3326  func (_BridgeTransfer *BridgeTransferSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  3327  	return _BridgeTransfer.Contract.ClosedValueTransferVotes(&_BridgeTransfer.CallOpts, arg0)
  3328  }
  3329  
  3330  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  3331  //
  3332  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  3333  func (_BridgeTransfer *BridgeTransferCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  3334  	return _BridgeTransfer.Contract.ClosedValueTransferVotes(&_BridgeTransfer.CallOpts, arg0)
  3335  }
  3336  
  3337  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  3338  //
  3339  // Solidity: function configurationNonce() view returns(uint64)
  3340  func (_BridgeTransfer *BridgeTransferCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  3341  	var out []interface{}
  3342  	err := _BridgeTransfer.contract.Call(opts, &out, "configurationNonce")
  3343  
  3344  	if err != nil {
  3345  		return *new(uint64), err
  3346  	}
  3347  
  3348  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3349  
  3350  	return out0, err
  3351  
  3352  }
  3353  
  3354  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  3355  //
  3356  // Solidity: function configurationNonce() view returns(uint64)
  3357  func (_BridgeTransfer *BridgeTransferSession) ConfigurationNonce() (uint64, error) {
  3358  	return _BridgeTransfer.Contract.ConfigurationNonce(&_BridgeTransfer.CallOpts)
  3359  }
  3360  
  3361  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  3362  //
  3363  // Solidity: function configurationNonce() view returns(uint64)
  3364  func (_BridgeTransfer *BridgeTransferCallerSession) ConfigurationNonce() (uint64, error) {
  3365  	return _BridgeTransfer.Contract.ConfigurationNonce(&_BridgeTransfer.CallOpts)
  3366  }
  3367  
  3368  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  3369  //
  3370  // Solidity: function feeOfERC20(address ) view returns(uint256)
  3371  func (_BridgeTransfer *BridgeTransferCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  3372  	var out []interface{}
  3373  	err := _BridgeTransfer.contract.Call(opts, &out, "feeOfERC20", arg0)
  3374  
  3375  	if err != nil {
  3376  		return *new(*big.Int), err
  3377  	}
  3378  
  3379  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3380  
  3381  	return out0, err
  3382  
  3383  }
  3384  
  3385  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  3386  //
  3387  // Solidity: function feeOfERC20(address ) view returns(uint256)
  3388  func (_BridgeTransfer *BridgeTransferSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  3389  	return _BridgeTransfer.Contract.FeeOfERC20(&_BridgeTransfer.CallOpts, arg0)
  3390  }
  3391  
  3392  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  3393  //
  3394  // Solidity: function feeOfERC20(address ) view returns(uint256)
  3395  func (_BridgeTransfer *BridgeTransferCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  3396  	return _BridgeTransfer.Contract.FeeOfERC20(&_BridgeTransfer.CallOpts, arg0)
  3397  }
  3398  
  3399  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  3400  //
  3401  // Solidity: function feeOfKLAY() view returns(uint256)
  3402  func (_BridgeTransfer *BridgeTransferCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
  3403  	var out []interface{}
  3404  	err := _BridgeTransfer.contract.Call(opts, &out, "feeOfKLAY")
  3405  
  3406  	if err != nil {
  3407  		return *new(*big.Int), err
  3408  	}
  3409  
  3410  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3411  
  3412  	return out0, err
  3413  
  3414  }
  3415  
  3416  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  3417  //
  3418  // Solidity: function feeOfKLAY() view returns(uint256)
  3419  func (_BridgeTransfer *BridgeTransferSession) FeeOfKLAY() (*big.Int, error) {
  3420  	return _BridgeTransfer.Contract.FeeOfKLAY(&_BridgeTransfer.CallOpts)
  3421  }
  3422  
  3423  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  3424  //
  3425  // Solidity: function feeOfKLAY() view returns(uint256)
  3426  func (_BridgeTransfer *BridgeTransferCallerSession) FeeOfKLAY() (*big.Int, error) {
  3427  	return _BridgeTransfer.Contract.FeeOfKLAY(&_BridgeTransfer.CallOpts)
  3428  }
  3429  
  3430  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  3431  //
  3432  // Solidity: function feeReceiver() view returns(address)
  3433  func (_BridgeTransfer *BridgeTransferCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
  3434  	var out []interface{}
  3435  	err := _BridgeTransfer.contract.Call(opts, &out, "feeReceiver")
  3436  
  3437  	if err != nil {
  3438  		return *new(common.Address), err
  3439  	}
  3440  
  3441  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3442  
  3443  	return out0, err
  3444  
  3445  }
  3446  
  3447  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  3448  //
  3449  // Solidity: function feeReceiver() view returns(address)
  3450  func (_BridgeTransfer *BridgeTransferSession) FeeReceiver() (common.Address, error) {
  3451  	return _BridgeTransfer.Contract.FeeReceiver(&_BridgeTransfer.CallOpts)
  3452  }
  3453  
  3454  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  3455  //
  3456  // Solidity: function feeReceiver() view returns(address)
  3457  func (_BridgeTransfer *BridgeTransferCallerSession) FeeReceiver() (common.Address, error) {
  3458  	return _BridgeTransfer.Contract.FeeReceiver(&_BridgeTransfer.CallOpts)
  3459  }
  3460  
  3461  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  3462  //
  3463  // Solidity: function getOperatorList() view returns(address[])
  3464  func (_BridgeTransfer *BridgeTransferCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  3465  	var out []interface{}
  3466  	err := _BridgeTransfer.contract.Call(opts, &out, "getOperatorList")
  3467  
  3468  	if err != nil {
  3469  		return *new([]common.Address), err
  3470  	}
  3471  
  3472  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  3473  
  3474  	return out0, err
  3475  
  3476  }
  3477  
  3478  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  3479  //
  3480  // Solidity: function getOperatorList() view returns(address[])
  3481  func (_BridgeTransfer *BridgeTransferSession) GetOperatorList() ([]common.Address, error) {
  3482  	return _BridgeTransfer.Contract.GetOperatorList(&_BridgeTransfer.CallOpts)
  3483  }
  3484  
  3485  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  3486  //
  3487  // Solidity: function getOperatorList() view returns(address[])
  3488  func (_BridgeTransfer *BridgeTransferCallerSession) GetOperatorList() ([]common.Address, error) {
  3489  	return _BridgeTransfer.Contract.GetOperatorList(&_BridgeTransfer.CallOpts)
  3490  }
  3491  
  3492  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  3493  //
  3494  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  3495  func (_BridgeTransfer *BridgeTransferCaller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
  3496  	var out []interface{}
  3497  	err := _BridgeTransfer.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
  3498  
  3499  	if err != nil {
  3500  		return *new(uint64), err
  3501  	}
  3502  
  3503  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3504  
  3505  	return out0, err
  3506  
  3507  }
  3508  
  3509  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  3510  //
  3511  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  3512  func (_BridgeTransfer *BridgeTransferSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  3513  	return _BridgeTransfer.Contract.HandleNoncesToBlockNums(&_BridgeTransfer.CallOpts, arg0)
  3514  }
  3515  
  3516  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  3517  //
  3518  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  3519  func (_BridgeTransfer *BridgeTransferCallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  3520  	return _BridgeTransfer.Contract.HandleNoncesToBlockNums(&_BridgeTransfer.CallOpts, arg0)
  3521  }
  3522  
  3523  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  3524  //
  3525  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  3526  func (_BridgeTransfer *BridgeTransferCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  3527  	var out []interface{}
  3528  	err := _BridgeTransfer.contract.Call(opts, &out, "handledRequestTx", arg0)
  3529  
  3530  	if err != nil {
  3531  		return *new(bool), err
  3532  	}
  3533  
  3534  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3535  
  3536  	return out0, err
  3537  
  3538  }
  3539  
  3540  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  3541  //
  3542  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  3543  func (_BridgeTransfer *BridgeTransferSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  3544  	return _BridgeTransfer.Contract.HandledRequestTx(&_BridgeTransfer.CallOpts, arg0)
  3545  }
  3546  
  3547  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  3548  //
  3549  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  3550  func (_BridgeTransfer *BridgeTransferCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  3551  	return _BridgeTransfer.Contract.HandledRequestTx(&_BridgeTransfer.CallOpts, arg0)
  3552  }
  3553  
  3554  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  3555  //
  3556  // Solidity: function isOwner() view returns(bool)
  3557  func (_BridgeTransfer *BridgeTransferCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  3558  	var out []interface{}
  3559  	err := _BridgeTransfer.contract.Call(opts, &out, "isOwner")
  3560  
  3561  	if err != nil {
  3562  		return *new(bool), err
  3563  	}
  3564  
  3565  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3566  
  3567  	return out0, err
  3568  
  3569  }
  3570  
  3571  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  3572  //
  3573  // Solidity: function isOwner() view returns(bool)
  3574  func (_BridgeTransfer *BridgeTransferSession) IsOwner() (bool, error) {
  3575  	return _BridgeTransfer.Contract.IsOwner(&_BridgeTransfer.CallOpts)
  3576  }
  3577  
  3578  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  3579  //
  3580  // Solidity: function isOwner() view returns(bool)
  3581  func (_BridgeTransfer *BridgeTransferCallerSession) IsOwner() (bool, error) {
  3582  	return _BridgeTransfer.Contract.IsOwner(&_BridgeTransfer.CallOpts)
  3583  }
  3584  
  3585  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  3586  //
  3587  // Solidity: function isRunning() view returns(bool)
  3588  func (_BridgeTransfer *BridgeTransferCaller) IsRunning(opts *bind.CallOpts) (bool, error) {
  3589  	var out []interface{}
  3590  	err := _BridgeTransfer.contract.Call(opts, &out, "isRunning")
  3591  
  3592  	if err != nil {
  3593  		return *new(bool), err
  3594  	}
  3595  
  3596  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3597  
  3598  	return out0, err
  3599  
  3600  }
  3601  
  3602  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  3603  //
  3604  // Solidity: function isRunning() view returns(bool)
  3605  func (_BridgeTransfer *BridgeTransferSession) IsRunning() (bool, error) {
  3606  	return _BridgeTransfer.Contract.IsRunning(&_BridgeTransfer.CallOpts)
  3607  }
  3608  
  3609  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  3610  //
  3611  // Solidity: function isRunning() view returns(bool)
  3612  func (_BridgeTransfer *BridgeTransferCallerSession) IsRunning() (bool, error) {
  3613  	return _BridgeTransfer.Contract.IsRunning(&_BridgeTransfer.CallOpts)
  3614  }
  3615  
  3616  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  3617  //
  3618  // Solidity: function lowerHandleNonce() view returns(uint64)
  3619  func (_BridgeTransfer *BridgeTransferCaller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
  3620  	var out []interface{}
  3621  	err := _BridgeTransfer.contract.Call(opts, &out, "lowerHandleNonce")
  3622  
  3623  	if err != nil {
  3624  		return *new(uint64), err
  3625  	}
  3626  
  3627  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3628  
  3629  	return out0, err
  3630  
  3631  }
  3632  
  3633  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  3634  //
  3635  // Solidity: function lowerHandleNonce() view returns(uint64)
  3636  func (_BridgeTransfer *BridgeTransferSession) LowerHandleNonce() (uint64, error) {
  3637  	return _BridgeTransfer.Contract.LowerHandleNonce(&_BridgeTransfer.CallOpts)
  3638  }
  3639  
  3640  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  3641  //
  3642  // Solidity: function lowerHandleNonce() view returns(uint64)
  3643  func (_BridgeTransfer *BridgeTransferCallerSession) LowerHandleNonce() (uint64, error) {
  3644  	return _BridgeTransfer.Contract.LowerHandleNonce(&_BridgeTransfer.CallOpts)
  3645  }
  3646  
  3647  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  3648  //
  3649  // Solidity: function modeMintBurn() view returns(bool)
  3650  func (_BridgeTransfer *BridgeTransferCaller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
  3651  	var out []interface{}
  3652  	err := _BridgeTransfer.contract.Call(opts, &out, "modeMintBurn")
  3653  
  3654  	if err != nil {
  3655  		return *new(bool), err
  3656  	}
  3657  
  3658  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3659  
  3660  	return out0, err
  3661  
  3662  }
  3663  
  3664  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  3665  //
  3666  // Solidity: function modeMintBurn() view returns(bool)
  3667  func (_BridgeTransfer *BridgeTransferSession) ModeMintBurn() (bool, error) {
  3668  	return _BridgeTransfer.Contract.ModeMintBurn(&_BridgeTransfer.CallOpts)
  3669  }
  3670  
  3671  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  3672  //
  3673  // Solidity: function modeMintBurn() view returns(bool)
  3674  func (_BridgeTransfer *BridgeTransferCallerSession) ModeMintBurn() (bool, error) {
  3675  	return _BridgeTransfer.Contract.ModeMintBurn(&_BridgeTransfer.CallOpts)
  3676  }
  3677  
  3678  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  3679  //
  3680  // Solidity: function operatorList(uint256 ) view returns(address)
  3681  func (_BridgeTransfer *BridgeTransferCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  3682  	var out []interface{}
  3683  	err := _BridgeTransfer.contract.Call(opts, &out, "operatorList", arg0)
  3684  
  3685  	if err != nil {
  3686  		return *new(common.Address), err
  3687  	}
  3688  
  3689  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3690  
  3691  	return out0, err
  3692  
  3693  }
  3694  
  3695  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  3696  //
  3697  // Solidity: function operatorList(uint256 ) view returns(address)
  3698  func (_BridgeTransfer *BridgeTransferSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  3699  	return _BridgeTransfer.Contract.OperatorList(&_BridgeTransfer.CallOpts, arg0)
  3700  }
  3701  
  3702  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  3703  //
  3704  // Solidity: function operatorList(uint256 ) view returns(address)
  3705  func (_BridgeTransfer *BridgeTransferCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  3706  	return _BridgeTransfer.Contract.OperatorList(&_BridgeTransfer.CallOpts, arg0)
  3707  }
  3708  
  3709  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  3710  //
  3711  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  3712  func (_BridgeTransfer *BridgeTransferCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  3713  	var out []interface{}
  3714  	err := _BridgeTransfer.contract.Call(opts, &out, "operatorThresholds", arg0)
  3715  
  3716  	if err != nil {
  3717  		return *new(uint8), err
  3718  	}
  3719  
  3720  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  3721  
  3722  	return out0, err
  3723  
  3724  }
  3725  
  3726  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  3727  //
  3728  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  3729  func (_BridgeTransfer *BridgeTransferSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  3730  	return _BridgeTransfer.Contract.OperatorThresholds(&_BridgeTransfer.CallOpts, arg0)
  3731  }
  3732  
  3733  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  3734  //
  3735  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  3736  func (_BridgeTransfer *BridgeTransferCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  3737  	return _BridgeTransfer.Contract.OperatorThresholds(&_BridgeTransfer.CallOpts, arg0)
  3738  }
  3739  
  3740  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  3741  //
  3742  // Solidity: function operators(address ) view returns(bool)
  3743  func (_BridgeTransfer *BridgeTransferCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  3744  	var out []interface{}
  3745  	err := _BridgeTransfer.contract.Call(opts, &out, "operators", arg0)
  3746  
  3747  	if err != nil {
  3748  		return *new(bool), err
  3749  	}
  3750  
  3751  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3752  
  3753  	return out0, err
  3754  
  3755  }
  3756  
  3757  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  3758  //
  3759  // Solidity: function operators(address ) view returns(bool)
  3760  func (_BridgeTransfer *BridgeTransferSession) Operators(arg0 common.Address) (bool, error) {
  3761  	return _BridgeTransfer.Contract.Operators(&_BridgeTransfer.CallOpts, arg0)
  3762  }
  3763  
  3764  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  3765  //
  3766  // Solidity: function operators(address ) view returns(bool)
  3767  func (_BridgeTransfer *BridgeTransferCallerSession) Operators(arg0 common.Address) (bool, error) {
  3768  	return _BridgeTransfer.Contract.Operators(&_BridgeTransfer.CallOpts, arg0)
  3769  }
  3770  
  3771  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  3772  //
  3773  // Solidity: function owner() view returns(address)
  3774  func (_BridgeTransfer *BridgeTransferCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  3775  	var out []interface{}
  3776  	err := _BridgeTransfer.contract.Call(opts, &out, "owner")
  3777  
  3778  	if err != nil {
  3779  		return *new(common.Address), err
  3780  	}
  3781  
  3782  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3783  
  3784  	return out0, err
  3785  
  3786  }
  3787  
  3788  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  3789  //
  3790  // Solidity: function owner() view returns(address)
  3791  func (_BridgeTransfer *BridgeTransferSession) Owner() (common.Address, error) {
  3792  	return _BridgeTransfer.Contract.Owner(&_BridgeTransfer.CallOpts)
  3793  }
  3794  
  3795  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  3796  //
  3797  // Solidity: function owner() view returns(address)
  3798  func (_BridgeTransfer *BridgeTransferCallerSession) Owner() (common.Address, error) {
  3799  	return _BridgeTransfer.Contract.Owner(&_BridgeTransfer.CallOpts)
  3800  }
  3801  
  3802  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  3803  //
  3804  // Solidity: function recoveryBlockNumber() view returns(uint64)
  3805  func (_BridgeTransfer *BridgeTransferCaller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
  3806  	var out []interface{}
  3807  	err := _BridgeTransfer.contract.Call(opts, &out, "recoveryBlockNumber")
  3808  
  3809  	if err != nil {
  3810  		return *new(uint64), err
  3811  	}
  3812  
  3813  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3814  
  3815  	return out0, err
  3816  
  3817  }
  3818  
  3819  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  3820  //
  3821  // Solidity: function recoveryBlockNumber() view returns(uint64)
  3822  func (_BridgeTransfer *BridgeTransferSession) RecoveryBlockNumber() (uint64, error) {
  3823  	return _BridgeTransfer.Contract.RecoveryBlockNumber(&_BridgeTransfer.CallOpts)
  3824  }
  3825  
  3826  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  3827  //
  3828  // Solidity: function recoveryBlockNumber() view returns(uint64)
  3829  func (_BridgeTransfer *BridgeTransferCallerSession) RecoveryBlockNumber() (uint64, error) {
  3830  	return _BridgeTransfer.Contract.RecoveryBlockNumber(&_BridgeTransfer.CallOpts)
  3831  }
  3832  
  3833  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  3834  //
  3835  // Solidity: function requestNonce() view returns(uint64)
  3836  func (_BridgeTransfer *BridgeTransferCaller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
  3837  	var out []interface{}
  3838  	err := _BridgeTransfer.contract.Call(opts, &out, "requestNonce")
  3839  
  3840  	if err != nil {
  3841  		return *new(uint64), err
  3842  	}
  3843  
  3844  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3845  
  3846  	return out0, err
  3847  
  3848  }
  3849  
  3850  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  3851  //
  3852  // Solidity: function requestNonce() view returns(uint64)
  3853  func (_BridgeTransfer *BridgeTransferSession) RequestNonce() (uint64, error) {
  3854  	return _BridgeTransfer.Contract.RequestNonce(&_BridgeTransfer.CallOpts)
  3855  }
  3856  
  3857  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  3858  //
  3859  // Solidity: function requestNonce() view returns(uint64)
  3860  func (_BridgeTransfer *BridgeTransferCallerSession) RequestNonce() (uint64, error) {
  3861  	return _BridgeTransfer.Contract.RequestNonce(&_BridgeTransfer.CallOpts)
  3862  }
  3863  
  3864  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  3865  //
  3866  // Solidity: function upperHandleNonce() view returns(uint64)
  3867  func (_BridgeTransfer *BridgeTransferCaller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
  3868  	var out []interface{}
  3869  	err := _BridgeTransfer.contract.Call(opts, &out, "upperHandleNonce")
  3870  
  3871  	if err != nil {
  3872  		return *new(uint64), err
  3873  	}
  3874  
  3875  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  3876  
  3877  	return out0, err
  3878  
  3879  }
  3880  
  3881  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  3882  //
  3883  // Solidity: function upperHandleNonce() view returns(uint64)
  3884  func (_BridgeTransfer *BridgeTransferSession) UpperHandleNonce() (uint64, error) {
  3885  	return _BridgeTransfer.Contract.UpperHandleNonce(&_BridgeTransfer.CallOpts)
  3886  }
  3887  
  3888  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  3889  //
  3890  // Solidity: function upperHandleNonce() view returns(uint64)
  3891  func (_BridgeTransfer *BridgeTransferCallerSession) UpperHandleNonce() (uint64, error) {
  3892  	return _BridgeTransfer.Contract.UpperHandleNonce(&_BridgeTransfer.CallOpts)
  3893  }
  3894  
  3895  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  3896  //
  3897  // Solidity: function deregisterOperator(address _operator) returns()
  3898  func (_BridgeTransfer *BridgeTransferTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  3899  	return _BridgeTransfer.contract.Transact(opts, "deregisterOperator", _operator)
  3900  }
  3901  
  3902  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  3903  //
  3904  // Solidity: function deregisterOperator(address _operator) returns()
  3905  func (_BridgeTransfer *BridgeTransferSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  3906  	return _BridgeTransfer.Contract.DeregisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  3907  }
  3908  
  3909  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  3910  //
  3911  // Solidity: function deregisterOperator(address _operator) returns()
  3912  func (_BridgeTransfer *BridgeTransferTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  3913  	return _BridgeTransfer.Contract.DeregisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  3914  }
  3915  
  3916  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  3917  //
  3918  // Solidity: function registerOperator(address _operator) returns()
  3919  func (_BridgeTransfer *BridgeTransferTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  3920  	return _BridgeTransfer.contract.Transact(opts, "registerOperator", _operator)
  3921  }
  3922  
  3923  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  3924  //
  3925  // Solidity: function registerOperator(address _operator) returns()
  3926  func (_BridgeTransfer *BridgeTransferSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  3927  	return _BridgeTransfer.Contract.RegisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  3928  }
  3929  
  3930  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  3931  //
  3932  // Solidity: function registerOperator(address _operator) returns()
  3933  func (_BridgeTransfer *BridgeTransferTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  3934  	return _BridgeTransfer.Contract.RegisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  3935  }
  3936  
  3937  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  3938  //
  3939  // Solidity: function renounceOwnership() returns()
  3940  func (_BridgeTransfer *BridgeTransferTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  3941  	return _BridgeTransfer.contract.Transact(opts, "renounceOwnership")
  3942  }
  3943  
  3944  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  3945  //
  3946  // Solidity: function renounceOwnership() returns()
  3947  func (_BridgeTransfer *BridgeTransferSession) RenounceOwnership() (*types.Transaction, error) {
  3948  	return _BridgeTransfer.Contract.RenounceOwnership(&_BridgeTransfer.TransactOpts)
  3949  }
  3950  
  3951  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  3952  //
  3953  // Solidity: function renounceOwnership() returns()
  3954  func (_BridgeTransfer *BridgeTransferTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  3955  	return _BridgeTransfer.Contract.RenounceOwnership(&_BridgeTransfer.TransactOpts)
  3956  }
  3957  
  3958  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  3959  //
  3960  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  3961  func (_BridgeTransfer *BridgeTransferTransactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
  3962  	return _BridgeTransfer.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
  3963  }
  3964  
  3965  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  3966  //
  3967  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  3968  func (_BridgeTransfer *BridgeTransferSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  3969  	return _BridgeTransfer.Contract.SetFeeReceiver(&_BridgeTransfer.TransactOpts, _feeReceiver)
  3970  }
  3971  
  3972  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  3973  //
  3974  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  3975  func (_BridgeTransfer *BridgeTransferTransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  3976  	return _BridgeTransfer.Contract.SetFeeReceiver(&_BridgeTransfer.TransactOpts, _feeReceiver)
  3977  }
  3978  
  3979  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  3980  //
  3981  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  3982  func (_BridgeTransfer *BridgeTransferTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  3983  	return _BridgeTransfer.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  3984  }
  3985  
  3986  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  3987  //
  3988  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  3989  func (_BridgeTransfer *BridgeTransferSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  3990  	return _BridgeTransfer.Contract.SetOperatorThreshold(&_BridgeTransfer.TransactOpts, _voteType, _threshold)
  3991  }
  3992  
  3993  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  3994  //
  3995  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  3996  func (_BridgeTransfer *BridgeTransferTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  3997  	return _BridgeTransfer.Contract.SetOperatorThreshold(&_BridgeTransfer.TransactOpts, _voteType, _threshold)
  3998  }
  3999  
  4000  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  4001  //
  4002  // Solidity: function start(bool _status) returns()
  4003  func (_BridgeTransfer *BridgeTransferTransactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
  4004  	return _BridgeTransfer.contract.Transact(opts, "start", _status)
  4005  }
  4006  
  4007  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  4008  //
  4009  // Solidity: function start(bool _status) returns()
  4010  func (_BridgeTransfer *BridgeTransferSession) Start(_status bool) (*types.Transaction, error) {
  4011  	return _BridgeTransfer.Contract.Start(&_BridgeTransfer.TransactOpts, _status)
  4012  }
  4013  
  4014  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  4015  //
  4016  // Solidity: function start(bool _status) returns()
  4017  func (_BridgeTransfer *BridgeTransferTransactorSession) Start(_status bool) (*types.Transaction, error) {
  4018  	return _BridgeTransfer.Contract.Start(&_BridgeTransfer.TransactOpts, _status)
  4019  }
  4020  
  4021  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4022  //
  4023  // Solidity: function transferOwnership(address newOwner) returns()
  4024  func (_BridgeTransfer *BridgeTransferTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  4025  	return _BridgeTransfer.contract.Transact(opts, "transferOwnership", newOwner)
  4026  }
  4027  
  4028  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4029  //
  4030  // Solidity: function transferOwnership(address newOwner) returns()
  4031  func (_BridgeTransfer *BridgeTransferSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  4032  	return _BridgeTransfer.Contract.TransferOwnership(&_BridgeTransfer.TransactOpts, newOwner)
  4033  }
  4034  
  4035  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4036  //
  4037  // Solidity: function transferOwnership(address newOwner) returns()
  4038  func (_BridgeTransfer *BridgeTransferTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  4039  	return _BridgeTransfer.Contract.TransferOwnership(&_BridgeTransfer.TransactOpts, newOwner)
  4040  }
  4041  
  4042  // BridgeTransferERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransfer contract.
  4043  type BridgeTransferERC20FeeChangedIterator struct {
  4044  	Event *BridgeTransferERC20FeeChanged // Event containing the contract specifics and raw log
  4045  
  4046  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4047  	event    string              // Event name to use for unpacking event data
  4048  
  4049  	logs chan types.Log      // Log channel receiving the found contract events
  4050  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4051  	done bool                // Whether the subscription completed delivering logs
  4052  	fail error               // Occurred error to stop iteration
  4053  }
  4054  
  4055  // Next advances the iterator to the subsequent event, returning whether there
  4056  // are any more events found. In case of a retrieval or parsing error, false is
  4057  // returned and Error() can be queried for the exact failure.
  4058  func (it *BridgeTransferERC20FeeChangedIterator) Next() bool {
  4059  	// If the iterator failed, stop iterating
  4060  	if it.fail != nil {
  4061  		return false
  4062  	}
  4063  	// If the iterator completed, deliver directly whatever's available
  4064  	if it.done {
  4065  		select {
  4066  		case log := <-it.logs:
  4067  			it.Event = new(BridgeTransferERC20FeeChanged)
  4068  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4069  				it.fail = err
  4070  				return false
  4071  			}
  4072  			it.Event.Raw = log
  4073  			return true
  4074  
  4075  		default:
  4076  			return false
  4077  		}
  4078  	}
  4079  	// Iterator still in progress, wait for either a data or an error event
  4080  	select {
  4081  	case log := <-it.logs:
  4082  		it.Event = new(BridgeTransferERC20FeeChanged)
  4083  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4084  			it.fail = err
  4085  			return false
  4086  		}
  4087  		it.Event.Raw = log
  4088  		return true
  4089  
  4090  	case err := <-it.sub.Err():
  4091  		it.done = true
  4092  		it.fail = err
  4093  		return it.Next()
  4094  	}
  4095  }
  4096  
  4097  // Error returns any retrieval or parsing error occurred during filtering.
  4098  func (it *BridgeTransferERC20FeeChangedIterator) Error() error {
  4099  	return it.fail
  4100  }
  4101  
  4102  // Close terminates the iteration process, releasing any pending underlying
  4103  // resources.
  4104  func (it *BridgeTransferERC20FeeChangedIterator) Close() error {
  4105  	it.sub.Unsubscribe()
  4106  	return nil
  4107  }
  4108  
  4109  // BridgeTransferERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransfer contract.
  4110  type BridgeTransferERC20FeeChanged struct {
  4111  	Token common.Address
  4112  	Fee   *big.Int
  4113  	Raw   types.Log // Blockchain specific contextual infos
  4114  }
  4115  
  4116  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  4117  //
  4118  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  4119  func (_BridgeTransfer *BridgeTransferFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferERC20FeeChangedIterator, error) {
  4120  
  4121  	var tokenRule []interface{}
  4122  	for _, tokenItem := range token {
  4123  		tokenRule = append(tokenRule, tokenItem)
  4124  	}
  4125  	var feeRule []interface{}
  4126  	for _, feeItem := range fee {
  4127  		feeRule = append(feeRule, feeItem)
  4128  	}
  4129  
  4130  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  4131  	if err != nil {
  4132  		return nil, err
  4133  	}
  4134  	return &BridgeTransferERC20FeeChangedIterator{contract: _BridgeTransfer.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
  4135  }
  4136  
  4137  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  4138  //
  4139  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  4140  func (_BridgeTransfer *BridgeTransferFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
  4141  
  4142  	var tokenRule []interface{}
  4143  	for _, tokenItem := range token {
  4144  		tokenRule = append(tokenRule, tokenItem)
  4145  	}
  4146  	var feeRule []interface{}
  4147  	for _, feeItem := range fee {
  4148  		feeRule = append(feeRule, feeItem)
  4149  	}
  4150  
  4151  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  4152  	if err != nil {
  4153  		return nil, err
  4154  	}
  4155  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4156  		defer sub.Unsubscribe()
  4157  		for {
  4158  			select {
  4159  			case log := <-logs:
  4160  				// New log arrived, parse the event and forward to the user
  4161  				event := new(BridgeTransferERC20FeeChanged)
  4162  				if err := _BridgeTransfer.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  4163  					return err
  4164  				}
  4165  				event.Raw = log
  4166  
  4167  				select {
  4168  				case sink <- event:
  4169  				case err := <-sub.Err():
  4170  					return err
  4171  				case <-quit:
  4172  					return nil
  4173  				}
  4174  			case err := <-sub.Err():
  4175  				return err
  4176  			case <-quit:
  4177  				return nil
  4178  			}
  4179  		}
  4180  	}), nil
  4181  }
  4182  
  4183  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  4184  //
  4185  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  4186  func (_BridgeTransfer *BridgeTransferFilterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferERC20FeeChanged, error) {
  4187  	event := new(BridgeTransferERC20FeeChanged)
  4188  	if err := _BridgeTransfer.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  4189  		return nil, err
  4190  	}
  4191  	return event, nil
  4192  }
  4193  
  4194  // BridgeTransferFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransfer contract.
  4195  type BridgeTransferFeeReceiverChangedIterator struct {
  4196  	Event *BridgeTransferFeeReceiverChanged // Event containing the contract specifics and raw log
  4197  
  4198  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4199  	event    string              // Event name to use for unpacking event data
  4200  
  4201  	logs chan types.Log      // Log channel receiving the found contract events
  4202  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4203  	done bool                // Whether the subscription completed delivering logs
  4204  	fail error               // Occurred error to stop iteration
  4205  }
  4206  
  4207  // Next advances the iterator to the subsequent event, returning whether there
  4208  // are any more events found. In case of a retrieval or parsing error, false is
  4209  // returned and Error() can be queried for the exact failure.
  4210  func (it *BridgeTransferFeeReceiverChangedIterator) Next() bool {
  4211  	// If the iterator failed, stop iterating
  4212  	if it.fail != nil {
  4213  		return false
  4214  	}
  4215  	// If the iterator completed, deliver directly whatever's available
  4216  	if it.done {
  4217  		select {
  4218  		case log := <-it.logs:
  4219  			it.Event = new(BridgeTransferFeeReceiverChanged)
  4220  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4221  				it.fail = err
  4222  				return false
  4223  			}
  4224  			it.Event.Raw = log
  4225  			return true
  4226  
  4227  		default:
  4228  			return false
  4229  		}
  4230  	}
  4231  	// Iterator still in progress, wait for either a data or an error event
  4232  	select {
  4233  	case log := <-it.logs:
  4234  		it.Event = new(BridgeTransferFeeReceiverChanged)
  4235  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4236  			it.fail = err
  4237  			return false
  4238  		}
  4239  		it.Event.Raw = log
  4240  		return true
  4241  
  4242  	case err := <-it.sub.Err():
  4243  		it.done = true
  4244  		it.fail = err
  4245  		return it.Next()
  4246  	}
  4247  }
  4248  
  4249  // Error returns any retrieval or parsing error occurred during filtering.
  4250  func (it *BridgeTransferFeeReceiverChangedIterator) Error() error {
  4251  	return it.fail
  4252  }
  4253  
  4254  // Close terminates the iteration process, releasing any pending underlying
  4255  // resources.
  4256  func (it *BridgeTransferFeeReceiverChangedIterator) Close() error {
  4257  	it.sub.Unsubscribe()
  4258  	return nil
  4259  }
  4260  
  4261  // BridgeTransferFeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransfer contract.
  4262  type BridgeTransferFeeReceiverChanged struct {
  4263  	FeeReceiver common.Address
  4264  	Raw         types.Log // Blockchain specific contextual infos
  4265  }
  4266  
  4267  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  4268  //
  4269  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  4270  func (_BridgeTransfer *BridgeTransferFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferFeeReceiverChangedIterator, error) {
  4271  
  4272  	var feeReceiverRule []interface{}
  4273  	for _, feeReceiverItem := range feeReceiver {
  4274  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  4275  	}
  4276  
  4277  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  4278  	if err != nil {
  4279  		return nil, err
  4280  	}
  4281  	return &BridgeTransferFeeReceiverChangedIterator{contract: _BridgeTransfer.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
  4282  }
  4283  
  4284  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  4285  //
  4286  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  4287  func (_BridgeTransfer *BridgeTransferFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
  4288  
  4289  	var feeReceiverRule []interface{}
  4290  	for _, feeReceiverItem := range feeReceiver {
  4291  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  4292  	}
  4293  
  4294  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  4295  	if err != nil {
  4296  		return nil, err
  4297  	}
  4298  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4299  		defer sub.Unsubscribe()
  4300  		for {
  4301  			select {
  4302  			case log := <-logs:
  4303  				// New log arrived, parse the event and forward to the user
  4304  				event := new(BridgeTransferFeeReceiverChanged)
  4305  				if err := _BridgeTransfer.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  4306  					return err
  4307  				}
  4308  				event.Raw = log
  4309  
  4310  				select {
  4311  				case sink <- event:
  4312  				case err := <-sub.Err():
  4313  					return err
  4314  				case <-quit:
  4315  					return nil
  4316  				}
  4317  			case err := <-sub.Err():
  4318  				return err
  4319  			case <-quit:
  4320  				return nil
  4321  			}
  4322  		}
  4323  	}), nil
  4324  }
  4325  
  4326  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  4327  //
  4328  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  4329  func (_BridgeTransfer *BridgeTransferFilterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferFeeReceiverChanged, error) {
  4330  	event := new(BridgeTransferFeeReceiverChanged)
  4331  	if err := _BridgeTransfer.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  4332  		return nil, err
  4333  	}
  4334  	return event, nil
  4335  }
  4336  
  4337  // BridgeTransferHandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransfer contract.
  4338  type BridgeTransferHandleValueTransferIterator struct {
  4339  	Event *BridgeTransferHandleValueTransfer // Event containing the contract specifics and raw log
  4340  
  4341  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4342  	event    string              // Event name to use for unpacking event data
  4343  
  4344  	logs chan types.Log      // Log channel receiving the found contract events
  4345  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4346  	done bool                // Whether the subscription completed delivering logs
  4347  	fail error               // Occurred error to stop iteration
  4348  }
  4349  
  4350  // Next advances the iterator to the subsequent event, returning whether there
  4351  // are any more events found. In case of a retrieval or parsing error, false is
  4352  // returned and Error() can be queried for the exact failure.
  4353  func (it *BridgeTransferHandleValueTransferIterator) Next() bool {
  4354  	// If the iterator failed, stop iterating
  4355  	if it.fail != nil {
  4356  		return false
  4357  	}
  4358  	// If the iterator completed, deliver directly whatever's available
  4359  	if it.done {
  4360  		select {
  4361  		case log := <-it.logs:
  4362  			it.Event = new(BridgeTransferHandleValueTransfer)
  4363  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4364  				it.fail = err
  4365  				return false
  4366  			}
  4367  			it.Event.Raw = log
  4368  			return true
  4369  
  4370  		default:
  4371  			return false
  4372  		}
  4373  	}
  4374  	// Iterator still in progress, wait for either a data or an error event
  4375  	select {
  4376  	case log := <-it.logs:
  4377  		it.Event = new(BridgeTransferHandleValueTransfer)
  4378  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4379  			it.fail = err
  4380  			return false
  4381  		}
  4382  		it.Event.Raw = log
  4383  		return true
  4384  
  4385  	case err := <-it.sub.Err():
  4386  		it.done = true
  4387  		it.fail = err
  4388  		return it.Next()
  4389  	}
  4390  }
  4391  
  4392  // Error returns any retrieval or parsing error occurred during filtering.
  4393  func (it *BridgeTransferHandleValueTransferIterator) Error() error {
  4394  	return it.fail
  4395  }
  4396  
  4397  // Close terminates the iteration process, releasing any pending underlying
  4398  // resources.
  4399  func (it *BridgeTransferHandleValueTransferIterator) Close() error {
  4400  	it.sub.Unsubscribe()
  4401  	return nil
  4402  }
  4403  
  4404  // BridgeTransferHandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransfer contract.
  4405  type BridgeTransferHandleValueTransfer struct {
  4406  	RequestTxHash    [32]byte
  4407  	TokenType        uint8
  4408  	From             common.Address
  4409  	To               common.Address
  4410  	TokenAddress     common.Address
  4411  	ValueOrTokenId   *big.Int
  4412  	HandleNonce      uint64
  4413  	LowerHandleNonce uint64
  4414  	ExtraData        []byte
  4415  	Raw              types.Log // Blockchain specific contextual infos
  4416  }
  4417  
  4418  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  4419  //
  4420  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  4421  func (_BridgeTransfer *BridgeTransferFilterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferHandleValueTransferIterator, error) {
  4422  
  4423  	var fromRule []interface{}
  4424  	for _, fromItem := range from {
  4425  		fromRule = append(fromRule, fromItem)
  4426  	}
  4427  	var toRule []interface{}
  4428  	for _, toItem := range to {
  4429  		toRule = append(toRule, toItem)
  4430  	}
  4431  	var tokenAddressRule []interface{}
  4432  	for _, tokenAddressItem := range tokenAddress {
  4433  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  4434  	}
  4435  
  4436  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  4437  	if err != nil {
  4438  		return nil, err
  4439  	}
  4440  	return &BridgeTransferHandleValueTransferIterator{contract: _BridgeTransfer.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
  4441  }
  4442  
  4443  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  4444  //
  4445  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  4446  func (_BridgeTransfer *BridgeTransferFilterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferHandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  4447  
  4448  	var fromRule []interface{}
  4449  	for _, fromItem := range from {
  4450  		fromRule = append(fromRule, fromItem)
  4451  	}
  4452  	var toRule []interface{}
  4453  	for _, toItem := range to {
  4454  		toRule = append(toRule, toItem)
  4455  	}
  4456  	var tokenAddressRule []interface{}
  4457  	for _, tokenAddressItem := range tokenAddress {
  4458  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  4459  	}
  4460  
  4461  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  4462  	if err != nil {
  4463  		return nil, err
  4464  	}
  4465  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4466  		defer sub.Unsubscribe()
  4467  		for {
  4468  			select {
  4469  			case log := <-logs:
  4470  				// New log arrived, parse the event and forward to the user
  4471  				event := new(BridgeTransferHandleValueTransfer)
  4472  				if err := _BridgeTransfer.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  4473  					return err
  4474  				}
  4475  				event.Raw = log
  4476  
  4477  				select {
  4478  				case sink <- event:
  4479  				case err := <-sub.Err():
  4480  					return err
  4481  				case <-quit:
  4482  					return nil
  4483  				}
  4484  			case err := <-sub.Err():
  4485  				return err
  4486  			case <-quit:
  4487  				return nil
  4488  			}
  4489  		}
  4490  	}), nil
  4491  }
  4492  
  4493  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  4494  //
  4495  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  4496  func (_BridgeTransfer *BridgeTransferFilterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferHandleValueTransfer, error) {
  4497  	event := new(BridgeTransferHandleValueTransfer)
  4498  	if err := _BridgeTransfer.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  4499  		return nil, err
  4500  	}
  4501  	return event, nil
  4502  }
  4503  
  4504  // BridgeTransferKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransfer contract.
  4505  type BridgeTransferKLAYFeeChangedIterator struct {
  4506  	Event *BridgeTransferKLAYFeeChanged // Event containing the contract specifics and raw log
  4507  
  4508  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4509  	event    string              // Event name to use for unpacking event data
  4510  
  4511  	logs chan types.Log      // Log channel receiving the found contract events
  4512  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4513  	done bool                // Whether the subscription completed delivering logs
  4514  	fail error               // Occurred error to stop iteration
  4515  }
  4516  
  4517  // Next advances the iterator to the subsequent event, returning whether there
  4518  // are any more events found. In case of a retrieval or parsing error, false is
  4519  // returned and Error() can be queried for the exact failure.
  4520  func (it *BridgeTransferKLAYFeeChangedIterator) Next() bool {
  4521  	// If the iterator failed, stop iterating
  4522  	if it.fail != nil {
  4523  		return false
  4524  	}
  4525  	// If the iterator completed, deliver directly whatever's available
  4526  	if it.done {
  4527  		select {
  4528  		case log := <-it.logs:
  4529  			it.Event = new(BridgeTransferKLAYFeeChanged)
  4530  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4531  				it.fail = err
  4532  				return false
  4533  			}
  4534  			it.Event.Raw = log
  4535  			return true
  4536  
  4537  		default:
  4538  			return false
  4539  		}
  4540  	}
  4541  	// Iterator still in progress, wait for either a data or an error event
  4542  	select {
  4543  	case log := <-it.logs:
  4544  		it.Event = new(BridgeTransferKLAYFeeChanged)
  4545  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4546  			it.fail = err
  4547  			return false
  4548  		}
  4549  		it.Event.Raw = log
  4550  		return true
  4551  
  4552  	case err := <-it.sub.Err():
  4553  		it.done = true
  4554  		it.fail = err
  4555  		return it.Next()
  4556  	}
  4557  }
  4558  
  4559  // Error returns any retrieval or parsing error occurred during filtering.
  4560  func (it *BridgeTransferKLAYFeeChangedIterator) Error() error {
  4561  	return it.fail
  4562  }
  4563  
  4564  // Close terminates the iteration process, releasing any pending underlying
  4565  // resources.
  4566  func (it *BridgeTransferKLAYFeeChangedIterator) Close() error {
  4567  	it.sub.Unsubscribe()
  4568  	return nil
  4569  }
  4570  
  4571  // BridgeTransferKLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransfer contract.
  4572  type BridgeTransferKLAYFeeChanged struct {
  4573  	Fee *big.Int
  4574  	Raw types.Log // Blockchain specific contextual infos
  4575  }
  4576  
  4577  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  4578  //
  4579  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  4580  func (_BridgeTransfer *BridgeTransferFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferKLAYFeeChangedIterator, error) {
  4581  
  4582  	var feeRule []interface{}
  4583  	for _, feeItem := range fee {
  4584  		feeRule = append(feeRule, feeItem)
  4585  	}
  4586  
  4587  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
  4588  	if err != nil {
  4589  		return nil, err
  4590  	}
  4591  	return &BridgeTransferKLAYFeeChangedIterator{contract: _BridgeTransfer.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
  4592  }
  4593  
  4594  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  4595  //
  4596  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  4597  func (_BridgeTransfer *BridgeTransferFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
  4598  
  4599  	var feeRule []interface{}
  4600  	for _, feeItem := range fee {
  4601  		feeRule = append(feeRule, feeItem)
  4602  	}
  4603  
  4604  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
  4605  	if err != nil {
  4606  		return nil, err
  4607  	}
  4608  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4609  		defer sub.Unsubscribe()
  4610  		for {
  4611  			select {
  4612  			case log := <-logs:
  4613  				// New log arrived, parse the event and forward to the user
  4614  				event := new(BridgeTransferKLAYFeeChanged)
  4615  				if err := _BridgeTransfer.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  4616  					return err
  4617  				}
  4618  				event.Raw = log
  4619  
  4620  				select {
  4621  				case sink <- event:
  4622  				case err := <-sub.Err():
  4623  					return err
  4624  				case <-quit:
  4625  					return nil
  4626  				}
  4627  			case err := <-sub.Err():
  4628  				return err
  4629  			case <-quit:
  4630  				return nil
  4631  			}
  4632  		}
  4633  	}), nil
  4634  }
  4635  
  4636  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  4637  //
  4638  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  4639  func (_BridgeTransfer *BridgeTransferFilterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferKLAYFeeChanged, error) {
  4640  	event := new(BridgeTransferKLAYFeeChanged)
  4641  	if err := _BridgeTransfer.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  4642  		return nil, err
  4643  	}
  4644  	return event, nil
  4645  }
  4646  
  4647  // BridgeTransferOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransfer contract.
  4648  type BridgeTransferOwnershipTransferredIterator struct {
  4649  	Event *BridgeTransferOwnershipTransferred // Event containing the contract specifics and raw log
  4650  
  4651  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4652  	event    string              // Event name to use for unpacking event data
  4653  
  4654  	logs chan types.Log      // Log channel receiving the found contract events
  4655  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4656  	done bool                // Whether the subscription completed delivering logs
  4657  	fail error               // Occurred error to stop iteration
  4658  }
  4659  
  4660  // Next advances the iterator to the subsequent event, returning whether there
  4661  // are any more events found. In case of a retrieval or parsing error, false is
  4662  // returned and Error() can be queried for the exact failure.
  4663  func (it *BridgeTransferOwnershipTransferredIterator) Next() bool {
  4664  	// If the iterator failed, stop iterating
  4665  	if it.fail != nil {
  4666  		return false
  4667  	}
  4668  	// If the iterator completed, deliver directly whatever's available
  4669  	if it.done {
  4670  		select {
  4671  		case log := <-it.logs:
  4672  			it.Event = new(BridgeTransferOwnershipTransferred)
  4673  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4674  				it.fail = err
  4675  				return false
  4676  			}
  4677  			it.Event.Raw = log
  4678  			return true
  4679  
  4680  		default:
  4681  			return false
  4682  		}
  4683  	}
  4684  	// Iterator still in progress, wait for either a data or an error event
  4685  	select {
  4686  	case log := <-it.logs:
  4687  		it.Event = new(BridgeTransferOwnershipTransferred)
  4688  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4689  			it.fail = err
  4690  			return false
  4691  		}
  4692  		it.Event.Raw = log
  4693  		return true
  4694  
  4695  	case err := <-it.sub.Err():
  4696  		it.done = true
  4697  		it.fail = err
  4698  		return it.Next()
  4699  	}
  4700  }
  4701  
  4702  // Error returns any retrieval or parsing error occurred during filtering.
  4703  func (it *BridgeTransferOwnershipTransferredIterator) Error() error {
  4704  	return it.fail
  4705  }
  4706  
  4707  // Close terminates the iteration process, releasing any pending underlying
  4708  // resources.
  4709  func (it *BridgeTransferOwnershipTransferredIterator) Close() error {
  4710  	it.sub.Unsubscribe()
  4711  	return nil
  4712  }
  4713  
  4714  // BridgeTransferOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransfer contract.
  4715  type BridgeTransferOwnershipTransferred struct {
  4716  	PreviousOwner common.Address
  4717  	NewOwner      common.Address
  4718  	Raw           types.Log // Blockchain specific contextual infos
  4719  }
  4720  
  4721  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4722  //
  4723  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4724  func (_BridgeTransfer *BridgeTransferFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferOwnershipTransferredIterator, error) {
  4725  
  4726  	var previousOwnerRule []interface{}
  4727  	for _, previousOwnerItem := range previousOwner {
  4728  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  4729  	}
  4730  	var newOwnerRule []interface{}
  4731  	for _, newOwnerItem := range newOwner {
  4732  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  4733  	}
  4734  
  4735  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  4736  	if err != nil {
  4737  		return nil, err
  4738  	}
  4739  	return &BridgeTransferOwnershipTransferredIterator{contract: _BridgeTransfer.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  4740  }
  4741  
  4742  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4743  //
  4744  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4745  func (_BridgeTransfer *BridgeTransferFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  4746  
  4747  	var previousOwnerRule []interface{}
  4748  	for _, previousOwnerItem := range previousOwner {
  4749  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  4750  	}
  4751  	var newOwnerRule []interface{}
  4752  	for _, newOwnerItem := range newOwner {
  4753  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  4754  	}
  4755  
  4756  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  4757  	if err != nil {
  4758  		return nil, err
  4759  	}
  4760  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4761  		defer sub.Unsubscribe()
  4762  		for {
  4763  			select {
  4764  			case log := <-logs:
  4765  				// New log arrived, parse the event and forward to the user
  4766  				event := new(BridgeTransferOwnershipTransferred)
  4767  				if err := _BridgeTransfer.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  4768  					return err
  4769  				}
  4770  				event.Raw = log
  4771  
  4772  				select {
  4773  				case sink <- event:
  4774  				case err := <-sub.Err():
  4775  					return err
  4776  				case <-quit:
  4777  					return nil
  4778  				}
  4779  			case err := <-sub.Err():
  4780  				return err
  4781  			case <-quit:
  4782  				return nil
  4783  			}
  4784  		}
  4785  	}), nil
  4786  }
  4787  
  4788  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4789  //
  4790  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4791  func (_BridgeTransfer *BridgeTransferFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferOwnershipTransferred, error) {
  4792  	event := new(BridgeTransferOwnershipTransferred)
  4793  	if err := _BridgeTransfer.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  4794  		return nil, err
  4795  	}
  4796  	return event, nil
  4797  }
  4798  
  4799  // BridgeTransferRequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransfer contract.
  4800  type BridgeTransferRequestValueTransferIterator struct {
  4801  	Event *BridgeTransferRequestValueTransfer // Event containing the contract specifics and raw log
  4802  
  4803  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4804  	event    string              // Event name to use for unpacking event data
  4805  
  4806  	logs chan types.Log      // Log channel receiving the found contract events
  4807  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4808  	done bool                // Whether the subscription completed delivering logs
  4809  	fail error               // Occurred error to stop iteration
  4810  }
  4811  
  4812  // Next advances the iterator to the subsequent event, returning whether there
  4813  // are any more events found. In case of a retrieval or parsing error, false is
  4814  // returned and Error() can be queried for the exact failure.
  4815  func (it *BridgeTransferRequestValueTransferIterator) Next() bool {
  4816  	// If the iterator failed, stop iterating
  4817  	if it.fail != nil {
  4818  		return false
  4819  	}
  4820  	// If the iterator completed, deliver directly whatever's available
  4821  	if it.done {
  4822  		select {
  4823  		case log := <-it.logs:
  4824  			it.Event = new(BridgeTransferRequestValueTransfer)
  4825  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4826  				it.fail = err
  4827  				return false
  4828  			}
  4829  			it.Event.Raw = log
  4830  			return true
  4831  
  4832  		default:
  4833  			return false
  4834  		}
  4835  	}
  4836  	// Iterator still in progress, wait for either a data or an error event
  4837  	select {
  4838  	case log := <-it.logs:
  4839  		it.Event = new(BridgeTransferRequestValueTransfer)
  4840  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4841  			it.fail = err
  4842  			return false
  4843  		}
  4844  		it.Event.Raw = log
  4845  		return true
  4846  
  4847  	case err := <-it.sub.Err():
  4848  		it.done = true
  4849  		it.fail = err
  4850  		return it.Next()
  4851  	}
  4852  }
  4853  
  4854  // Error returns any retrieval or parsing error occurred during filtering.
  4855  func (it *BridgeTransferRequestValueTransferIterator) Error() error {
  4856  	return it.fail
  4857  }
  4858  
  4859  // Close terminates the iteration process, releasing any pending underlying
  4860  // resources.
  4861  func (it *BridgeTransferRequestValueTransferIterator) Close() error {
  4862  	it.sub.Unsubscribe()
  4863  	return nil
  4864  }
  4865  
  4866  // BridgeTransferRequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransfer contract.
  4867  type BridgeTransferRequestValueTransfer struct {
  4868  	TokenType      uint8
  4869  	From           common.Address
  4870  	To             common.Address
  4871  	TokenAddress   common.Address
  4872  	ValueOrTokenId *big.Int
  4873  	RequestNonce   uint64
  4874  	Fee            *big.Int
  4875  	ExtraData      []byte
  4876  	Raw            types.Log // Blockchain specific contextual infos
  4877  }
  4878  
  4879  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  4880  //
  4881  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  4882  func (_BridgeTransfer *BridgeTransferFilterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferRequestValueTransferIterator, error) {
  4883  
  4884  	var fromRule []interface{}
  4885  	for _, fromItem := range from {
  4886  		fromRule = append(fromRule, fromItem)
  4887  	}
  4888  	var toRule []interface{}
  4889  	for _, toItem := range to {
  4890  		toRule = append(toRule, toItem)
  4891  	}
  4892  	var tokenAddressRule []interface{}
  4893  	for _, tokenAddressItem := range tokenAddress {
  4894  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  4895  	}
  4896  
  4897  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  4898  	if err != nil {
  4899  		return nil, err
  4900  	}
  4901  	return &BridgeTransferRequestValueTransferIterator{contract: _BridgeTransfer.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
  4902  }
  4903  
  4904  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  4905  //
  4906  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  4907  func (_BridgeTransfer *BridgeTransferFilterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferRequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  4908  
  4909  	var fromRule []interface{}
  4910  	for _, fromItem := range from {
  4911  		fromRule = append(fromRule, fromItem)
  4912  	}
  4913  	var toRule []interface{}
  4914  	for _, toItem := range to {
  4915  		toRule = append(toRule, toItem)
  4916  	}
  4917  	var tokenAddressRule []interface{}
  4918  	for _, tokenAddressItem := range tokenAddress {
  4919  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  4920  	}
  4921  
  4922  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  4923  	if err != nil {
  4924  		return nil, err
  4925  	}
  4926  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4927  		defer sub.Unsubscribe()
  4928  		for {
  4929  			select {
  4930  			case log := <-logs:
  4931  				// New log arrived, parse the event and forward to the user
  4932  				event := new(BridgeTransferRequestValueTransfer)
  4933  				if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  4934  					return err
  4935  				}
  4936  				event.Raw = log
  4937  
  4938  				select {
  4939  				case sink <- event:
  4940  				case err := <-sub.Err():
  4941  					return err
  4942  				case <-quit:
  4943  					return nil
  4944  				}
  4945  			case err := <-sub.Err():
  4946  				return err
  4947  			case <-quit:
  4948  				return nil
  4949  			}
  4950  		}
  4951  	}), nil
  4952  }
  4953  
  4954  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  4955  //
  4956  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  4957  func (_BridgeTransfer *BridgeTransferFilterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferRequestValueTransfer, error) {
  4958  	event := new(BridgeTransferRequestValueTransfer)
  4959  	if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  4960  		return nil, err
  4961  	}
  4962  	return event, nil
  4963  }
  4964  
  4965  // BridgeTransferRequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransfer contract.
  4966  type BridgeTransferRequestValueTransferEncodedIterator struct {
  4967  	Event *BridgeTransferRequestValueTransferEncoded // Event containing the contract specifics and raw log
  4968  
  4969  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4970  	event    string              // Event name to use for unpacking event data
  4971  
  4972  	logs chan types.Log      // Log channel receiving the found contract events
  4973  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4974  	done bool                // Whether the subscription completed delivering logs
  4975  	fail error               // Occurred error to stop iteration
  4976  }
  4977  
  4978  // Next advances the iterator to the subsequent event, returning whether there
  4979  // are any more events found. In case of a retrieval or parsing error, false is
  4980  // returned and Error() can be queried for the exact failure.
  4981  func (it *BridgeTransferRequestValueTransferEncodedIterator) Next() bool {
  4982  	// If the iterator failed, stop iterating
  4983  	if it.fail != nil {
  4984  		return false
  4985  	}
  4986  	// If the iterator completed, deliver directly whatever's available
  4987  	if it.done {
  4988  		select {
  4989  		case log := <-it.logs:
  4990  			it.Event = new(BridgeTransferRequestValueTransferEncoded)
  4991  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4992  				it.fail = err
  4993  				return false
  4994  			}
  4995  			it.Event.Raw = log
  4996  			return true
  4997  
  4998  		default:
  4999  			return false
  5000  		}
  5001  	}
  5002  	// Iterator still in progress, wait for either a data or an error event
  5003  	select {
  5004  	case log := <-it.logs:
  5005  		it.Event = new(BridgeTransferRequestValueTransferEncoded)
  5006  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5007  			it.fail = err
  5008  			return false
  5009  		}
  5010  		it.Event.Raw = log
  5011  		return true
  5012  
  5013  	case err := <-it.sub.Err():
  5014  		it.done = true
  5015  		it.fail = err
  5016  		return it.Next()
  5017  	}
  5018  }
  5019  
  5020  // Error returns any retrieval or parsing error occurred during filtering.
  5021  func (it *BridgeTransferRequestValueTransferEncodedIterator) Error() error {
  5022  	return it.fail
  5023  }
  5024  
  5025  // Close terminates the iteration process, releasing any pending underlying
  5026  // resources.
  5027  func (it *BridgeTransferRequestValueTransferEncodedIterator) Close() error {
  5028  	it.sub.Unsubscribe()
  5029  	return nil
  5030  }
  5031  
  5032  // BridgeTransferRequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransfer contract.
  5033  type BridgeTransferRequestValueTransferEncoded struct {
  5034  	TokenType      uint8
  5035  	From           common.Address
  5036  	To             common.Address
  5037  	TokenAddress   common.Address
  5038  	ValueOrTokenId *big.Int
  5039  	RequestNonce   uint64
  5040  	Fee            *big.Int
  5041  	ExtraData      []byte
  5042  	EncodingVer    uint8
  5043  	EncodedData    []byte
  5044  	Raw            types.Log // Blockchain specific contextual infos
  5045  }
  5046  
  5047  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  5048  //
  5049  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  5050  func (_BridgeTransfer *BridgeTransferFilterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferRequestValueTransferEncodedIterator, error) {
  5051  
  5052  	var fromRule []interface{}
  5053  	for _, fromItem := range from {
  5054  		fromRule = append(fromRule, fromItem)
  5055  	}
  5056  	var toRule []interface{}
  5057  	for _, toItem := range to {
  5058  		toRule = append(toRule, toItem)
  5059  	}
  5060  	var tokenAddressRule []interface{}
  5061  	for _, tokenAddressItem := range tokenAddress {
  5062  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  5063  	}
  5064  
  5065  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  5066  	if err != nil {
  5067  		return nil, err
  5068  	}
  5069  	return &BridgeTransferRequestValueTransferEncodedIterator{contract: _BridgeTransfer.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
  5070  }
  5071  
  5072  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  5073  //
  5074  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  5075  func (_BridgeTransfer *BridgeTransferFilterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferRequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  5076  
  5077  	var fromRule []interface{}
  5078  	for _, fromItem := range from {
  5079  		fromRule = append(fromRule, fromItem)
  5080  	}
  5081  	var toRule []interface{}
  5082  	for _, toItem := range to {
  5083  		toRule = append(toRule, toItem)
  5084  	}
  5085  	var tokenAddressRule []interface{}
  5086  	for _, tokenAddressItem := range tokenAddress {
  5087  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  5088  	}
  5089  
  5090  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  5091  	if err != nil {
  5092  		return nil, err
  5093  	}
  5094  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5095  		defer sub.Unsubscribe()
  5096  		for {
  5097  			select {
  5098  			case log := <-logs:
  5099  				// New log arrived, parse the event and forward to the user
  5100  				event := new(BridgeTransferRequestValueTransferEncoded)
  5101  				if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  5102  					return err
  5103  				}
  5104  				event.Raw = log
  5105  
  5106  				select {
  5107  				case sink <- event:
  5108  				case err := <-sub.Err():
  5109  					return err
  5110  				case <-quit:
  5111  					return nil
  5112  				}
  5113  			case err := <-sub.Err():
  5114  				return err
  5115  			case <-quit:
  5116  				return nil
  5117  			}
  5118  		}
  5119  	}), nil
  5120  }
  5121  
  5122  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  5123  //
  5124  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  5125  func (_BridgeTransfer *BridgeTransferFilterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferRequestValueTransferEncoded, error) {
  5126  	event := new(BridgeTransferRequestValueTransferEncoded)
  5127  	if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  5128  		return nil, err
  5129  	}
  5130  	return event, nil
  5131  }
  5132  
  5133  // BridgeTransferERC20MetaData contains all meta data concerning the BridgeTransferERC20 contract.
  5134  var BridgeTransferERC20MetaData = &bind.MetaData{
  5135  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"}],\"name\":\"setERC20Fee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC20Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
  5136  	Sigs: map[string]string{
  5137  		"3a3099d1": "MAX_OPERATOR()",
  5138  		"9832c1d7": "closedValueTransferVotes(uint64)",
  5139  		"ac6fff0b": "configurationNonce()",
  5140  		"d8cf98ca": "deregisterOperator(address)",
  5141  		"bab2af1d": "deregisterToken(address)",
  5142  		"488af871": "feeOfERC20(address)",
  5143  		"c263b5d6": "feeOfKLAY()",
  5144  		"b3f00674": "feeReceiver()",
  5145  		"b2c01030": "getOperatorList()",
  5146  		"ea21eade": "getRegisteredTokenList()",
  5147  		"407e6bae": "handleERC20Transfer(bytes32,address,address,address,uint256,uint64,uint64,bytes)",
  5148  		"13a6738a": "handleNoncesToBlockNums(uint64)",
  5149  		"8a75eee2": "handledRequestTx(bytes32)",
  5150  		"48a18a6a": "indexOfTokens(address)",
  5151  		"8f32d59b": "isOwner()",
  5152  		"2014e5d1": "isRunning()",
  5153  		"10693fcd": "lockToken(address)",
  5154  		"5eb7413a": "lockedTokens(address)",
  5155  		"4b40b826": "lowerHandleNonce()",
  5156  		"6e176ec2": "modeMintBurn()",
  5157  		"f1656e53": "onERC20Received(address,address,uint256,uint256,bytes)",
  5158  		"cb38f407": "operatorList(uint256)",
  5159  		"5526f76b": "operatorThresholds(uint8)",
  5160  		"13e7c9d8": "operators(address)",
  5161  		"8da5cb5b": "owner()",
  5162  		"989ba0d3": "recoveryBlockNumber()",
  5163  		"3682a450": "registerOperator(address)",
  5164  		"4739f7e5": "registerToken(address,address)",
  5165  		"3e4fe949": "registeredTokenList(uint256)",
  5166  		"8c0bd916": "registeredTokens(address)",
  5167  		"715018a6": "renounceOwnership()",
  5168  		"26c23b54": "requestERC20Transfer(address,address,uint256,uint256,bytes)",
  5169  		"7c1a0302": "requestNonce()",
  5170  		"2f88396c": "setERC20Fee(address,uint256,uint64)",
  5171  		"efdcd974": "setFeeReceiver(address)",
  5172  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  5173  		"c877cf37": "start(bool)",
  5174  		"f2fde38b": "transferOwnership(address)",
  5175  		"9ef2017b": "unlockToken(address)",
  5176  		"54edad72": "upperHandleNonce()",
  5177  	},
  5178  }
  5179  
  5180  // BridgeTransferERC20ABI is the input ABI used to generate the binding from.
  5181  // Deprecated: Use BridgeTransferERC20MetaData.ABI instead.
  5182  var BridgeTransferERC20ABI = BridgeTransferERC20MetaData.ABI
  5183  
  5184  // BridgeTransferERC20BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5185  const BridgeTransferERC20BinRuntime = ``
  5186  
  5187  // BridgeTransferERC20FuncSigs maps the 4-byte function signature to its string representation.
  5188  // Deprecated: Use BridgeTransferERC20MetaData.Sigs instead.
  5189  var BridgeTransferERC20FuncSigs = BridgeTransferERC20MetaData.Sigs
  5190  
  5191  // BridgeTransferERC20 is an auto generated Go binding around a Klaytn contract.
  5192  type BridgeTransferERC20 struct {
  5193  	BridgeTransferERC20Caller     // Read-only binding to the contract
  5194  	BridgeTransferERC20Transactor // Write-only binding to the contract
  5195  	BridgeTransferERC20Filterer   // Log filterer for contract events
  5196  }
  5197  
  5198  // BridgeTransferERC20Caller is an auto generated read-only Go binding around a Klaytn contract.
  5199  type BridgeTransferERC20Caller struct {
  5200  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5201  }
  5202  
  5203  // BridgeTransferERC20Transactor is an auto generated write-only Go binding around a Klaytn contract.
  5204  type BridgeTransferERC20Transactor struct {
  5205  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5206  }
  5207  
  5208  // BridgeTransferERC20Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5209  type BridgeTransferERC20Filterer struct {
  5210  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5211  }
  5212  
  5213  // BridgeTransferERC20Session is an auto generated Go binding around a Klaytn contract,
  5214  // with pre-set call and transact options.
  5215  type BridgeTransferERC20Session struct {
  5216  	Contract     *BridgeTransferERC20 // Generic contract binding to set the session for
  5217  	CallOpts     bind.CallOpts        // Call options to use throughout this session
  5218  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  5219  }
  5220  
  5221  // BridgeTransferERC20CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5222  // with pre-set call options.
  5223  type BridgeTransferERC20CallerSession struct {
  5224  	Contract *BridgeTransferERC20Caller // Generic contract caller binding to set the session for
  5225  	CallOpts bind.CallOpts              // Call options to use throughout this session
  5226  }
  5227  
  5228  // BridgeTransferERC20TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5229  // with pre-set transact options.
  5230  type BridgeTransferERC20TransactorSession struct {
  5231  	Contract     *BridgeTransferERC20Transactor // Generic contract transactor binding to set the session for
  5232  	TransactOpts bind.TransactOpts              // Transaction auth options to use throughout this session
  5233  }
  5234  
  5235  // BridgeTransferERC20Raw is an auto generated low-level Go binding around a Klaytn contract.
  5236  type BridgeTransferERC20Raw struct {
  5237  	Contract *BridgeTransferERC20 // Generic contract binding to access the raw methods on
  5238  }
  5239  
  5240  // BridgeTransferERC20CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5241  type BridgeTransferERC20CallerRaw struct {
  5242  	Contract *BridgeTransferERC20Caller // Generic read-only contract binding to access the raw methods on
  5243  }
  5244  
  5245  // BridgeTransferERC20TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5246  type BridgeTransferERC20TransactorRaw struct {
  5247  	Contract *BridgeTransferERC20Transactor // Generic write-only contract binding to access the raw methods on
  5248  }
  5249  
  5250  // NewBridgeTransferERC20 creates a new instance of BridgeTransferERC20, bound to a specific deployed contract.
  5251  func NewBridgeTransferERC20(address common.Address, backend bind.ContractBackend) (*BridgeTransferERC20, error) {
  5252  	contract, err := bindBridgeTransferERC20(address, backend, backend, backend)
  5253  	if err != nil {
  5254  		return nil, err
  5255  	}
  5256  	return &BridgeTransferERC20{BridgeTransferERC20Caller: BridgeTransferERC20Caller{contract: contract}, BridgeTransferERC20Transactor: BridgeTransferERC20Transactor{contract: contract}, BridgeTransferERC20Filterer: BridgeTransferERC20Filterer{contract: contract}}, nil
  5257  }
  5258  
  5259  // NewBridgeTransferERC20Caller creates a new read-only instance of BridgeTransferERC20, bound to a specific deployed contract.
  5260  func NewBridgeTransferERC20Caller(address common.Address, caller bind.ContractCaller) (*BridgeTransferERC20Caller, error) {
  5261  	contract, err := bindBridgeTransferERC20(address, caller, nil, nil)
  5262  	if err != nil {
  5263  		return nil, err
  5264  	}
  5265  	return &BridgeTransferERC20Caller{contract: contract}, nil
  5266  }
  5267  
  5268  // NewBridgeTransferERC20Transactor creates a new write-only instance of BridgeTransferERC20, bound to a specific deployed contract.
  5269  func NewBridgeTransferERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferERC20Transactor, error) {
  5270  	contract, err := bindBridgeTransferERC20(address, nil, transactor, nil)
  5271  	if err != nil {
  5272  		return nil, err
  5273  	}
  5274  	return &BridgeTransferERC20Transactor{contract: contract}, nil
  5275  }
  5276  
  5277  // NewBridgeTransferERC20Filterer creates a new log filterer instance of BridgeTransferERC20, bound to a specific deployed contract.
  5278  func NewBridgeTransferERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferERC20Filterer, error) {
  5279  	contract, err := bindBridgeTransferERC20(address, nil, nil, filterer)
  5280  	if err != nil {
  5281  		return nil, err
  5282  	}
  5283  	return &BridgeTransferERC20Filterer{contract: contract}, nil
  5284  }
  5285  
  5286  // bindBridgeTransferERC20 binds a generic wrapper to an already deployed contract.
  5287  func bindBridgeTransferERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5288  	parsed, err := BridgeTransferERC20MetaData.GetAbi()
  5289  	if err != nil {
  5290  		return nil, err
  5291  	}
  5292  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5293  }
  5294  
  5295  // Call invokes the (constant) contract method with params as input values and
  5296  // sets the output to result. The result type might be a single field for simple
  5297  // returns, a slice of interfaces for anonymous returns and a struct for named
  5298  // returns.
  5299  func (_BridgeTransferERC20 *BridgeTransferERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5300  	return _BridgeTransferERC20.Contract.BridgeTransferERC20Caller.contract.Call(opts, result, method, params...)
  5301  }
  5302  
  5303  // Transfer initiates a plain transaction to move funds to the contract, calling
  5304  // its default method if one is available.
  5305  func (_BridgeTransferERC20 *BridgeTransferERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5306  	return _BridgeTransferERC20.Contract.BridgeTransferERC20Transactor.contract.Transfer(opts)
  5307  }
  5308  
  5309  // Transact invokes the (paid) contract method with params as input values.
  5310  func (_BridgeTransferERC20 *BridgeTransferERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5311  	return _BridgeTransferERC20.Contract.BridgeTransferERC20Transactor.contract.Transact(opts, method, params...)
  5312  }
  5313  
  5314  // Call invokes the (constant) contract method with params as input values and
  5315  // sets the output to result. The result type might be a single field for simple
  5316  // returns, a slice of interfaces for anonymous returns and a struct for named
  5317  // returns.
  5318  func (_BridgeTransferERC20 *BridgeTransferERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5319  	return _BridgeTransferERC20.Contract.contract.Call(opts, result, method, params...)
  5320  }
  5321  
  5322  // Transfer initiates a plain transaction to move funds to the contract, calling
  5323  // its default method if one is available.
  5324  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5325  	return _BridgeTransferERC20.Contract.contract.Transfer(opts)
  5326  }
  5327  
  5328  // Transact invokes the (paid) contract method with params as input values.
  5329  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5330  	return _BridgeTransferERC20.Contract.contract.Transact(opts, method, params...)
  5331  }
  5332  
  5333  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  5334  //
  5335  // Solidity: function MAX_OPERATOR() view returns(uint64)
  5336  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  5337  	var out []interface{}
  5338  	err := _BridgeTransferERC20.contract.Call(opts, &out, "MAX_OPERATOR")
  5339  
  5340  	if err != nil {
  5341  		return *new(uint64), err
  5342  	}
  5343  
  5344  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5345  
  5346  	return out0, err
  5347  
  5348  }
  5349  
  5350  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  5351  //
  5352  // Solidity: function MAX_OPERATOR() view returns(uint64)
  5353  func (_BridgeTransferERC20 *BridgeTransferERC20Session) MAXOPERATOR() (uint64, error) {
  5354  	return _BridgeTransferERC20.Contract.MAXOPERATOR(&_BridgeTransferERC20.CallOpts)
  5355  }
  5356  
  5357  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  5358  //
  5359  // Solidity: function MAX_OPERATOR() view returns(uint64)
  5360  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) MAXOPERATOR() (uint64, error) {
  5361  	return _BridgeTransferERC20.Contract.MAXOPERATOR(&_BridgeTransferERC20.CallOpts)
  5362  }
  5363  
  5364  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  5365  //
  5366  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  5367  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  5368  	var out []interface{}
  5369  	err := _BridgeTransferERC20.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  5370  
  5371  	if err != nil {
  5372  		return *new(bool), err
  5373  	}
  5374  
  5375  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5376  
  5377  	return out0, err
  5378  
  5379  }
  5380  
  5381  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  5382  //
  5383  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  5384  func (_BridgeTransferERC20 *BridgeTransferERC20Session) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  5385  	return _BridgeTransferERC20.Contract.ClosedValueTransferVotes(&_BridgeTransferERC20.CallOpts, arg0)
  5386  }
  5387  
  5388  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  5389  //
  5390  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  5391  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  5392  	return _BridgeTransferERC20.Contract.ClosedValueTransferVotes(&_BridgeTransferERC20.CallOpts, arg0)
  5393  }
  5394  
  5395  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  5396  //
  5397  // Solidity: function configurationNonce() view returns(uint64)
  5398  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  5399  	var out []interface{}
  5400  	err := _BridgeTransferERC20.contract.Call(opts, &out, "configurationNonce")
  5401  
  5402  	if err != nil {
  5403  		return *new(uint64), err
  5404  	}
  5405  
  5406  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5407  
  5408  	return out0, err
  5409  
  5410  }
  5411  
  5412  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  5413  //
  5414  // Solidity: function configurationNonce() view returns(uint64)
  5415  func (_BridgeTransferERC20 *BridgeTransferERC20Session) ConfigurationNonce() (uint64, error) {
  5416  	return _BridgeTransferERC20.Contract.ConfigurationNonce(&_BridgeTransferERC20.CallOpts)
  5417  }
  5418  
  5419  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  5420  //
  5421  // Solidity: function configurationNonce() view returns(uint64)
  5422  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) ConfigurationNonce() (uint64, error) {
  5423  	return _BridgeTransferERC20.Contract.ConfigurationNonce(&_BridgeTransferERC20.CallOpts)
  5424  }
  5425  
  5426  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  5427  //
  5428  // Solidity: function feeOfERC20(address ) view returns(uint256)
  5429  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  5430  	var out []interface{}
  5431  	err := _BridgeTransferERC20.contract.Call(opts, &out, "feeOfERC20", arg0)
  5432  
  5433  	if err != nil {
  5434  		return *new(*big.Int), err
  5435  	}
  5436  
  5437  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  5438  
  5439  	return out0, err
  5440  
  5441  }
  5442  
  5443  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  5444  //
  5445  // Solidity: function feeOfERC20(address ) view returns(uint256)
  5446  func (_BridgeTransferERC20 *BridgeTransferERC20Session) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  5447  	return _BridgeTransferERC20.Contract.FeeOfERC20(&_BridgeTransferERC20.CallOpts, arg0)
  5448  }
  5449  
  5450  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  5451  //
  5452  // Solidity: function feeOfERC20(address ) view returns(uint256)
  5453  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  5454  	return _BridgeTransferERC20.Contract.FeeOfERC20(&_BridgeTransferERC20.CallOpts, arg0)
  5455  }
  5456  
  5457  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  5458  //
  5459  // Solidity: function feeOfKLAY() view returns(uint256)
  5460  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
  5461  	var out []interface{}
  5462  	err := _BridgeTransferERC20.contract.Call(opts, &out, "feeOfKLAY")
  5463  
  5464  	if err != nil {
  5465  		return *new(*big.Int), err
  5466  	}
  5467  
  5468  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  5469  
  5470  	return out0, err
  5471  
  5472  }
  5473  
  5474  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  5475  //
  5476  // Solidity: function feeOfKLAY() view returns(uint256)
  5477  func (_BridgeTransferERC20 *BridgeTransferERC20Session) FeeOfKLAY() (*big.Int, error) {
  5478  	return _BridgeTransferERC20.Contract.FeeOfKLAY(&_BridgeTransferERC20.CallOpts)
  5479  }
  5480  
  5481  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  5482  //
  5483  // Solidity: function feeOfKLAY() view returns(uint256)
  5484  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) FeeOfKLAY() (*big.Int, error) {
  5485  	return _BridgeTransferERC20.Contract.FeeOfKLAY(&_BridgeTransferERC20.CallOpts)
  5486  }
  5487  
  5488  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  5489  //
  5490  // Solidity: function feeReceiver() view returns(address)
  5491  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
  5492  	var out []interface{}
  5493  	err := _BridgeTransferERC20.contract.Call(opts, &out, "feeReceiver")
  5494  
  5495  	if err != nil {
  5496  		return *new(common.Address), err
  5497  	}
  5498  
  5499  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5500  
  5501  	return out0, err
  5502  
  5503  }
  5504  
  5505  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  5506  //
  5507  // Solidity: function feeReceiver() view returns(address)
  5508  func (_BridgeTransferERC20 *BridgeTransferERC20Session) FeeReceiver() (common.Address, error) {
  5509  	return _BridgeTransferERC20.Contract.FeeReceiver(&_BridgeTransferERC20.CallOpts)
  5510  }
  5511  
  5512  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  5513  //
  5514  // Solidity: function feeReceiver() view returns(address)
  5515  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) FeeReceiver() (common.Address, error) {
  5516  	return _BridgeTransferERC20.Contract.FeeReceiver(&_BridgeTransferERC20.CallOpts)
  5517  }
  5518  
  5519  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  5520  //
  5521  // Solidity: function getOperatorList() view returns(address[])
  5522  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  5523  	var out []interface{}
  5524  	err := _BridgeTransferERC20.contract.Call(opts, &out, "getOperatorList")
  5525  
  5526  	if err != nil {
  5527  		return *new([]common.Address), err
  5528  	}
  5529  
  5530  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  5531  
  5532  	return out0, err
  5533  
  5534  }
  5535  
  5536  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  5537  //
  5538  // Solidity: function getOperatorList() view returns(address[])
  5539  func (_BridgeTransferERC20 *BridgeTransferERC20Session) GetOperatorList() ([]common.Address, error) {
  5540  	return _BridgeTransferERC20.Contract.GetOperatorList(&_BridgeTransferERC20.CallOpts)
  5541  }
  5542  
  5543  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  5544  //
  5545  // Solidity: function getOperatorList() view returns(address[])
  5546  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) GetOperatorList() ([]common.Address, error) {
  5547  	return _BridgeTransferERC20.Contract.GetOperatorList(&_BridgeTransferERC20.CallOpts)
  5548  }
  5549  
  5550  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  5551  //
  5552  // Solidity: function getRegisteredTokenList() view returns(address[])
  5553  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
  5554  	var out []interface{}
  5555  	err := _BridgeTransferERC20.contract.Call(opts, &out, "getRegisteredTokenList")
  5556  
  5557  	if err != nil {
  5558  		return *new([]common.Address), err
  5559  	}
  5560  
  5561  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  5562  
  5563  	return out0, err
  5564  
  5565  }
  5566  
  5567  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  5568  //
  5569  // Solidity: function getRegisteredTokenList() view returns(address[])
  5570  func (_BridgeTransferERC20 *BridgeTransferERC20Session) GetRegisteredTokenList() ([]common.Address, error) {
  5571  	return _BridgeTransferERC20.Contract.GetRegisteredTokenList(&_BridgeTransferERC20.CallOpts)
  5572  }
  5573  
  5574  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  5575  //
  5576  // Solidity: function getRegisteredTokenList() view returns(address[])
  5577  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) GetRegisteredTokenList() ([]common.Address, error) {
  5578  	return _BridgeTransferERC20.Contract.GetRegisteredTokenList(&_BridgeTransferERC20.CallOpts)
  5579  }
  5580  
  5581  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  5582  //
  5583  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  5584  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
  5585  	var out []interface{}
  5586  	err := _BridgeTransferERC20.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
  5587  
  5588  	if err != nil {
  5589  		return *new(uint64), err
  5590  	}
  5591  
  5592  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5593  
  5594  	return out0, err
  5595  
  5596  }
  5597  
  5598  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  5599  //
  5600  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  5601  func (_BridgeTransferERC20 *BridgeTransferERC20Session) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  5602  	return _BridgeTransferERC20.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC20.CallOpts, arg0)
  5603  }
  5604  
  5605  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  5606  //
  5607  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  5608  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  5609  	return _BridgeTransferERC20.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC20.CallOpts, arg0)
  5610  }
  5611  
  5612  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  5613  //
  5614  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  5615  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  5616  	var out []interface{}
  5617  	err := _BridgeTransferERC20.contract.Call(opts, &out, "handledRequestTx", arg0)
  5618  
  5619  	if err != nil {
  5620  		return *new(bool), err
  5621  	}
  5622  
  5623  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5624  
  5625  	return out0, err
  5626  
  5627  }
  5628  
  5629  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  5630  //
  5631  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  5632  func (_BridgeTransferERC20 *BridgeTransferERC20Session) HandledRequestTx(arg0 [32]byte) (bool, error) {
  5633  	return _BridgeTransferERC20.Contract.HandledRequestTx(&_BridgeTransferERC20.CallOpts, arg0)
  5634  }
  5635  
  5636  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  5637  //
  5638  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  5639  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  5640  	return _BridgeTransferERC20.Contract.HandledRequestTx(&_BridgeTransferERC20.CallOpts, arg0)
  5641  }
  5642  
  5643  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  5644  //
  5645  // Solidity: function indexOfTokens(address ) view returns(uint256)
  5646  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  5647  	var out []interface{}
  5648  	err := _BridgeTransferERC20.contract.Call(opts, &out, "indexOfTokens", arg0)
  5649  
  5650  	if err != nil {
  5651  		return *new(*big.Int), err
  5652  	}
  5653  
  5654  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  5655  
  5656  	return out0, err
  5657  
  5658  }
  5659  
  5660  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  5661  //
  5662  // Solidity: function indexOfTokens(address ) view returns(uint256)
  5663  func (_BridgeTransferERC20 *BridgeTransferERC20Session) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  5664  	return _BridgeTransferERC20.Contract.IndexOfTokens(&_BridgeTransferERC20.CallOpts, arg0)
  5665  }
  5666  
  5667  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  5668  //
  5669  // Solidity: function indexOfTokens(address ) view returns(uint256)
  5670  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  5671  	return _BridgeTransferERC20.Contract.IndexOfTokens(&_BridgeTransferERC20.CallOpts, arg0)
  5672  }
  5673  
  5674  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  5675  //
  5676  // Solidity: function isOwner() view returns(bool)
  5677  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) IsOwner(opts *bind.CallOpts) (bool, error) {
  5678  	var out []interface{}
  5679  	err := _BridgeTransferERC20.contract.Call(opts, &out, "isOwner")
  5680  
  5681  	if err != nil {
  5682  		return *new(bool), err
  5683  	}
  5684  
  5685  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5686  
  5687  	return out0, err
  5688  
  5689  }
  5690  
  5691  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  5692  //
  5693  // Solidity: function isOwner() view returns(bool)
  5694  func (_BridgeTransferERC20 *BridgeTransferERC20Session) IsOwner() (bool, error) {
  5695  	return _BridgeTransferERC20.Contract.IsOwner(&_BridgeTransferERC20.CallOpts)
  5696  }
  5697  
  5698  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  5699  //
  5700  // Solidity: function isOwner() view returns(bool)
  5701  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) IsOwner() (bool, error) {
  5702  	return _BridgeTransferERC20.Contract.IsOwner(&_BridgeTransferERC20.CallOpts)
  5703  }
  5704  
  5705  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  5706  //
  5707  // Solidity: function isRunning() view returns(bool)
  5708  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) IsRunning(opts *bind.CallOpts) (bool, error) {
  5709  	var out []interface{}
  5710  	err := _BridgeTransferERC20.contract.Call(opts, &out, "isRunning")
  5711  
  5712  	if err != nil {
  5713  		return *new(bool), err
  5714  	}
  5715  
  5716  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5717  
  5718  	return out0, err
  5719  
  5720  }
  5721  
  5722  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  5723  //
  5724  // Solidity: function isRunning() view returns(bool)
  5725  func (_BridgeTransferERC20 *BridgeTransferERC20Session) IsRunning() (bool, error) {
  5726  	return _BridgeTransferERC20.Contract.IsRunning(&_BridgeTransferERC20.CallOpts)
  5727  }
  5728  
  5729  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  5730  //
  5731  // Solidity: function isRunning() view returns(bool)
  5732  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) IsRunning() (bool, error) {
  5733  	return _BridgeTransferERC20.Contract.IsRunning(&_BridgeTransferERC20.CallOpts)
  5734  }
  5735  
  5736  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  5737  //
  5738  // Solidity: function lockedTokens(address ) view returns(bool)
  5739  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  5740  	var out []interface{}
  5741  	err := _BridgeTransferERC20.contract.Call(opts, &out, "lockedTokens", arg0)
  5742  
  5743  	if err != nil {
  5744  		return *new(bool), err
  5745  	}
  5746  
  5747  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5748  
  5749  	return out0, err
  5750  
  5751  }
  5752  
  5753  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  5754  //
  5755  // Solidity: function lockedTokens(address ) view returns(bool)
  5756  func (_BridgeTransferERC20 *BridgeTransferERC20Session) LockedTokens(arg0 common.Address) (bool, error) {
  5757  	return _BridgeTransferERC20.Contract.LockedTokens(&_BridgeTransferERC20.CallOpts, arg0)
  5758  }
  5759  
  5760  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  5761  //
  5762  // Solidity: function lockedTokens(address ) view returns(bool)
  5763  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) LockedTokens(arg0 common.Address) (bool, error) {
  5764  	return _BridgeTransferERC20.Contract.LockedTokens(&_BridgeTransferERC20.CallOpts, arg0)
  5765  }
  5766  
  5767  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  5768  //
  5769  // Solidity: function lowerHandleNonce() view returns(uint64)
  5770  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
  5771  	var out []interface{}
  5772  	err := _BridgeTransferERC20.contract.Call(opts, &out, "lowerHandleNonce")
  5773  
  5774  	if err != nil {
  5775  		return *new(uint64), err
  5776  	}
  5777  
  5778  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5779  
  5780  	return out0, err
  5781  
  5782  }
  5783  
  5784  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  5785  //
  5786  // Solidity: function lowerHandleNonce() view returns(uint64)
  5787  func (_BridgeTransferERC20 *BridgeTransferERC20Session) LowerHandleNonce() (uint64, error) {
  5788  	return _BridgeTransferERC20.Contract.LowerHandleNonce(&_BridgeTransferERC20.CallOpts)
  5789  }
  5790  
  5791  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  5792  //
  5793  // Solidity: function lowerHandleNonce() view returns(uint64)
  5794  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) LowerHandleNonce() (uint64, error) {
  5795  	return _BridgeTransferERC20.Contract.LowerHandleNonce(&_BridgeTransferERC20.CallOpts)
  5796  }
  5797  
  5798  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  5799  //
  5800  // Solidity: function modeMintBurn() view returns(bool)
  5801  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
  5802  	var out []interface{}
  5803  	err := _BridgeTransferERC20.contract.Call(opts, &out, "modeMintBurn")
  5804  
  5805  	if err != nil {
  5806  		return *new(bool), err
  5807  	}
  5808  
  5809  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5810  
  5811  	return out0, err
  5812  
  5813  }
  5814  
  5815  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  5816  //
  5817  // Solidity: function modeMintBurn() view returns(bool)
  5818  func (_BridgeTransferERC20 *BridgeTransferERC20Session) ModeMintBurn() (bool, error) {
  5819  	return _BridgeTransferERC20.Contract.ModeMintBurn(&_BridgeTransferERC20.CallOpts)
  5820  }
  5821  
  5822  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  5823  //
  5824  // Solidity: function modeMintBurn() view returns(bool)
  5825  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) ModeMintBurn() (bool, error) {
  5826  	return _BridgeTransferERC20.Contract.ModeMintBurn(&_BridgeTransferERC20.CallOpts)
  5827  }
  5828  
  5829  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  5830  //
  5831  // Solidity: function operatorList(uint256 ) view returns(address)
  5832  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  5833  	var out []interface{}
  5834  	err := _BridgeTransferERC20.contract.Call(opts, &out, "operatorList", arg0)
  5835  
  5836  	if err != nil {
  5837  		return *new(common.Address), err
  5838  	}
  5839  
  5840  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5841  
  5842  	return out0, err
  5843  
  5844  }
  5845  
  5846  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  5847  //
  5848  // Solidity: function operatorList(uint256 ) view returns(address)
  5849  func (_BridgeTransferERC20 *BridgeTransferERC20Session) OperatorList(arg0 *big.Int) (common.Address, error) {
  5850  	return _BridgeTransferERC20.Contract.OperatorList(&_BridgeTransferERC20.CallOpts, arg0)
  5851  }
  5852  
  5853  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  5854  //
  5855  // Solidity: function operatorList(uint256 ) view returns(address)
  5856  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  5857  	return _BridgeTransferERC20.Contract.OperatorList(&_BridgeTransferERC20.CallOpts, arg0)
  5858  }
  5859  
  5860  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  5861  //
  5862  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  5863  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  5864  	var out []interface{}
  5865  	err := _BridgeTransferERC20.contract.Call(opts, &out, "operatorThresholds", arg0)
  5866  
  5867  	if err != nil {
  5868  		return *new(uint8), err
  5869  	}
  5870  
  5871  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  5872  
  5873  	return out0, err
  5874  
  5875  }
  5876  
  5877  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  5878  //
  5879  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  5880  func (_BridgeTransferERC20 *BridgeTransferERC20Session) OperatorThresholds(arg0 uint8) (uint8, error) {
  5881  	return _BridgeTransferERC20.Contract.OperatorThresholds(&_BridgeTransferERC20.CallOpts, arg0)
  5882  }
  5883  
  5884  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  5885  //
  5886  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  5887  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  5888  	return _BridgeTransferERC20.Contract.OperatorThresholds(&_BridgeTransferERC20.CallOpts, arg0)
  5889  }
  5890  
  5891  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  5892  //
  5893  // Solidity: function operators(address ) view returns(bool)
  5894  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  5895  	var out []interface{}
  5896  	err := _BridgeTransferERC20.contract.Call(opts, &out, "operators", arg0)
  5897  
  5898  	if err != nil {
  5899  		return *new(bool), err
  5900  	}
  5901  
  5902  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5903  
  5904  	return out0, err
  5905  
  5906  }
  5907  
  5908  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  5909  //
  5910  // Solidity: function operators(address ) view returns(bool)
  5911  func (_BridgeTransferERC20 *BridgeTransferERC20Session) Operators(arg0 common.Address) (bool, error) {
  5912  	return _BridgeTransferERC20.Contract.Operators(&_BridgeTransferERC20.CallOpts, arg0)
  5913  }
  5914  
  5915  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  5916  //
  5917  // Solidity: function operators(address ) view returns(bool)
  5918  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) Operators(arg0 common.Address) (bool, error) {
  5919  	return _BridgeTransferERC20.Contract.Operators(&_BridgeTransferERC20.CallOpts, arg0)
  5920  }
  5921  
  5922  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5923  //
  5924  // Solidity: function owner() view returns(address)
  5925  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
  5926  	var out []interface{}
  5927  	err := _BridgeTransferERC20.contract.Call(opts, &out, "owner")
  5928  
  5929  	if err != nil {
  5930  		return *new(common.Address), err
  5931  	}
  5932  
  5933  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5934  
  5935  	return out0, err
  5936  
  5937  }
  5938  
  5939  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5940  //
  5941  // Solidity: function owner() view returns(address)
  5942  func (_BridgeTransferERC20 *BridgeTransferERC20Session) Owner() (common.Address, error) {
  5943  	return _BridgeTransferERC20.Contract.Owner(&_BridgeTransferERC20.CallOpts)
  5944  }
  5945  
  5946  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5947  //
  5948  // Solidity: function owner() view returns(address)
  5949  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) Owner() (common.Address, error) {
  5950  	return _BridgeTransferERC20.Contract.Owner(&_BridgeTransferERC20.CallOpts)
  5951  }
  5952  
  5953  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  5954  //
  5955  // Solidity: function recoveryBlockNumber() view returns(uint64)
  5956  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
  5957  	var out []interface{}
  5958  	err := _BridgeTransferERC20.contract.Call(opts, &out, "recoveryBlockNumber")
  5959  
  5960  	if err != nil {
  5961  		return *new(uint64), err
  5962  	}
  5963  
  5964  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5965  
  5966  	return out0, err
  5967  
  5968  }
  5969  
  5970  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  5971  //
  5972  // Solidity: function recoveryBlockNumber() view returns(uint64)
  5973  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RecoveryBlockNumber() (uint64, error) {
  5974  	return _BridgeTransferERC20.Contract.RecoveryBlockNumber(&_BridgeTransferERC20.CallOpts)
  5975  }
  5976  
  5977  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  5978  //
  5979  // Solidity: function recoveryBlockNumber() view returns(uint64)
  5980  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RecoveryBlockNumber() (uint64, error) {
  5981  	return _BridgeTransferERC20.Contract.RecoveryBlockNumber(&_BridgeTransferERC20.CallOpts)
  5982  }
  5983  
  5984  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  5985  //
  5986  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  5987  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  5988  	var out []interface{}
  5989  	err := _BridgeTransferERC20.contract.Call(opts, &out, "registeredTokenList", arg0)
  5990  
  5991  	if err != nil {
  5992  		return *new(common.Address), err
  5993  	}
  5994  
  5995  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5996  
  5997  	return out0, err
  5998  
  5999  }
  6000  
  6001  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  6002  //
  6003  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  6004  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  6005  	return _BridgeTransferERC20.Contract.RegisteredTokenList(&_BridgeTransferERC20.CallOpts, arg0)
  6006  }
  6007  
  6008  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  6009  //
  6010  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  6011  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  6012  	return _BridgeTransferERC20.Contract.RegisteredTokenList(&_BridgeTransferERC20.CallOpts, arg0)
  6013  }
  6014  
  6015  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  6016  //
  6017  // Solidity: function registeredTokens(address ) view returns(address)
  6018  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  6019  	var out []interface{}
  6020  	err := _BridgeTransferERC20.contract.Call(opts, &out, "registeredTokens", arg0)
  6021  
  6022  	if err != nil {
  6023  		return *new(common.Address), err
  6024  	}
  6025  
  6026  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6027  
  6028  	return out0, err
  6029  
  6030  }
  6031  
  6032  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  6033  //
  6034  // Solidity: function registeredTokens(address ) view returns(address)
  6035  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  6036  	return _BridgeTransferERC20.Contract.RegisteredTokens(&_BridgeTransferERC20.CallOpts, arg0)
  6037  }
  6038  
  6039  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  6040  //
  6041  // Solidity: function registeredTokens(address ) view returns(address)
  6042  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  6043  	return _BridgeTransferERC20.Contract.RegisteredTokens(&_BridgeTransferERC20.CallOpts, arg0)
  6044  }
  6045  
  6046  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  6047  //
  6048  // Solidity: function requestNonce() view returns(uint64)
  6049  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
  6050  	var out []interface{}
  6051  	err := _BridgeTransferERC20.contract.Call(opts, &out, "requestNonce")
  6052  
  6053  	if err != nil {
  6054  		return *new(uint64), err
  6055  	}
  6056  
  6057  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  6058  
  6059  	return out0, err
  6060  
  6061  }
  6062  
  6063  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  6064  //
  6065  // Solidity: function requestNonce() view returns(uint64)
  6066  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RequestNonce() (uint64, error) {
  6067  	return _BridgeTransferERC20.Contract.RequestNonce(&_BridgeTransferERC20.CallOpts)
  6068  }
  6069  
  6070  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  6071  //
  6072  // Solidity: function requestNonce() view returns(uint64)
  6073  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RequestNonce() (uint64, error) {
  6074  	return _BridgeTransferERC20.Contract.RequestNonce(&_BridgeTransferERC20.CallOpts)
  6075  }
  6076  
  6077  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  6078  //
  6079  // Solidity: function upperHandleNonce() view returns(uint64)
  6080  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
  6081  	var out []interface{}
  6082  	err := _BridgeTransferERC20.contract.Call(opts, &out, "upperHandleNonce")
  6083  
  6084  	if err != nil {
  6085  		return *new(uint64), err
  6086  	}
  6087  
  6088  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  6089  
  6090  	return out0, err
  6091  
  6092  }
  6093  
  6094  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  6095  //
  6096  // Solidity: function upperHandleNonce() view returns(uint64)
  6097  func (_BridgeTransferERC20 *BridgeTransferERC20Session) UpperHandleNonce() (uint64, error) {
  6098  	return _BridgeTransferERC20.Contract.UpperHandleNonce(&_BridgeTransferERC20.CallOpts)
  6099  }
  6100  
  6101  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  6102  //
  6103  // Solidity: function upperHandleNonce() view returns(uint64)
  6104  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) UpperHandleNonce() (uint64, error) {
  6105  	return _BridgeTransferERC20.Contract.UpperHandleNonce(&_BridgeTransferERC20.CallOpts)
  6106  }
  6107  
  6108  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  6109  //
  6110  // Solidity: function deregisterOperator(address _operator) returns()
  6111  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  6112  	return _BridgeTransferERC20.contract.Transact(opts, "deregisterOperator", _operator)
  6113  }
  6114  
  6115  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  6116  //
  6117  // Solidity: function deregisterOperator(address _operator) returns()
  6118  func (_BridgeTransferERC20 *BridgeTransferERC20Session) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  6119  	return _BridgeTransferERC20.Contract.DeregisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
  6120  }
  6121  
  6122  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  6123  //
  6124  // Solidity: function deregisterOperator(address _operator) returns()
  6125  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  6126  	return _BridgeTransferERC20.Contract.DeregisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
  6127  }
  6128  
  6129  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  6130  //
  6131  // Solidity: function deregisterToken(address _token) returns()
  6132  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  6133  	return _BridgeTransferERC20.contract.Transact(opts, "deregisterToken", _token)
  6134  }
  6135  
  6136  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  6137  //
  6138  // Solidity: function deregisterToken(address _token) returns()
  6139  func (_BridgeTransferERC20 *BridgeTransferERC20Session) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  6140  	return _BridgeTransferERC20.Contract.DeregisterToken(&_BridgeTransferERC20.TransactOpts, _token)
  6141  }
  6142  
  6143  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  6144  //
  6145  // Solidity: function deregisterToken(address _token) returns()
  6146  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  6147  	return _BridgeTransferERC20.Contract.DeregisterToken(&_BridgeTransferERC20.TransactOpts, _token)
  6148  }
  6149  
  6150  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
  6151  //
  6152  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  6153  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) HandleERC20Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  6154  	return _BridgeTransferERC20.contract.Transact(opts, "handleERC20Transfer", _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  6155  }
  6156  
  6157  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
  6158  //
  6159  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  6160  func (_BridgeTransferERC20 *BridgeTransferERC20Session) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  6161  	return _BridgeTransferERC20.Contract.HandleERC20Transfer(&_BridgeTransferERC20.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  6162  }
  6163  
  6164  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
  6165  //
  6166  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  6167  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  6168  	return _BridgeTransferERC20.Contract.HandleERC20Transfer(&_BridgeTransferERC20.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  6169  }
  6170  
  6171  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  6172  //
  6173  // Solidity: function lockToken(address _token) returns()
  6174  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  6175  	return _BridgeTransferERC20.contract.Transact(opts, "lockToken", _token)
  6176  }
  6177  
  6178  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  6179  //
  6180  // Solidity: function lockToken(address _token) returns()
  6181  func (_BridgeTransferERC20 *BridgeTransferERC20Session) LockToken(_token common.Address) (*types.Transaction, error) {
  6182  	return _BridgeTransferERC20.Contract.LockToken(&_BridgeTransferERC20.TransactOpts, _token)
  6183  }
  6184  
  6185  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  6186  //
  6187  // Solidity: function lockToken(address _token) returns()
  6188  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
  6189  	return _BridgeTransferERC20.Contract.LockToken(&_BridgeTransferERC20.TransactOpts, _token)
  6190  }
  6191  
  6192  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
  6193  //
  6194  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  6195  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) OnERC20Received(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  6196  	return _BridgeTransferERC20.contract.Transact(opts, "onERC20Received", _from, _to, _value, _feeLimit, _extraData)
  6197  }
  6198  
  6199  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
  6200  //
  6201  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  6202  func (_BridgeTransferERC20 *BridgeTransferERC20Session) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  6203  	return _BridgeTransferERC20.Contract.OnERC20Received(&_BridgeTransferERC20.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
  6204  }
  6205  
  6206  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
  6207  //
  6208  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  6209  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  6210  	return _BridgeTransferERC20.Contract.OnERC20Received(&_BridgeTransferERC20.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
  6211  }
  6212  
  6213  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  6214  //
  6215  // Solidity: function registerOperator(address _operator) returns()
  6216  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  6217  	return _BridgeTransferERC20.contract.Transact(opts, "registerOperator", _operator)
  6218  }
  6219  
  6220  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  6221  //
  6222  // Solidity: function registerOperator(address _operator) returns()
  6223  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  6224  	return _BridgeTransferERC20.Contract.RegisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
  6225  }
  6226  
  6227  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  6228  //
  6229  // Solidity: function registerOperator(address _operator) returns()
  6230  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  6231  	return _BridgeTransferERC20.Contract.RegisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
  6232  }
  6233  
  6234  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  6235  //
  6236  // Solidity: function registerToken(address _token, address _cToken) returns()
  6237  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
  6238  	return _BridgeTransferERC20.contract.Transact(opts, "registerToken", _token, _cToken)
  6239  }
  6240  
  6241  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  6242  //
  6243  // Solidity: function registerToken(address _token, address _cToken) returns()
  6244  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  6245  	return _BridgeTransferERC20.Contract.RegisterToken(&_BridgeTransferERC20.TransactOpts, _token, _cToken)
  6246  }
  6247  
  6248  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  6249  //
  6250  // Solidity: function registerToken(address _token, address _cToken) returns()
  6251  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  6252  	return _BridgeTransferERC20.Contract.RegisterToken(&_BridgeTransferERC20.TransactOpts, _token, _cToken)
  6253  }
  6254  
  6255  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6256  //
  6257  // Solidity: function renounceOwnership() returns()
  6258  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  6259  	return _BridgeTransferERC20.contract.Transact(opts, "renounceOwnership")
  6260  }
  6261  
  6262  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6263  //
  6264  // Solidity: function renounceOwnership() returns()
  6265  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RenounceOwnership() (*types.Transaction, error) {
  6266  	return _BridgeTransferERC20.Contract.RenounceOwnership(&_BridgeTransferERC20.TransactOpts)
  6267  }
  6268  
  6269  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6270  //
  6271  // Solidity: function renounceOwnership() returns()
  6272  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RenounceOwnership() (*types.Transaction, error) {
  6273  	return _BridgeTransferERC20.Contract.RenounceOwnership(&_BridgeTransferERC20.TransactOpts)
  6274  }
  6275  
  6276  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
  6277  //
  6278  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  6279  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RequestERC20Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  6280  	return _BridgeTransferERC20.contract.Transact(opts, "requestERC20Transfer", _tokenAddress, _to, _value, _feeLimit, _extraData)
  6281  }
  6282  
  6283  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
  6284  //
  6285  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  6286  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  6287  	return _BridgeTransferERC20.Contract.RequestERC20Transfer(&_BridgeTransferERC20.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
  6288  }
  6289  
  6290  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
  6291  //
  6292  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  6293  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  6294  	return _BridgeTransferERC20.Contract.RequestERC20Transfer(&_BridgeTransferERC20.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
  6295  }
  6296  
  6297  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
  6298  //
  6299  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
  6300  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) SetERC20Fee(opts *bind.TransactOpts, _token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  6301  	return _BridgeTransferERC20.contract.Transact(opts, "setERC20Fee", _token, _fee, _requestNonce)
  6302  }
  6303  
  6304  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
  6305  //
  6306  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
  6307  func (_BridgeTransferERC20 *BridgeTransferERC20Session) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  6308  	return _BridgeTransferERC20.Contract.SetERC20Fee(&_BridgeTransferERC20.TransactOpts, _token, _fee, _requestNonce)
  6309  }
  6310  
  6311  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
  6312  //
  6313  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
  6314  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  6315  	return _BridgeTransferERC20.Contract.SetERC20Fee(&_BridgeTransferERC20.TransactOpts, _token, _fee, _requestNonce)
  6316  }
  6317  
  6318  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  6319  //
  6320  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  6321  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
  6322  	return _BridgeTransferERC20.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
  6323  }
  6324  
  6325  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  6326  //
  6327  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  6328  func (_BridgeTransferERC20 *BridgeTransferERC20Session) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  6329  	return _BridgeTransferERC20.Contract.SetFeeReceiver(&_BridgeTransferERC20.TransactOpts, _feeReceiver)
  6330  }
  6331  
  6332  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  6333  //
  6334  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  6335  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  6336  	return _BridgeTransferERC20.Contract.SetFeeReceiver(&_BridgeTransferERC20.TransactOpts, _feeReceiver)
  6337  }
  6338  
  6339  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  6340  //
  6341  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  6342  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  6343  	return _BridgeTransferERC20.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  6344  }
  6345  
  6346  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  6347  //
  6348  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  6349  func (_BridgeTransferERC20 *BridgeTransferERC20Session) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  6350  	return _BridgeTransferERC20.Contract.SetOperatorThreshold(&_BridgeTransferERC20.TransactOpts, _voteType, _threshold)
  6351  }
  6352  
  6353  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  6354  //
  6355  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  6356  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  6357  	return _BridgeTransferERC20.Contract.SetOperatorThreshold(&_BridgeTransferERC20.TransactOpts, _voteType, _threshold)
  6358  }
  6359  
  6360  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  6361  //
  6362  // Solidity: function start(bool _status) returns()
  6363  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
  6364  	return _BridgeTransferERC20.contract.Transact(opts, "start", _status)
  6365  }
  6366  
  6367  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  6368  //
  6369  // Solidity: function start(bool _status) returns()
  6370  func (_BridgeTransferERC20 *BridgeTransferERC20Session) Start(_status bool) (*types.Transaction, error) {
  6371  	return _BridgeTransferERC20.Contract.Start(&_BridgeTransferERC20.TransactOpts, _status)
  6372  }
  6373  
  6374  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  6375  //
  6376  // Solidity: function start(bool _status) returns()
  6377  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) Start(_status bool) (*types.Transaction, error) {
  6378  	return _BridgeTransferERC20.Contract.Start(&_BridgeTransferERC20.TransactOpts, _status)
  6379  }
  6380  
  6381  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6382  //
  6383  // Solidity: function transferOwnership(address newOwner) returns()
  6384  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  6385  	return _BridgeTransferERC20.contract.Transact(opts, "transferOwnership", newOwner)
  6386  }
  6387  
  6388  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6389  //
  6390  // Solidity: function transferOwnership(address newOwner) returns()
  6391  func (_BridgeTransferERC20 *BridgeTransferERC20Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6392  	return _BridgeTransferERC20.Contract.TransferOwnership(&_BridgeTransferERC20.TransactOpts, newOwner)
  6393  }
  6394  
  6395  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6396  //
  6397  // Solidity: function transferOwnership(address newOwner) returns()
  6398  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6399  	return _BridgeTransferERC20.Contract.TransferOwnership(&_BridgeTransferERC20.TransactOpts, newOwner)
  6400  }
  6401  
  6402  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  6403  //
  6404  // Solidity: function unlockToken(address _token) returns()
  6405  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  6406  	return _BridgeTransferERC20.contract.Transact(opts, "unlockToken", _token)
  6407  }
  6408  
  6409  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  6410  //
  6411  // Solidity: function unlockToken(address _token) returns()
  6412  func (_BridgeTransferERC20 *BridgeTransferERC20Session) UnlockToken(_token common.Address) (*types.Transaction, error) {
  6413  	return _BridgeTransferERC20.Contract.UnlockToken(&_BridgeTransferERC20.TransactOpts, _token)
  6414  }
  6415  
  6416  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  6417  //
  6418  // Solidity: function unlockToken(address _token) returns()
  6419  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  6420  	return _BridgeTransferERC20.Contract.UnlockToken(&_BridgeTransferERC20.TransactOpts, _token)
  6421  }
  6422  
  6423  // BridgeTransferERC20ERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransferERC20 contract.
  6424  type BridgeTransferERC20ERC20FeeChangedIterator struct {
  6425  	Event *BridgeTransferERC20ERC20FeeChanged // Event containing the contract specifics and raw log
  6426  
  6427  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6428  	event    string              // Event name to use for unpacking event data
  6429  
  6430  	logs chan types.Log      // Log channel receiving the found contract events
  6431  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6432  	done bool                // Whether the subscription completed delivering logs
  6433  	fail error               // Occurred error to stop iteration
  6434  }
  6435  
  6436  // Next advances the iterator to the subsequent event, returning whether there
  6437  // are any more events found. In case of a retrieval or parsing error, false is
  6438  // returned and Error() can be queried for the exact failure.
  6439  func (it *BridgeTransferERC20ERC20FeeChangedIterator) Next() bool {
  6440  	// If the iterator failed, stop iterating
  6441  	if it.fail != nil {
  6442  		return false
  6443  	}
  6444  	// If the iterator completed, deliver directly whatever's available
  6445  	if it.done {
  6446  		select {
  6447  		case log := <-it.logs:
  6448  			it.Event = new(BridgeTransferERC20ERC20FeeChanged)
  6449  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6450  				it.fail = err
  6451  				return false
  6452  			}
  6453  			it.Event.Raw = log
  6454  			return true
  6455  
  6456  		default:
  6457  			return false
  6458  		}
  6459  	}
  6460  	// Iterator still in progress, wait for either a data or an error event
  6461  	select {
  6462  	case log := <-it.logs:
  6463  		it.Event = new(BridgeTransferERC20ERC20FeeChanged)
  6464  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6465  			it.fail = err
  6466  			return false
  6467  		}
  6468  		it.Event.Raw = log
  6469  		return true
  6470  
  6471  	case err := <-it.sub.Err():
  6472  		it.done = true
  6473  		it.fail = err
  6474  		return it.Next()
  6475  	}
  6476  }
  6477  
  6478  // Error returns any retrieval or parsing error occurred during filtering.
  6479  func (it *BridgeTransferERC20ERC20FeeChangedIterator) Error() error {
  6480  	return it.fail
  6481  }
  6482  
  6483  // Close terminates the iteration process, releasing any pending underlying
  6484  // resources.
  6485  func (it *BridgeTransferERC20ERC20FeeChangedIterator) Close() error {
  6486  	it.sub.Unsubscribe()
  6487  	return nil
  6488  }
  6489  
  6490  // BridgeTransferERC20ERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransferERC20 contract.
  6491  type BridgeTransferERC20ERC20FeeChanged struct {
  6492  	Token common.Address
  6493  	Fee   *big.Int
  6494  	Raw   types.Log // Blockchain specific contextual infos
  6495  }
  6496  
  6497  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  6498  //
  6499  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  6500  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferERC20ERC20FeeChangedIterator, error) {
  6501  
  6502  	var tokenRule []interface{}
  6503  	for _, tokenItem := range token {
  6504  		tokenRule = append(tokenRule, tokenItem)
  6505  	}
  6506  	var feeRule []interface{}
  6507  	for _, feeItem := range fee {
  6508  		feeRule = append(feeRule, feeItem)
  6509  	}
  6510  
  6511  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  6512  	if err != nil {
  6513  		return nil, err
  6514  	}
  6515  	return &BridgeTransferERC20ERC20FeeChangedIterator{contract: _BridgeTransferERC20.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
  6516  }
  6517  
  6518  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  6519  //
  6520  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  6521  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20ERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
  6522  
  6523  	var tokenRule []interface{}
  6524  	for _, tokenItem := range token {
  6525  		tokenRule = append(tokenRule, tokenItem)
  6526  	}
  6527  	var feeRule []interface{}
  6528  	for _, feeItem := range fee {
  6529  		feeRule = append(feeRule, feeItem)
  6530  	}
  6531  
  6532  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  6533  	if err != nil {
  6534  		return nil, err
  6535  	}
  6536  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6537  		defer sub.Unsubscribe()
  6538  		for {
  6539  			select {
  6540  			case log := <-logs:
  6541  				// New log arrived, parse the event and forward to the user
  6542  				event := new(BridgeTransferERC20ERC20FeeChanged)
  6543  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  6544  					return err
  6545  				}
  6546  				event.Raw = log
  6547  
  6548  				select {
  6549  				case sink <- event:
  6550  				case err := <-sub.Err():
  6551  					return err
  6552  				case <-quit:
  6553  					return nil
  6554  				}
  6555  			case err := <-sub.Err():
  6556  				return err
  6557  			case <-quit:
  6558  				return nil
  6559  			}
  6560  		}
  6561  	}), nil
  6562  }
  6563  
  6564  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  6565  //
  6566  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  6567  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferERC20ERC20FeeChanged, error) {
  6568  	event := new(BridgeTransferERC20ERC20FeeChanged)
  6569  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  6570  		return nil, err
  6571  	}
  6572  	return event, nil
  6573  }
  6574  
  6575  // BridgeTransferERC20FeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransferERC20 contract.
  6576  type BridgeTransferERC20FeeReceiverChangedIterator struct {
  6577  	Event *BridgeTransferERC20FeeReceiverChanged // Event containing the contract specifics and raw log
  6578  
  6579  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6580  	event    string              // Event name to use for unpacking event data
  6581  
  6582  	logs chan types.Log      // Log channel receiving the found contract events
  6583  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6584  	done bool                // Whether the subscription completed delivering logs
  6585  	fail error               // Occurred error to stop iteration
  6586  }
  6587  
  6588  // Next advances the iterator to the subsequent event, returning whether there
  6589  // are any more events found. In case of a retrieval or parsing error, false is
  6590  // returned and Error() can be queried for the exact failure.
  6591  func (it *BridgeTransferERC20FeeReceiverChangedIterator) Next() bool {
  6592  	// If the iterator failed, stop iterating
  6593  	if it.fail != nil {
  6594  		return false
  6595  	}
  6596  	// If the iterator completed, deliver directly whatever's available
  6597  	if it.done {
  6598  		select {
  6599  		case log := <-it.logs:
  6600  			it.Event = new(BridgeTransferERC20FeeReceiverChanged)
  6601  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6602  				it.fail = err
  6603  				return false
  6604  			}
  6605  			it.Event.Raw = log
  6606  			return true
  6607  
  6608  		default:
  6609  			return false
  6610  		}
  6611  	}
  6612  	// Iterator still in progress, wait for either a data or an error event
  6613  	select {
  6614  	case log := <-it.logs:
  6615  		it.Event = new(BridgeTransferERC20FeeReceiverChanged)
  6616  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6617  			it.fail = err
  6618  			return false
  6619  		}
  6620  		it.Event.Raw = log
  6621  		return true
  6622  
  6623  	case err := <-it.sub.Err():
  6624  		it.done = true
  6625  		it.fail = err
  6626  		return it.Next()
  6627  	}
  6628  }
  6629  
  6630  // Error returns any retrieval or parsing error occurred during filtering.
  6631  func (it *BridgeTransferERC20FeeReceiverChangedIterator) Error() error {
  6632  	return it.fail
  6633  }
  6634  
  6635  // Close terminates the iteration process, releasing any pending underlying
  6636  // resources.
  6637  func (it *BridgeTransferERC20FeeReceiverChangedIterator) Close() error {
  6638  	it.sub.Unsubscribe()
  6639  	return nil
  6640  }
  6641  
  6642  // BridgeTransferERC20FeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransferERC20 contract.
  6643  type BridgeTransferERC20FeeReceiverChanged struct {
  6644  	FeeReceiver common.Address
  6645  	Raw         types.Log // Blockchain specific contextual infos
  6646  }
  6647  
  6648  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  6649  //
  6650  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  6651  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferERC20FeeReceiverChangedIterator, error) {
  6652  
  6653  	var feeReceiverRule []interface{}
  6654  	for _, feeReceiverItem := range feeReceiver {
  6655  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  6656  	}
  6657  
  6658  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  6659  	if err != nil {
  6660  		return nil, err
  6661  	}
  6662  	return &BridgeTransferERC20FeeReceiverChangedIterator{contract: _BridgeTransferERC20.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
  6663  }
  6664  
  6665  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  6666  //
  6667  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  6668  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20FeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
  6669  
  6670  	var feeReceiverRule []interface{}
  6671  	for _, feeReceiverItem := range feeReceiver {
  6672  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  6673  	}
  6674  
  6675  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  6676  	if err != nil {
  6677  		return nil, err
  6678  	}
  6679  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6680  		defer sub.Unsubscribe()
  6681  		for {
  6682  			select {
  6683  			case log := <-logs:
  6684  				// New log arrived, parse the event and forward to the user
  6685  				event := new(BridgeTransferERC20FeeReceiverChanged)
  6686  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  6687  					return err
  6688  				}
  6689  				event.Raw = log
  6690  
  6691  				select {
  6692  				case sink <- event:
  6693  				case err := <-sub.Err():
  6694  					return err
  6695  				case <-quit:
  6696  					return nil
  6697  				}
  6698  			case err := <-sub.Err():
  6699  				return err
  6700  			case <-quit:
  6701  				return nil
  6702  			}
  6703  		}
  6704  	}), nil
  6705  }
  6706  
  6707  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  6708  //
  6709  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  6710  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferERC20FeeReceiverChanged, error) {
  6711  	event := new(BridgeTransferERC20FeeReceiverChanged)
  6712  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  6713  		return nil, err
  6714  	}
  6715  	return event, nil
  6716  }
  6717  
  6718  // BridgeTransferERC20HandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransferERC20 contract.
  6719  type BridgeTransferERC20HandleValueTransferIterator struct {
  6720  	Event *BridgeTransferERC20HandleValueTransfer // Event containing the contract specifics and raw log
  6721  
  6722  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6723  	event    string              // Event name to use for unpacking event data
  6724  
  6725  	logs chan types.Log      // Log channel receiving the found contract events
  6726  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6727  	done bool                // Whether the subscription completed delivering logs
  6728  	fail error               // Occurred error to stop iteration
  6729  }
  6730  
  6731  // Next advances the iterator to the subsequent event, returning whether there
  6732  // are any more events found. In case of a retrieval or parsing error, false is
  6733  // returned and Error() can be queried for the exact failure.
  6734  func (it *BridgeTransferERC20HandleValueTransferIterator) Next() bool {
  6735  	// If the iterator failed, stop iterating
  6736  	if it.fail != nil {
  6737  		return false
  6738  	}
  6739  	// If the iterator completed, deliver directly whatever's available
  6740  	if it.done {
  6741  		select {
  6742  		case log := <-it.logs:
  6743  			it.Event = new(BridgeTransferERC20HandleValueTransfer)
  6744  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6745  				it.fail = err
  6746  				return false
  6747  			}
  6748  			it.Event.Raw = log
  6749  			return true
  6750  
  6751  		default:
  6752  			return false
  6753  		}
  6754  	}
  6755  	// Iterator still in progress, wait for either a data or an error event
  6756  	select {
  6757  	case log := <-it.logs:
  6758  		it.Event = new(BridgeTransferERC20HandleValueTransfer)
  6759  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6760  			it.fail = err
  6761  			return false
  6762  		}
  6763  		it.Event.Raw = log
  6764  		return true
  6765  
  6766  	case err := <-it.sub.Err():
  6767  		it.done = true
  6768  		it.fail = err
  6769  		return it.Next()
  6770  	}
  6771  }
  6772  
  6773  // Error returns any retrieval or parsing error occurred during filtering.
  6774  func (it *BridgeTransferERC20HandleValueTransferIterator) Error() error {
  6775  	return it.fail
  6776  }
  6777  
  6778  // Close terminates the iteration process, releasing any pending underlying
  6779  // resources.
  6780  func (it *BridgeTransferERC20HandleValueTransferIterator) Close() error {
  6781  	it.sub.Unsubscribe()
  6782  	return nil
  6783  }
  6784  
  6785  // BridgeTransferERC20HandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransferERC20 contract.
  6786  type BridgeTransferERC20HandleValueTransfer struct {
  6787  	RequestTxHash    [32]byte
  6788  	TokenType        uint8
  6789  	From             common.Address
  6790  	To               common.Address
  6791  	TokenAddress     common.Address
  6792  	ValueOrTokenId   *big.Int
  6793  	HandleNonce      uint64
  6794  	LowerHandleNonce uint64
  6795  	ExtraData        []byte
  6796  	Raw              types.Log // Blockchain specific contextual infos
  6797  }
  6798  
  6799  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  6800  //
  6801  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  6802  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC20HandleValueTransferIterator, error) {
  6803  
  6804  	var fromRule []interface{}
  6805  	for _, fromItem := range from {
  6806  		fromRule = append(fromRule, fromItem)
  6807  	}
  6808  	var toRule []interface{}
  6809  	for _, toItem := range to {
  6810  		toRule = append(toRule, toItem)
  6811  	}
  6812  	var tokenAddressRule []interface{}
  6813  	for _, tokenAddressItem := range tokenAddress {
  6814  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  6815  	}
  6816  
  6817  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  6818  	if err != nil {
  6819  		return nil, err
  6820  	}
  6821  	return &BridgeTransferERC20HandleValueTransferIterator{contract: _BridgeTransferERC20.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
  6822  }
  6823  
  6824  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  6825  //
  6826  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  6827  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20HandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  6828  
  6829  	var fromRule []interface{}
  6830  	for _, fromItem := range from {
  6831  		fromRule = append(fromRule, fromItem)
  6832  	}
  6833  	var toRule []interface{}
  6834  	for _, toItem := range to {
  6835  		toRule = append(toRule, toItem)
  6836  	}
  6837  	var tokenAddressRule []interface{}
  6838  	for _, tokenAddressItem := range tokenAddress {
  6839  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  6840  	}
  6841  
  6842  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  6843  	if err != nil {
  6844  		return nil, err
  6845  	}
  6846  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6847  		defer sub.Unsubscribe()
  6848  		for {
  6849  			select {
  6850  			case log := <-logs:
  6851  				// New log arrived, parse the event and forward to the user
  6852  				event := new(BridgeTransferERC20HandleValueTransfer)
  6853  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  6854  					return err
  6855  				}
  6856  				event.Raw = log
  6857  
  6858  				select {
  6859  				case sink <- event:
  6860  				case err := <-sub.Err():
  6861  					return err
  6862  				case <-quit:
  6863  					return nil
  6864  				}
  6865  			case err := <-sub.Err():
  6866  				return err
  6867  			case <-quit:
  6868  				return nil
  6869  			}
  6870  		}
  6871  	}), nil
  6872  }
  6873  
  6874  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  6875  //
  6876  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  6877  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferERC20HandleValueTransfer, error) {
  6878  	event := new(BridgeTransferERC20HandleValueTransfer)
  6879  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  6880  		return nil, err
  6881  	}
  6882  	return event, nil
  6883  }
  6884  
  6885  // BridgeTransferERC20KLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransferERC20 contract.
  6886  type BridgeTransferERC20KLAYFeeChangedIterator struct {
  6887  	Event *BridgeTransferERC20KLAYFeeChanged // Event containing the contract specifics and raw log
  6888  
  6889  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6890  	event    string              // Event name to use for unpacking event data
  6891  
  6892  	logs chan types.Log      // Log channel receiving the found contract events
  6893  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6894  	done bool                // Whether the subscription completed delivering logs
  6895  	fail error               // Occurred error to stop iteration
  6896  }
  6897  
  6898  // Next advances the iterator to the subsequent event, returning whether there
  6899  // are any more events found. In case of a retrieval or parsing error, false is
  6900  // returned and Error() can be queried for the exact failure.
  6901  func (it *BridgeTransferERC20KLAYFeeChangedIterator) Next() bool {
  6902  	// If the iterator failed, stop iterating
  6903  	if it.fail != nil {
  6904  		return false
  6905  	}
  6906  	// If the iterator completed, deliver directly whatever's available
  6907  	if it.done {
  6908  		select {
  6909  		case log := <-it.logs:
  6910  			it.Event = new(BridgeTransferERC20KLAYFeeChanged)
  6911  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6912  				it.fail = err
  6913  				return false
  6914  			}
  6915  			it.Event.Raw = log
  6916  			return true
  6917  
  6918  		default:
  6919  			return false
  6920  		}
  6921  	}
  6922  	// Iterator still in progress, wait for either a data or an error event
  6923  	select {
  6924  	case log := <-it.logs:
  6925  		it.Event = new(BridgeTransferERC20KLAYFeeChanged)
  6926  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6927  			it.fail = err
  6928  			return false
  6929  		}
  6930  		it.Event.Raw = log
  6931  		return true
  6932  
  6933  	case err := <-it.sub.Err():
  6934  		it.done = true
  6935  		it.fail = err
  6936  		return it.Next()
  6937  	}
  6938  }
  6939  
  6940  // Error returns any retrieval or parsing error occurred during filtering.
  6941  func (it *BridgeTransferERC20KLAYFeeChangedIterator) Error() error {
  6942  	return it.fail
  6943  }
  6944  
  6945  // Close terminates the iteration process, releasing any pending underlying
  6946  // resources.
  6947  func (it *BridgeTransferERC20KLAYFeeChangedIterator) Close() error {
  6948  	it.sub.Unsubscribe()
  6949  	return nil
  6950  }
  6951  
  6952  // BridgeTransferERC20KLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransferERC20 contract.
  6953  type BridgeTransferERC20KLAYFeeChanged struct {
  6954  	Fee *big.Int
  6955  	Raw types.Log // Blockchain specific contextual infos
  6956  }
  6957  
  6958  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  6959  //
  6960  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  6961  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferERC20KLAYFeeChangedIterator, error) {
  6962  
  6963  	var feeRule []interface{}
  6964  	for _, feeItem := range fee {
  6965  		feeRule = append(feeRule, feeItem)
  6966  	}
  6967  
  6968  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
  6969  	if err != nil {
  6970  		return nil, err
  6971  	}
  6972  	return &BridgeTransferERC20KLAYFeeChangedIterator{contract: _BridgeTransferERC20.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
  6973  }
  6974  
  6975  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  6976  //
  6977  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  6978  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20KLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
  6979  
  6980  	var feeRule []interface{}
  6981  	for _, feeItem := range fee {
  6982  		feeRule = append(feeRule, feeItem)
  6983  	}
  6984  
  6985  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
  6986  	if err != nil {
  6987  		return nil, err
  6988  	}
  6989  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6990  		defer sub.Unsubscribe()
  6991  		for {
  6992  			select {
  6993  			case log := <-logs:
  6994  				// New log arrived, parse the event and forward to the user
  6995  				event := new(BridgeTransferERC20KLAYFeeChanged)
  6996  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  6997  					return err
  6998  				}
  6999  				event.Raw = log
  7000  
  7001  				select {
  7002  				case sink <- event:
  7003  				case err := <-sub.Err():
  7004  					return err
  7005  				case <-quit:
  7006  					return nil
  7007  				}
  7008  			case err := <-sub.Err():
  7009  				return err
  7010  			case <-quit:
  7011  				return nil
  7012  			}
  7013  		}
  7014  	}), nil
  7015  }
  7016  
  7017  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  7018  //
  7019  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  7020  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferERC20KLAYFeeChanged, error) {
  7021  	event := new(BridgeTransferERC20KLAYFeeChanged)
  7022  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  7023  		return nil, err
  7024  	}
  7025  	return event, nil
  7026  }
  7027  
  7028  // BridgeTransferERC20OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransferERC20 contract.
  7029  type BridgeTransferERC20OwnershipTransferredIterator struct {
  7030  	Event *BridgeTransferERC20OwnershipTransferred // Event containing the contract specifics and raw log
  7031  
  7032  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7033  	event    string              // Event name to use for unpacking event data
  7034  
  7035  	logs chan types.Log      // Log channel receiving the found contract events
  7036  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7037  	done bool                // Whether the subscription completed delivering logs
  7038  	fail error               // Occurred error to stop iteration
  7039  }
  7040  
  7041  // Next advances the iterator to the subsequent event, returning whether there
  7042  // are any more events found. In case of a retrieval or parsing error, false is
  7043  // returned and Error() can be queried for the exact failure.
  7044  func (it *BridgeTransferERC20OwnershipTransferredIterator) Next() bool {
  7045  	// If the iterator failed, stop iterating
  7046  	if it.fail != nil {
  7047  		return false
  7048  	}
  7049  	// If the iterator completed, deliver directly whatever's available
  7050  	if it.done {
  7051  		select {
  7052  		case log := <-it.logs:
  7053  			it.Event = new(BridgeTransferERC20OwnershipTransferred)
  7054  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7055  				it.fail = err
  7056  				return false
  7057  			}
  7058  			it.Event.Raw = log
  7059  			return true
  7060  
  7061  		default:
  7062  			return false
  7063  		}
  7064  	}
  7065  	// Iterator still in progress, wait for either a data or an error event
  7066  	select {
  7067  	case log := <-it.logs:
  7068  		it.Event = new(BridgeTransferERC20OwnershipTransferred)
  7069  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7070  			it.fail = err
  7071  			return false
  7072  		}
  7073  		it.Event.Raw = log
  7074  		return true
  7075  
  7076  	case err := <-it.sub.Err():
  7077  		it.done = true
  7078  		it.fail = err
  7079  		return it.Next()
  7080  	}
  7081  }
  7082  
  7083  // Error returns any retrieval or parsing error occurred during filtering.
  7084  func (it *BridgeTransferERC20OwnershipTransferredIterator) Error() error {
  7085  	return it.fail
  7086  }
  7087  
  7088  // Close terminates the iteration process, releasing any pending underlying
  7089  // resources.
  7090  func (it *BridgeTransferERC20OwnershipTransferredIterator) Close() error {
  7091  	it.sub.Unsubscribe()
  7092  	return nil
  7093  }
  7094  
  7095  // BridgeTransferERC20OwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransferERC20 contract.
  7096  type BridgeTransferERC20OwnershipTransferred struct {
  7097  	PreviousOwner common.Address
  7098  	NewOwner      common.Address
  7099  	Raw           types.Log // Blockchain specific contextual infos
  7100  }
  7101  
  7102  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7103  //
  7104  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7105  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferERC20OwnershipTransferredIterator, error) {
  7106  
  7107  	var previousOwnerRule []interface{}
  7108  	for _, previousOwnerItem := range previousOwner {
  7109  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7110  	}
  7111  	var newOwnerRule []interface{}
  7112  	for _, newOwnerItem := range newOwner {
  7113  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7114  	}
  7115  
  7116  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7117  	if err != nil {
  7118  		return nil, err
  7119  	}
  7120  	return &BridgeTransferERC20OwnershipTransferredIterator{contract: _BridgeTransferERC20.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  7121  }
  7122  
  7123  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7124  //
  7125  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7126  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  7127  
  7128  	var previousOwnerRule []interface{}
  7129  	for _, previousOwnerItem := range previousOwner {
  7130  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7131  	}
  7132  	var newOwnerRule []interface{}
  7133  	for _, newOwnerItem := range newOwner {
  7134  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7135  	}
  7136  
  7137  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7138  	if err != nil {
  7139  		return nil, err
  7140  	}
  7141  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7142  		defer sub.Unsubscribe()
  7143  		for {
  7144  			select {
  7145  			case log := <-logs:
  7146  				// New log arrived, parse the event and forward to the user
  7147  				event := new(BridgeTransferERC20OwnershipTransferred)
  7148  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7149  					return err
  7150  				}
  7151  				event.Raw = log
  7152  
  7153  				select {
  7154  				case sink <- event:
  7155  				case err := <-sub.Err():
  7156  					return err
  7157  				case <-quit:
  7158  					return nil
  7159  				}
  7160  			case err := <-sub.Err():
  7161  				return err
  7162  			case <-quit:
  7163  				return nil
  7164  			}
  7165  		}
  7166  	}), nil
  7167  }
  7168  
  7169  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7170  //
  7171  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7172  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferERC20OwnershipTransferred, error) {
  7173  	event := new(BridgeTransferERC20OwnershipTransferred)
  7174  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7175  		return nil, err
  7176  	}
  7177  	return event, nil
  7178  }
  7179  
  7180  // BridgeTransferERC20RequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransferERC20 contract.
  7181  type BridgeTransferERC20RequestValueTransferIterator struct {
  7182  	Event *BridgeTransferERC20RequestValueTransfer // Event containing the contract specifics and raw log
  7183  
  7184  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7185  	event    string              // Event name to use for unpacking event data
  7186  
  7187  	logs chan types.Log      // Log channel receiving the found contract events
  7188  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7189  	done bool                // Whether the subscription completed delivering logs
  7190  	fail error               // Occurred error to stop iteration
  7191  }
  7192  
  7193  // Next advances the iterator to the subsequent event, returning whether there
  7194  // are any more events found. In case of a retrieval or parsing error, false is
  7195  // returned and Error() can be queried for the exact failure.
  7196  func (it *BridgeTransferERC20RequestValueTransferIterator) Next() bool {
  7197  	// If the iterator failed, stop iterating
  7198  	if it.fail != nil {
  7199  		return false
  7200  	}
  7201  	// If the iterator completed, deliver directly whatever's available
  7202  	if it.done {
  7203  		select {
  7204  		case log := <-it.logs:
  7205  			it.Event = new(BridgeTransferERC20RequestValueTransfer)
  7206  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7207  				it.fail = err
  7208  				return false
  7209  			}
  7210  			it.Event.Raw = log
  7211  			return true
  7212  
  7213  		default:
  7214  			return false
  7215  		}
  7216  	}
  7217  	// Iterator still in progress, wait for either a data or an error event
  7218  	select {
  7219  	case log := <-it.logs:
  7220  		it.Event = new(BridgeTransferERC20RequestValueTransfer)
  7221  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7222  			it.fail = err
  7223  			return false
  7224  		}
  7225  		it.Event.Raw = log
  7226  		return true
  7227  
  7228  	case err := <-it.sub.Err():
  7229  		it.done = true
  7230  		it.fail = err
  7231  		return it.Next()
  7232  	}
  7233  }
  7234  
  7235  // Error returns any retrieval or parsing error occurred during filtering.
  7236  func (it *BridgeTransferERC20RequestValueTransferIterator) Error() error {
  7237  	return it.fail
  7238  }
  7239  
  7240  // Close terminates the iteration process, releasing any pending underlying
  7241  // resources.
  7242  func (it *BridgeTransferERC20RequestValueTransferIterator) Close() error {
  7243  	it.sub.Unsubscribe()
  7244  	return nil
  7245  }
  7246  
  7247  // BridgeTransferERC20RequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransferERC20 contract.
  7248  type BridgeTransferERC20RequestValueTransfer struct {
  7249  	TokenType      uint8
  7250  	From           common.Address
  7251  	To             common.Address
  7252  	TokenAddress   common.Address
  7253  	ValueOrTokenId *big.Int
  7254  	RequestNonce   uint64
  7255  	Fee            *big.Int
  7256  	ExtraData      []byte
  7257  	Raw            types.Log // Blockchain specific contextual infos
  7258  }
  7259  
  7260  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  7261  //
  7262  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  7263  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC20RequestValueTransferIterator, error) {
  7264  
  7265  	var fromRule []interface{}
  7266  	for _, fromItem := range from {
  7267  		fromRule = append(fromRule, fromItem)
  7268  	}
  7269  	var toRule []interface{}
  7270  	for _, toItem := range to {
  7271  		toRule = append(toRule, toItem)
  7272  	}
  7273  	var tokenAddressRule []interface{}
  7274  	for _, tokenAddressItem := range tokenAddress {
  7275  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  7276  	}
  7277  
  7278  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  7279  	if err != nil {
  7280  		return nil, err
  7281  	}
  7282  	return &BridgeTransferERC20RequestValueTransferIterator{contract: _BridgeTransferERC20.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
  7283  }
  7284  
  7285  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  7286  //
  7287  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  7288  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20RequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  7289  
  7290  	var fromRule []interface{}
  7291  	for _, fromItem := range from {
  7292  		fromRule = append(fromRule, fromItem)
  7293  	}
  7294  	var toRule []interface{}
  7295  	for _, toItem := range to {
  7296  		toRule = append(toRule, toItem)
  7297  	}
  7298  	var tokenAddressRule []interface{}
  7299  	for _, tokenAddressItem := range tokenAddress {
  7300  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  7301  	}
  7302  
  7303  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  7304  	if err != nil {
  7305  		return nil, err
  7306  	}
  7307  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7308  		defer sub.Unsubscribe()
  7309  		for {
  7310  			select {
  7311  			case log := <-logs:
  7312  				// New log arrived, parse the event and forward to the user
  7313  				event := new(BridgeTransferERC20RequestValueTransfer)
  7314  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  7315  					return err
  7316  				}
  7317  				event.Raw = log
  7318  
  7319  				select {
  7320  				case sink <- event:
  7321  				case err := <-sub.Err():
  7322  					return err
  7323  				case <-quit:
  7324  					return nil
  7325  				}
  7326  			case err := <-sub.Err():
  7327  				return err
  7328  			case <-quit:
  7329  				return nil
  7330  			}
  7331  		}
  7332  	}), nil
  7333  }
  7334  
  7335  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  7336  //
  7337  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  7338  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferERC20RequestValueTransfer, error) {
  7339  	event := new(BridgeTransferERC20RequestValueTransfer)
  7340  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  7341  		return nil, err
  7342  	}
  7343  	return event, nil
  7344  }
  7345  
  7346  // BridgeTransferERC20RequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransferERC20 contract.
  7347  type BridgeTransferERC20RequestValueTransferEncodedIterator struct {
  7348  	Event *BridgeTransferERC20RequestValueTransferEncoded // Event containing the contract specifics and raw log
  7349  
  7350  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7351  	event    string              // Event name to use for unpacking event data
  7352  
  7353  	logs chan types.Log      // Log channel receiving the found contract events
  7354  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7355  	done bool                // Whether the subscription completed delivering logs
  7356  	fail error               // Occurred error to stop iteration
  7357  }
  7358  
  7359  // Next advances the iterator to the subsequent event, returning whether there
  7360  // are any more events found. In case of a retrieval or parsing error, false is
  7361  // returned and Error() can be queried for the exact failure.
  7362  func (it *BridgeTransferERC20RequestValueTransferEncodedIterator) Next() bool {
  7363  	// If the iterator failed, stop iterating
  7364  	if it.fail != nil {
  7365  		return false
  7366  	}
  7367  	// If the iterator completed, deliver directly whatever's available
  7368  	if it.done {
  7369  		select {
  7370  		case log := <-it.logs:
  7371  			it.Event = new(BridgeTransferERC20RequestValueTransferEncoded)
  7372  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7373  				it.fail = err
  7374  				return false
  7375  			}
  7376  			it.Event.Raw = log
  7377  			return true
  7378  
  7379  		default:
  7380  			return false
  7381  		}
  7382  	}
  7383  	// Iterator still in progress, wait for either a data or an error event
  7384  	select {
  7385  	case log := <-it.logs:
  7386  		it.Event = new(BridgeTransferERC20RequestValueTransferEncoded)
  7387  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7388  			it.fail = err
  7389  			return false
  7390  		}
  7391  		it.Event.Raw = log
  7392  		return true
  7393  
  7394  	case err := <-it.sub.Err():
  7395  		it.done = true
  7396  		it.fail = err
  7397  		return it.Next()
  7398  	}
  7399  }
  7400  
  7401  // Error returns any retrieval or parsing error occurred during filtering.
  7402  func (it *BridgeTransferERC20RequestValueTransferEncodedIterator) Error() error {
  7403  	return it.fail
  7404  }
  7405  
  7406  // Close terminates the iteration process, releasing any pending underlying
  7407  // resources.
  7408  func (it *BridgeTransferERC20RequestValueTransferEncodedIterator) Close() error {
  7409  	it.sub.Unsubscribe()
  7410  	return nil
  7411  }
  7412  
  7413  // BridgeTransferERC20RequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransferERC20 contract.
  7414  type BridgeTransferERC20RequestValueTransferEncoded struct {
  7415  	TokenType      uint8
  7416  	From           common.Address
  7417  	To             common.Address
  7418  	TokenAddress   common.Address
  7419  	ValueOrTokenId *big.Int
  7420  	RequestNonce   uint64
  7421  	Fee            *big.Int
  7422  	ExtraData      []byte
  7423  	EncodingVer    uint8
  7424  	EncodedData    []byte
  7425  	Raw            types.Log // Blockchain specific contextual infos
  7426  }
  7427  
  7428  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  7429  //
  7430  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  7431  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC20RequestValueTransferEncodedIterator, error) {
  7432  
  7433  	var fromRule []interface{}
  7434  	for _, fromItem := range from {
  7435  		fromRule = append(fromRule, fromItem)
  7436  	}
  7437  	var toRule []interface{}
  7438  	for _, toItem := range to {
  7439  		toRule = append(toRule, toItem)
  7440  	}
  7441  	var tokenAddressRule []interface{}
  7442  	for _, tokenAddressItem := range tokenAddress {
  7443  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  7444  	}
  7445  
  7446  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  7447  	if err != nil {
  7448  		return nil, err
  7449  	}
  7450  	return &BridgeTransferERC20RequestValueTransferEncodedIterator{contract: _BridgeTransferERC20.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
  7451  }
  7452  
  7453  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  7454  //
  7455  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  7456  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20RequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  7457  
  7458  	var fromRule []interface{}
  7459  	for _, fromItem := range from {
  7460  		fromRule = append(fromRule, fromItem)
  7461  	}
  7462  	var toRule []interface{}
  7463  	for _, toItem := range to {
  7464  		toRule = append(toRule, toItem)
  7465  	}
  7466  	var tokenAddressRule []interface{}
  7467  	for _, tokenAddressItem := range tokenAddress {
  7468  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  7469  	}
  7470  
  7471  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  7472  	if err != nil {
  7473  		return nil, err
  7474  	}
  7475  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7476  		defer sub.Unsubscribe()
  7477  		for {
  7478  			select {
  7479  			case log := <-logs:
  7480  				// New log arrived, parse the event and forward to the user
  7481  				event := new(BridgeTransferERC20RequestValueTransferEncoded)
  7482  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  7483  					return err
  7484  				}
  7485  				event.Raw = log
  7486  
  7487  				select {
  7488  				case sink <- event:
  7489  				case err := <-sub.Err():
  7490  					return err
  7491  				case <-quit:
  7492  					return nil
  7493  				}
  7494  			case err := <-sub.Err():
  7495  				return err
  7496  			case <-quit:
  7497  				return nil
  7498  			}
  7499  		}
  7500  	}), nil
  7501  }
  7502  
  7503  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  7504  //
  7505  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  7506  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferERC20RequestValueTransferEncoded, error) {
  7507  	event := new(BridgeTransferERC20RequestValueTransferEncoded)
  7508  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  7509  		return nil, err
  7510  	}
  7511  	return event, nil
  7512  }
  7513  
  7514  // BridgeTransferERC20TokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the BridgeTransferERC20 contract.
  7515  type BridgeTransferERC20TokenDeregisteredIterator struct {
  7516  	Event *BridgeTransferERC20TokenDeregistered // Event containing the contract specifics and raw log
  7517  
  7518  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7519  	event    string              // Event name to use for unpacking event data
  7520  
  7521  	logs chan types.Log      // Log channel receiving the found contract events
  7522  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7523  	done bool                // Whether the subscription completed delivering logs
  7524  	fail error               // Occurred error to stop iteration
  7525  }
  7526  
  7527  // Next advances the iterator to the subsequent event, returning whether there
  7528  // are any more events found. In case of a retrieval or parsing error, false is
  7529  // returned and Error() can be queried for the exact failure.
  7530  func (it *BridgeTransferERC20TokenDeregisteredIterator) Next() bool {
  7531  	// If the iterator failed, stop iterating
  7532  	if it.fail != nil {
  7533  		return false
  7534  	}
  7535  	// If the iterator completed, deliver directly whatever's available
  7536  	if it.done {
  7537  		select {
  7538  		case log := <-it.logs:
  7539  			it.Event = new(BridgeTransferERC20TokenDeregistered)
  7540  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7541  				it.fail = err
  7542  				return false
  7543  			}
  7544  			it.Event.Raw = log
  7545  			return true
  7546  
  7547  		default:
  7548  			return false
  7549  		}
  7550  	}
  7551  	// Iterator still in progress, wait for either a data or an error event
  7552  	select {
  7553  	case log := <-it.logs:
  7554  		it.Event = new(BridgeTransferERC20TokenDeregistered)
  7555  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7556  			it.fail = err
  7557  			return false
  7558  		}
  7559  		it.Event.Raw = log
  7560  		return true
  7561  
  7562  	case err := <-it.sub.Err():
  7563  		it.done = true
  7564  		it.fail = err
  7565  		return it.Next()
  7566  	}
  7567  }
  7568  
  7569  // Error returns any retrieval or parsing error occurred during filtering.
  7570  func (it *BridgeTransferERC20TokenDeregisteredIterator) Error() error {
  7571  	return it.fail
  7572  }
  7573  
  7574  // Close terminates the iteration process, releasing any pending underlying
  7575  // resources.
  7576  func (it *BridgeTransferERC20TokenDeregisteredIterator) Close() error {
  7577  	it.sub.Unsubscribe()
  7578  	return nil
  7579  }
  7580  
  7581  // BridgeTransferERC20TokenDeregistered represents a TokenDeregistered event raised by the BridgeTransferERC20 contract.
  7582  type BridgeTransferERC20TokenDeregistered struct {
  7583  	Token common.Address
  7584  	Raw   types.Log // Blockchain specific contextual infos
  7585  }
  7586  
  7587  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  7588  //
  7589  // Solidity: event TokenDeregistered(address indexed token)
  7590  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenDeregisteredIterator, error) {
  7591  
  7592  	var tokenRule []interface{}
  7593  	for _, tokenItem := range token {
  7594  		tokenRule = append(tokenRule, tokenItem)
  7595  	}
  7596  
  7597  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
  7598  	if err != nil {
  7599  		return nil, err
  7600  	}
  7601  	return &BridgeTransferERC20TokenDeregisteredIterator{contract: _BridgeTransferERC20.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
  7602  }
  7603  
  7604  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  7605  //
  7606  // Solidity: event TokenDeregistered(address indexed token)
  7607  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenDeregistered, token []common.Address) (event.Subscription, error) {
  7608  
  7609  	var tokenRule []interface{}
  7610  	for _, tokenItem := range token {
  7611  		tokenRule = append(tokenRule, tokenItem)
  7612  	}
  7613  
  7614  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
  7615  	if err != nil {
  7616  		return nil, err
  7617  	}
  7618  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7619  		defer sub.Unsubscribe()
  7620  		for {
  7621  			select {
  7622  			case log := <-logs:
  7623  				// New log arrived, parse the event and forward to the user
  7624  				event := new(BridgeTransferERC20TokenDeregistered)
  7625  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  7626  					return err
  7627  				}
  7628  				event.Raw = log
  7629  
  7630  				select {
  7631  				case sink <- event:
  7632  				case err := <-sub.Err():
  7633  					return err
  7634  				case <-quit:
  7635  					return nil
  7636  				}
  7637  			case err := <-sub.Err():
  7638  				return err
  7639  			case <-quit:
  7640  				return nil
  7641  			}
  7642  		}
  7643  	}), nil
  7644  }
  7645  
  7646  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  7647  //
  7648  // Solidity: event TokenDeregistered(address indexed token)
  7649  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenDeregistered(log types.Log) (*BridgeTransferERC20TokenDeregistered, error) {
  7650  	event := new(BridgeTransferERC20TokenDeregistered)
  7651  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  7652  		return nil, err
  7653  	}
  7654  	return event, nil
  7655  }
  7656  
  7657  // BridgeTransferERC20TokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the BridgeTransferERC20 contract.
  7658  type BridgeTransferERC20TokenLockedIterator struct {
  7659  	Event *BridgeTransferERC20TokenLocked // Event containing the contract specifics and raw log
  7660  
  7661  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7662  	event    string              // Event name to use for unpacking event data
  7663  
  7664  	logs chan types.Log      // Log channel receiving the found contract events
  7665  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7666  	done bool                // Whether the subscription completed delivering logs
  7667  	fail error               // Occurred error to stop iteration
  7668  }
  7669  
  7670  // Next advances the iterator to the subsequent event, returning whether there
  7671  // are any more events found. In case of a retrieval or parsing error, false is
  7672  // returned and Error() can be queried for the exact failure.
  7673  func (it *BridgeTransferERC20TokenLockedIterator) Next() bool {
  7674  	// If the iterator failed, stop iterating
  7675  	if it.fail != nil {
  7676  		return false
  7677  	}
  7678  	// If the iterator completed, deliver directly whatever's available
  7679  	if it.done {
  7680  		select {
  7681  		case log := <-it.logs:
  7682  			it.Event = new(BridgeTransferERC20TokenLocked)
  7683  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7684  				it.fail = err
  7685  				return false
  7686  			}
  7687  			it.Event.Raw = log
  7688  			return true
  7689  
  7690  		default:
  7691  			return false
  7692  		}
  7693  	}
  7694  	// Iterator still in progress, wait for either a data or an error event
  7695  	select {
  7696  	case log := <-it.logs:
  7697  		it.Event = new(BridgeTransferERC20TokenLocked)
  7698  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7699  			it.fail = err
  7700  			return false
  7701  		}
  7702  		it.Event.Raw = log
  7703  		return true
  7704  
  7705  	case err := <-it.sub.Err():
  7706  		it.done = true
  7707  		it.fail = err
  7708  		return it.Next()
  7709  	}
  7710  }
  7711  
  7712  // Error returns any retrieval or parsing error occurred during filtering.
  7713  func (it *BridgeTransferERC20TokenLockedIterator) Error() error {
  7714  	return it.fail
  7715  }
  7716  
  7717  // Close terminates the iteration process, releasing any pending underlying
  7718  // resources.
  7719  func (it *BridgeTransferERC20TokenLockedIterator) Close() error {
  7720  	it.sub.Unsubscribe()
  7721  	return nil
  7722  }
  7723  
  7724  // BridgeTransferERC20TokenLocked represents a TokenLocked event raised by the BridgeTransferERC20 contract.
  7725  type BridgeTransferERC20TokenLocked struct {
  7726  	Token common.Address
  7727  	Raw   types.Log // Blockchain specific contextual infos
  7728  }
  7729  
  7730  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  7731  //
  7732  // Solidity: event TokenLocked(address indexed token)
  7733  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenLockedIterator, error) {
  7734  
  7735  	var tokenRule []interface{}
  7736  	for _, tokenItem := range token {
  7737  		tokenRule = append(tokenRule, tokenItem)
  7738  	}
  7739  
  7740  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenLocked", tokenRule)
  7741  	if err != nil {
  7742  		return nil, err
  7743  	}
  7744  	return &BridgeTransferERC20TokenLockedIterator{contract: _BridgeTransferERC20.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
  7745  }
  7746  
  7747  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  7748  //
  7749  // Solidity: event TokenLocked(address indexed token)
  7750  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenLocked, token []common.Address) (event.Subscription, error) {
  7751  
  7752  	var tokenRule []interface{}
  7753  	for _, tokenItem := range token {
  7754  		tokenRule = append(tokenRule, tokenItem)
  7755  	}
  7756  
  7757  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenLocked", tokenRule)
  7758  	if err != nil {
  7759  		return nil, err
  7760  	}
  7761  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7762  		defer sub.Unsubscribe()
  7763  		for {
  7764  			select {
  7765  			case log := <-logs:
  7766  				// New log arrived, parse the event and forward to the user
  7767  				event := new(BridgeTransferERC20TokenLocked)
  7768  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  7769  					return err
  7770  				}
  7771  				event.Raw = log
  7772  
  7773  				select {
  7774  				case sink <- event:
  7775  				case err := <-sub.Err():
  7776  					return err
  7777  				case <-quit:
  7778  					return nil
  7779  				}
  7780  			case err := <-sub.Err():
  7781  				return err
  7782  			case <-quit:
  7783  				return nil
  7784  			}
  7785  		}
  7786  	}), nil
  7787  }
  7788  
  7789  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  7790  //
  7791  // Solidity: event TokenLocked(address indexed token)
  7792  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenLocked(log types.Log) (*BridgeTransferERC20TokenLocked, error) {
  7793  	event := new(BridgeTransferERC20TokenLocked)
  7794  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  7795  		return nil, err
  7796  	}
  7797  	return event, nil
  7798  }
  7799  
  7800  // BridgeTransferERC20TokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the BridgeTransferERC20 contract.
  7801  type BridgeTransferERC20TokenRegisteredIterator struct {
  7802  	Event *BridgeTransferERC20TokenRegistered // Event containing the contract specifics and raw log
  7803  
  7804  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7805  	event    string              // Event name to use for unpacking event data
  7806  
  7807  	logs chan types.Log      // Log channel receiving the found contract events
  7808  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7809  	done bool                // Whether the subscription completed delivering logs
  7810  	fail error               // Occurred error to stop iteration
  7811  }
  7812  
  7813  // Next advances the iterator to the subsequent event, returning whether there
  7814  // are any more events found. In case of a retrieval or parsing error, false is
  7815  // returned and Error() can be queried for the exact failure.
  7816  func (it *BridgeTransferERC20TokenRegisteredIterator) Next() bool {
  7817  	// If the iterator failed, stop iterating
  7818  	if it.fail != nil {
  7819  		return false
  7820  	}
  7821  	// If the iterator completed, deliver directly whatever's available
  7822  	if it.done {
  7823  		select {
  7824  		case log := <-it.logs:
  7825  			it.Event = new(BridgeTransferERC20TokenRegistered)
  7826  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7827  				it.fail = err
  7828  				return false
  7829  			}
  7830  			it.Event.Raw = log
  7831  			return true
  7832  
  7833  		default:
  7834  			return false
  7835  		}
  7836  	}
  7837  	// Iterator still in progress, wait for either a data or an error event
  7838  	select {
  7839  	case log := <-it.logs:
  7840  		it.Event = new(BridgeTransferERC20TokenRegistered)
  7841  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7842  			it.fail = err
  7843  			return false
  7844  		}
  7845  		it.Event.Raw = log
  7846  		return true
  7847  
  7848  	case err := <-it.sub.Err():
  7849  		it.done = true
  7850  		it.fail = err
  7851  		return it.Next()
  7852  	}
  7853  }
  7854  
  7855  // Error returns any retrieval or parsing error occurred during filtering.
  7856  func (it *BridgeTransferERC20TokenRegisteredIterator) Error() error {
  7857  	return it.fail
  7858  }
  7859  
  7860  // Close terminates the iteration process, releasing any pending underlying
  7861  // resources.
  7862  func (it *BridgeTransferERC20TokenRegisteredIterator) Close() error {
  7863  	it.sub.Unsubscribe()
  7864  	return nil
  7865  }
  7866  
  7867  // BridgeTransferERC20TokenRegistered represents a TokenRegistered event raised by the BridgeTransferERC20 contract.
  7868  type BridgeTransferERC20TokenRegistered struct {
  7869  	Token common.Address
  7870  	Raw   types.Log // Blockchain specific contextual infos
  7871  }
  7872  
  7873  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  7874  //
  7875  // Solidity: event TokenRegistered(address indexed token)
  7876  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenRegisteredIterator, error) {
  7877  
  7878  	var tokenRule []interface{}
  7879  	for _, tokenItem := range token {
  7880  		tokenRule = append(tokenRule, tokenItem)
  7881  	}
  7882  
  7883  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
  7884  	if err != nil {
  7885  		return nil, err
  7886  	}
  7887  	return &BridgeTransferERC20TokenRegisteredIterator{contract: _BridgeTransferERC20.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
  7888  }
  7889  
  7890  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  7891  //
  7892  // Solidity: event TokenRegistered(address indexed token)
  7893  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenRegistered, token []common.Address) (event.Subscription, error) {
  7894  
  7895  	var tokenRule []interface{}
  7896  	for _, tokenItem := range token {
  7897  		tokenRule = append(tokenRule, tokenItem)
  7898  	}
  7899  
  7900  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
  7901  	if err != nil {
  7902  		return nil, err
  7903  	}
  7904  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7905  		defer sub.Unsubscribe()
  7906  		for {
  7907  			select {
  7908  			case log := <-logs:
  7909  				// New log arrived, parse the event and forward to the user
  7910  				event := new(BridgeTransferERC20TokenRegistered)
  7911  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  7912  					return err
  7913  				}
  7914  				event.Raw = log
  7915  
  7916  				select {
  7917  				case sink <- event:
  7918  				case err := <-sub.Err():
  7919  					return err
  7920  				case <-quit:
  7921  					return nil
  7922  				}
  7923  			case err := <-sub.Err():
  7924  				return err
  7925  			case <-quit:
  7926  				return nil
  7927  			}
  7928  		}
  7929  	}), nil
  7930  }
  7931  
  7932  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  7933  //
  7934  // Solidity: event TokenRegistered(address indexed token)
  7935  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenRegistered(log types.Log) (*BridgeTransferERC20TokenRegistered, error) {
  7936  	event := new(BridgeTransferERC20TokenRegistered)
  7937  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  7938  		return nil, err
  7939  	}
  7940  	return event, nil
  7941  }
  7942  
  7943  // BridgeTransferERC20TokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the BridgeTransferERC20 contract.
  7944  type BridgeTransferERC20TokenUnlockedIterator struct {
  7945  	Event *BridgeTransferERC20TokenUnlocked // Event containing the contract specifics and raw log
  7946  
  7947  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7948  	event    string              // Event name to use for unpacking event data
  7949  
  7950  	logs chan types.Log      // Log channel receiving the found contract events
  7951  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7952  	done bool                // Whether the subscription completed delivering logs
  7953  	fail error               // Occurred error to stop iteration
  7954  }
  7955  
  7956  // Next advances the iterator to the subsequent event, returning whether there
  7957  // are any more events found. In case of a retrieval or parsing error, false is
  7958  // returned and Error() can be queried for the exact failure.
  7959  func (it *BridgeTransferERC20TokenUnlockedIterator) Next() bool {
  7960  	// If the iterator failed, stop iterating
  7961  	if it.fail != nil {
  7962  		return false
  7963  	}
  7964  	// If the iterator completed, deliver directly whatever's available
  7965  	if it.done {
  7966  		select {
  7967  		case log := <-it.logs:
  7968  			it.Event = new(BridgeTransferERC20TokenUnlocked)
  7969  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7970  				it.fail = err
  7971  				return false
  7972  			}
  7973  			it.Event.Raw = log
  7974  			return true
  7975  
  7976  		default:
  7977  			return false
  7978  		}
  7979  	}
  7980  	// Iterator still in progress, wait for either a data or an error event
  7981  	select {
  7982  	case log := <-it.logs:
  7983  		it.Event = new(BridgeTransferERC20TokenUnlocked)
  7984  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7985  			it.fail = err
  7986  			return false
  7987  		}
  7988  		it.Event.Raw = log
  7989  		return true
  7990  
  7991  	case err := <-it.sub.Err():
  7992  		it.done = true
  7993  		it.fail = err
  7994  		return it.Next()
  7995  	}
  7996  }
  7997  
  7998  // Error returns any retrieval or parsing error occurred during filtering.
  7999  func (it *BridgeTransferERC20TokenUnlockedIterator) Error() error {
  8000  	return it.fail
  8001  }
  8002  
  8003  // Close terminates the iteration process, releasing any pending underlying
  8004  // resources.
  8005  func (it *BridgeTransferERC20TokenUnlockedIterator) Close() error {
  8006  	it.sub.Unsubscribe()
  8007  	return nil
  8008  }
  8009  
  8010  // BridgeTransferERC20TokenUnlocked represents a TokenUnlocked event raised by the BridgeTransferERC20 contract.
  8011  type BridgeTransferERC20TokenUnlocked struct {
  8012  	Token common.Address
  8013  	Raw   types.Log // Blockchain specific contextual infos
  8014  }
  8015  
  8016  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  8017  //
  8018  // Solidity: event TokenUnlocked(address indexed token)
  8019  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenUnlockedIterator, error) {
  8020  
  8021  	var tokenRule []interface{}
  8022  	for _, tokenItem := range token {
  8023  		tokenRule = append(tokenRule, tokenItem)
  8024  	}
  8025  
  8026  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
  8027  	if err != nil {
  8028  		return nil, err
  8029  	}
  8030  	return &BridgeTransferERC20TokenUnlockedIterator{contract: _BridgeTransferERC20.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
  8031  }
  8032  
  8033  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  8034  //
  8035  // Solidity: event TokenUnlocked(address indexed token)
  8036  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenUnlocked, token []common.Address) (event.Subscription, error) {
  8037  
  8038  	var tokenRule []interface{}
  8039  	for _, tokenItem := range token {
  8040  		tokenRule = append(tokenRule, tokenItem)
  8041  	}
  8042  
  8043  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
  8044  	if err != nil {
  8045  		return nil, err
  8046  	}
  8047  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8048  		defer sub.Unsubscribe()
  8049  		for {
  8050  			select {
  8051  			case log := <-logs:
  8052  				// New log arrived, parse the event and forward to the user
  8053  				event := new(BridgeTransferERC20TokenUnlocked)
  8054  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  8055  					return err
  8056  				}
  8057  				event.Raw = log
  8058  
  8059  				select {
  8060  				case sink <- event:
  8061  				case err := <-sub.Err():
  8062  					return err
  8063  				case <-quit:
  8064  					return nil
  8065  				}
  8066  			case err := <-sub.Err():
  8067  				return err
  8068  			case <-quit:
  8069  				return nil
  8070  			}
  8071  		}
  8072  	}), nil
  8073  }
  8074  
  8075  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  8076  //
  8077  // Solidity: event TokenUnlocked(address indexed token)
  8078  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenUnlocked(log types.Log) (*BridgeTransferERC20TokenUnlocked, error) {
  8079  	event := new(BridgeTransferERC20TokenUnlocked)
  8080  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  8081  		return nil, err
  8082  	}
  8083  	return event, nil
  8084  }
  8085  
  8086  // BridgeTransferERC721MetaData contains all meta data concerning the BridgeTransferERC721 contract.
  8087  var BridgeTransferERC721MetaData = &bind.MetaData{
  8088  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_tokenURI\",\"type\":\"string\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
  8089  	Sigs: map[string]string{
  8090  		"3a3099d1": "MAX_OPERATOR()",
  8091  		"9832c1d7": "closedValueTransferVotes(uint64)",
  8092  		"ac6fff0b": "configurationNonce()",
  8093  		"d8cf98ca": "deregisterOperator(address)",
  8094  		"bab2af1d": "deregisterToken(address)",
  8095  		"488af871": "feeOfERC20(address)",
  8096  		"c263b5d6": "feeOfKLAY()",
  8097  		"b3f00674": "feeReceiver()",
  8098  		"b2c01030": "getOperatorList()",
  8099  		"ea21eade": "getRegisteredTokenList()",
  8100  		"afb60223": "handleERC721Transfer(bytes32,address,address,address,uint256,uint64,uint64,string,bytes)",
  8101  		"13a6738a": "handleNoncesToBlockNums(uint64)",
  8102  		"8a75eee2": "handledRequestTx(bytes32)",
  8103  		"48a18a6a": "indexOfTokens(address)",
  8104  		"8f32d59b": "isOwner()",
  8105  		"2014e5d1": "isRunning()",
  8106  		"10693fcd": "lockToken(address)",
  8107  		"5eb7413a": "lockedTokens(address)",
  8108  		"4b40b826": "lowerHandleNonce()",
  8109  		"6e176ec2": "modeMintBurn()",
  8110  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
  8111  		"cb38f407": "operatorList(uint256)",
  8112  		"5526f76b": "operatorThresholds(uint8)",
  8113  		"13e7c9d8": "operators(address)",
  8114  		"8da5cb5b": "owner()",
  8115  		"989ba0d3": "recoveryBlockNumber()",
  8116  		"3682a450": "registerOperator(address)",
  8117  		"4739f7e5": "registerToken(address,address)",
  8118  		"3e4fe949": "registeredTokenList(uint256)",
  8119  		"8c0bd916": "registeredTokens(address)",
  8120  		"715018a6": "renounceOwnership()",
  8121  		"22604742": "requestERC721Transfer(address,address,uint256,bytes)",
  8122  		"7c1a0302": "requestNonce()",
  8123  		"efdcd974": "setFeeReceiver(address)",
  8124  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  8125  		"c877cf37": "start(bool)",
  8126  		"f2fde38b": "transferOwnership(address)",
  8127  		"9ef2017b": "unlockToken(address)",
  8128  		"54edad72": "upperHandleNonce()",
  8129  	},
  8130  }
  8131  
  8132  // BridgeTransferERC721ABI is the input ABI used to generate the binding from.
  8133  // Deprecated: Use BridgeTransferERC721MetaData.ABI instead.
  8134  var BridgeTransferERC721ABI = BridgeTransferERC721MetaData.ABI
  8135  
  8136  // BridgeTransferERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  8137  const BridgeTransferERC721BinRuntime = ``
  8138  
  8139  // BridgeTransferERC721FuncSigs maps the 4-byte function signature to its string representation.
  8140  // Deprecated: Use BridgeTransferERC721MetaData.Sigs instead.
  8141  var BridgeTransferERC721FuncSigs = BridgeTransferERC721MetaData.Sigs
  8142  
  8143  // BridgeTransferERC721 is an auto generated Go binding around a Klaytn contract.
  8144  type BridgeTransferERC721 struct {
  8145  	BridgeTransferERC721Caller     // Read-only binding to the contract
  8146  	BridgeTransferERC721Transactor // Write-only binding to the contract
  8147  	BridgeTransferERC721Filterer   // Log filterer for contract events
  8148  }
  8149  
  8150  // BridgeTransferERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
  8151  type BridgeTransferERC721Caller struct {
  8152  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8153  }
  8154  
  8155  // BridgeTransferERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
  8156  type BridgeTransferERC721Transactor struct {
  8157  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8158  }
  8159  
  8160  // BridgeTransferERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  8161  type BridgeTransferERC721Filterer struct {
  8162  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8163  }
  8164  
  8165  // BridgeTransferERC721Session is an auto generated Go binding around a Klaytn contract,
  8166  // with pre-set call and transact options.
  8167  type BridgeTransferERC721Session struct {
  8168  	Contract     *BridgeTransferERC721 // Generic contract binding to set the session for
  8169  	CallOpts     bind.CallOpts         // Call options to use throughout this session
  8170  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  8171  }
  8172  
  8173  // BridgeTransferERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  8174  // with pre-set call options.
  8175  type BridgeTransferERC721CallerSession struct {
  8176  	Contract *BridgeTransferERC721Caller // Generic contract caller binding to set the session for
  8177  	CallOpts bind.CallOpts               // Call options to use throughout this session
  8178  }
  8179  
  8180  // BridgeTransferERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  8181  // with pre-set transact options.
  8182  type BridgeTransferERC721TransactorSession struct {
  8183  	Contract     *BridgeTransferERC721Transactor // Generic contract transactor binding to set the session for
  8184  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
  8185  }
  8186  
  8187  // BridgeTransferERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
  8188  type BridgeTransferERC721Raw struct {
  8189  	Contract *BridgeTransferERC721 // Generic contract binding to access the raw methods on
  8190  }
  8191  
  8192  // BridgeTransferERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  8193  type BridgeTransferERC721CallerRaw struct {
  8194  	Contract *BridgeTransferERC721Caller // Generic read-only contract binding to access the raw methods on
  8195  }
  8196  
  8197  // BridgeTransferERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  8198  type BridgeTransferERC721TransactorRaw struct {
  8199  	Contract *BridgeTransferERC721Transactor // Generic write-only contract binding to access the raw methods on
  8200  }
  8201  
  8202  // NewBridgeTransferERC721 creates a new instance of BridgeTransferERC721, bound to a specific deployed contract.
  8203  func NewBridgeTransferERC721(address common.Address, backend bind.ContractBackend) (*BridgeTransferERC721, error) {
  8204  	contract, err := bindBridgeTransferERC721(address, backend, backend, backend)
  8205  	if err != nil {
  8206  		return nil, err
  8207  	}
  8208  	return &BridgeTransferERC721{BridgeTransferERC721Caller: BridgeTransferERC721Caller{contract: contract}, BridgeTransferERC721Transactor: BridgeTransferERC721Transactor{contract: contract}, BridgeTransferERC721Filterer: BridgeTransferERC721Filterer{contract: contract}}, nil
  8209  }
  8210  
  8211  // NewBridgeTransferERC721Caller creates a new read-only instance of BridgeTransferERC721, bound to a specific deployed contract.
  8212  func NewBridgeTransferERC721Caller(address common.Address, caller bind.ContractCaller) (*BridgeTransferERC721Caller, error) {
  8213  	contract, err := bindBridgeTransferERC721(address, caller, nil, nil)
  8214  	if err != nil {
  8215  		return nil, err
  8216  	}
  8217  	return &BridgeTransferERC721Caller{contract: contract}, nil
  8218  }
  8219  
  8220  // NewBridgeTransferERC721Transactor creates a new write-only instance of BridgeTransferERC721, bound to a specific deployed contract.
  8221  func NewBridgeTransferERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferERC721Transactor, error) {
  8222  	contract, err := bindBridgeTransferERC721(address, nil, transactor, nil)
  8223  	if err != nil {
  8224  		return nil, err
  8225  	}
  8226  	return &BridgeTransferERC721Transactor{contract: contract}, nil
  8227  }
  8228  
  8229  // NewBridgeTransferERC721Filterer creates a new log filterer instance of BridgeTransferERC721, bound to a specific deployed contract.
  8230  func NewBridgeTransferERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferERC721Filterer, error) {
  8231  	contract, err := bindBridgeTransferERC721(address, nil, nil, filterer)
  8232  	if err != nil {
  8233  		return nil, err
  8234  	}
  8235  	return &BridgeTransferERC721Filterer{contract: contract}, nil
  8236  }
  8237  
  8238  // bindBridgeTransferERC721 binds a generic wrapper to an already deployed contract.
  8239  func bindBridgeTransferERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  8240  	parsed, err := BridgeTransferERC721MetaData.GetAbi()
  8241  	if err != nil {
  8242  		return nil, err
  8243  	}
  8244  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  8245  }
  8246  
  8247  // Call invokes the (constant) contract method with params as input values and
  8248  // sets the output to result. The result type might be a single field for simple
  8249  // returns, a slice of interfaces for anonymous returns and a struct for named
  8250  // returns.
  8251  func (_BridgeTransferERC721 *BridgeTransferERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  8252  	return _BridgeTransferERC721.Contract.BridgeTransferERC721Caller.contract.Call(opts, result, method, params...)
  8253  }
  8254  
  8255  // Transfer initiates a plain transaction to move funds to the contract, calling
  8256  // its default method if one is available.
  8257  func (_BridgeTransferERC721 *BridgeTransferERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8258  	return _BridgeTransferERC721.Contract.BridgeTransferERC721Transactor.contract.Transfer(opts)
  8259  }
  8260  
  8261  // Transact invokes the (paid) contract method with params as input values.
  8262  func (_BridgeTransferERC721 *BridgeTransferERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8263  	return _BridgeTransferERC721.Contract.BridgeTransferERC721Transactor.contract.Transact(opts, method, params...)
  8264  }
  8265  
  8266  // Call invokes the (constant) contract method with params as input values and
  8267  // sets the output to result. The result type might be a single field for simple
  8268  // returns, a slice of interfaces for anonymous returns and a struct for named
  8269  // returns.
  8270  func (_BridgeTransferERC721 *BridgeTransferERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  8271  	return _BridgeTransferERC721.Contract.contract.Call(opts, result, method, params...)
  8272  }
  8273  
  8274  // Transfer initiates a plain transaction to move funds to the contract, calling
  8275  // its default method if one is available.
  8276  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8277  	return _BridgeTransferERC721.Contract.contract.Transfer(opts)
  8278  }
  8279  
  8280  // Transact invokes the (paid) contract method with params as input values.
  8281  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8282  	return _BridgeTransferERC721.Contract.contract.Transact(opts, method, params...)
  8283  }
  8284  
  8285  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  8286  //
  8287  // Solidity: function MAX_OPERATOR() view returns(uint64)
  8288  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  8289  	var out []interface{}
  8290  	err := _BridgeTransferERC721.contract.Call(opts, &out, "MAX_OPERATOR")
  8291  
  8292  	if err != nil {
  8293  		return *new(uint64), err
  8294  	}
  8295  
  8296  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  8297  
  8298  	return out0, err
  8299  
  8300  }
  8301  
  8302  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  8303  //
  8304  // Solidity: function MAX_OPERATOR() view returns(uint64)
  8305  func (_BridgeTransferERC721 *BridgeTransferERC721Session) MAXOPERATOR() (uint64, error) {
  8306  	return _BridgeTransferERC721.Contract.MAXOPERATOR(&_BridgeTransferERC721.CallOpts)
  8307  }
  8308  
  8309  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  8310  //
  8311  // Solidity: function MAX_OPERATOR() view returns(uint64)
  8312  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) MAXOPERATOR() (uint64, error) {
  8313  	return _BridgeTransferERC721.Contract.MAXOPERATOR(&_BridgeTransferERC721.CallOpts)
  8314  }
  8315  
  8316  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  8317  //
  8318  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  8319  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  8320  	var out []interface{}
  8321  	err := _BridgeTransferERC721.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  8322  
  8323  	if err != nil {
  8324  		return *new(bool), err
  8325  	}
  8326  
  8327  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8328  
  8329  	return out0, err
  8330  
  8331  }
  8332  
  8333  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  8334  //
  8335  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  8336  func (_BridgeTransferERC721 *BridgeTransferERC721Session) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  8337  	return _BridgeTransferERC721.Contract.ClosedValueTransferVotes(&_BridgeTransferERC721.CallOpts, arg0)
  8338  }
  8339  
  8340  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  8341  //
  8342  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  8343  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  8344  	return _BridgeTransferERC721.Contract.ClosedValueTransferVotes(&_BridgeTransferERC721.CallOpts, arg0)
  8345  }
  8346  
  8347  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  8348  //
  8349  // Solidity: function configurationNonce() view returns(uint64)
  8350  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  8351  	var out []interface{}
  8352  	err := _BridgeTransferERC721.contract.Call(opts, &out, "configurationNonce")
  8353  
  8354  	if err != nil {
  8355  		return *new(uint64), err
  8356  	}
  8357  
  8358  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  8359  
  8360  	return out0, err
  8361  
  8362  }
  8363  
  8364  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  8365  //
  8366  // Solidity: function configurationNonce() view returns(uint64)
  8367  func (_BridgeTransferERC721 *BridgeTransferERC721Session) ConfigurationNonce() (uint64, error) {
  8368  	return _BridgeTransferERC721.Contract.ConfigurationNonce(&_BridgeTransferERC721.CallOpts)
  8369  }
  8370  
  8371  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  8372  //
  8373  // Solidity: function configurationNonce() view returns(uint64)
  8374  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) ConfigurationNonce() (uint64, error) {
  8375  	return _BridgeTransferERC721.Contract.ConfigurationNonce(&_BridgeTransferERC721.CallOpts)
  8376  }
  8377  
  8378  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  8379  //
  8380  // Solidity: function feeOfERC20(address ) view returns(uint256)
  8381  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  8382  	var out []interface{}
  8383  	err := _BridgeTransferERC721.contract.Call(opts, &out, "feeOfERC20", arg0)
  8384  
  8385  	if err != nil {
  8386  		return *new(*big.Int), err
  8387  	}
  8388  
  8389  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  8390  
  8391  	return out0, err
  8392  
  8393  }
  8394  
  8395  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  8396  //
  8397  // Solidity: function feeOfERC20(address ) view returns(uint256)
  8398  func (_BridgeTransferERC721 *BridgeTransferERC721Session) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  8399  	return _BridgeTransferERC721.Contract.FeeOfERC20(&_BridgeTransferERC721.CallOpts, arg0)
  8400  }
  8401  
  8402  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  8403  //
  8404  // Solidity: function feeOfERC20(address ) view returns(uint256)
  8405  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  8406  	return _BridgeTransferERC721.Contract.FeeOfERC20(&_BridgeTransferERC721.CallOpts, arg0)
  8407  }
  8408  
  8409  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  8410  //
  8411  // Solidity: function feeOfKLAY() view returns(uint256)
  8412  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
  8413  	var out []interface{}
  8414  	err := _BridgeTransferERC721.contract.Call(opts, &out, "feeOfKLAY")
  8415  
  8416  	if err != nil {
  8417  		return *new(*big.Int), err
  8418  	}
  8419  
  8420  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  8421  
  8422  	return out0, err
  8423  
  8424  }
  8425  
  8426  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  8427  //
  8428  // Solidity: function feeOfKLAY() view returns(uint256)
  8429  func (_BridgeTransferERC721 *BridgeTransferERC721Session) FeeOfKLAY() (*big.Int, error) {
  8430  	return _BridgeTransferERC721.Contract.FeeOfKLAY(&_BridgeTransferERC721.CallOpts)
  8431  }
  8432  
  8433  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  8434  //
  8435  // Solidity: function feeOfKLAY() view returns(uint256)
  8436  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) FeeOfKLAY() (*big.Int, error) {
  8437  	return _BridgeTransferERC721.Contract.FeeOfKLAY(&_BridgeTransferERC721.CallOpts)
  8438  }
  8439  
  8440  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  8441  //
  8442  // Solidity: function feeReceiver() view returns(address)
  8443  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
  8444  	var out []interface{}
  8445  	err := _BridgeTransferERC721.contract.Call(opts, &out, "feeReceiver")
  8446  
  8447  	if err != nil {
  8448  		return *new(common.Address), err
  8449  	}
  8450  
  8451  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8452  
  8453  	return out0, err
  8454  
  8455  }
  8456  
  8457  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  8458  //
  8459  // Solidity: function feeReceiver() view returns(address)
  8460  func (_BridgeTransferERC721 *BridgeTransferERC721Session) FeeReceiver() (common.Address, error) {
  8461  	return _BridgeTransferERC721.Contract.FeeReceiver(&_BridgeTransferERC721.CallOpts)
  8462  }
  8463  
  8464  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  8465  //
  8466  // Solidity: function feeReceiver() view returns(address)
  8467  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) FeeReceiver() (common.Address, error) {
  8468  	return _BridgeTransferERC721.Contract.FeeReceiver(&_BridgeTransferERC721.CallOpts)
  8469  }
  8470  
  8471  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  8472  //
  8473  // Solidity: function getOperatorList() view returns(address[])
  8474  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  8475  	var out []interface{}
  8476  	err := _BridgeTransferERC721.contract.Call(opts, &out, "getOperatorList")
  8477  
  8478  	if err != nil {
  8479  		return *new([]common.Address), err
  8480  	}
  8481  
  8482  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  8483  
  8484  	return out0, err
  8485  
  8486  }
  8487  
  8488  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  8489  //
  8490  // Solidity: function getOperatorList() view returns(address[])
  8491  func (_BridgeTransferERC721 *BridgeTransferERC721Session) GetOperatorList() ([]common.Address, error) {
  8492  	return _BridgeTransferERC721.Contract.GetOperatorList(&_BridgeTransferERC721.CallOpts)
  8493  }
  8494  
  8495  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  8496  //
  8497  // Solidity: function getOperatorList() view returns(address[])
  8498  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) GetOperatorList() ([]common.Address, error) {
  8499  	return _BridgeTransferERC721.Contract.GetOperatorList(&_BridgeTransferERC721.CallOpts)
  8500  }
  8501  
  8502  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  8503  //
  8504  // Solidity: function getRegisteredTokenList() view returns(address[])
  8505  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
  8506  	var out []interface{}
  8507  	err := _BridgeTransferERC721.contract.Call(opts, &out, "getRegisteredTokenList")
  8508  
  8509  	if err != nil {
  8510  		return *new([]common.Address), err
  8511  	}
  8512  
  8513  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  8514  
  8515  	return out0, err
  8516  
  8517  }
  8518  
  8519  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  8520  //
  8521  // Solidity: function getRegisteredTokenList() view returns(address[])
  8522  func (_BridgeTransferERC721 *BridgeTransferERC721Session) GetRegisteredTokenList() ([]common.Address, error) {
  8523  	return _BridgeTransferERC721.Contract.GetRegisteredTokenList(&_BridgeTransferERC721.CallOpts)
  8524  }
  8525  
  8526  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  8527  //
  8528  // Solidity: function getRegisteredTokenList() view returns(address[])
  8529  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) GetRegisteredTokenList() ([]common.Address, error) {
  8530  	return _BridgeTransferERC721.Contract.GetRegisteredTokenList(&_BridgeTransferERC721.CallOpts)
  8531  }
  8532  
  8533  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  8534  //
  8535  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  8536  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
  8537  	var out []interface{}
  8538  	err := _BridgeTransferERC721.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
  8539  
  8540  	if err != nil {
  8541  		return *new(uint64), err
  8542  	}
  8543  
  8544  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  8545  
  8546  	return out0, err
  8547  
  8548  }
  8549  
  8550  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  8551  //
  8552  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  8553  func (_BridgeTransferERC721 *BridgeTransferERC721Session) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  8554  	return _BridgeTransferERC721.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC721.CallOpts, arg0)
  8555  }
  8556  
  8557  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  8558  //
  8559  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  8560  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  8561  	return _BridgeTransferERC721.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC721.CallOpts, arg0)
  8562  }
  8563  
  8564  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  8565  //
  8566  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  8567  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  8568  	var out []interface{}
  8569  	err := _BridgeTransferERC721.contract.Call(opts, &out, "handledRequestTx", arg0)
  8570  
  8571  	if err != nil {
  8572  		return *new(bool), err
  8573  	}
  8574  
  8575  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8576  
  8577  	return out0, err
  8578  
  8579  }
  8580  
  8581  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  8582  //
  8583  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  8584  func (_BridgeTransferERC721 *BridgeTransferERC721Session) HandledRequestTx(arg0 [32]byte) (bool, error) {
  8585  	return _BridgeTransferERC721.Contract.HandledRequestTx(&_BridgeTransferERC721.CallOpts, arg0)
  8586  }
  8587  
  8588  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  8589  //
  8590  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  8591  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  8592  	return _BridgeTransferERC721.Contract.HandledRequestTx(&_BridgeTransferERC721.CallOpts, arg0)
  8593  }
  8594  
  8595  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  8596  //
  8597  // Solidity: function indexOfTokens(address ) view returns(uint256)
  8598  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  8599  	var out []interface{}
  8600  	err := _BridgeTransferERC721.contract.Call(opts, &out, "indexOfTokens", arg0)
  8601  
  8602  	if err != nil {
  8603  		return *new(*big.Int), err
  8604  	}
  8605  
  8606  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  8607  
  8608  	return out0, err
  8609  
  8610  }
  8611  
  8612  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  8613  //
  8614  // Solidity: function indexOfTokens(address ) view returns(uint256)
  8615  func (_BridgeTransferERC721 *BridgeTransferERC721Session) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  8616  	return _BridgeTransferERC721.Contract.IndexOfTokens(&_BridgeTransferERC721.CallOpts, arg0)
  8617  }
  8618  
  8619  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  8620  //
  8621  // Solidity: function indexOfTokens(address ) view returns(uint256)
  8622  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  8623  	return _BridgeTransferERC721.Contract.IndexOfTokens(&_BridgeTransferERC721.CallOpts, arg0)
  8624  }
  8625  
  8626  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  8627  //
  8628  // Solidity: function isOwner() view returns(bool)
  8629  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) IsOwner(opts *bind.CallOpts) (bool, error) {
  8630  	var out []interface{}
  8631  	err := _BridgeTransferERC721.contract.Call(opts, &out, "isOwner")
  8632  
  8633  	if err != nil {
  8634  		return *new(bool), err
  8635  	}
  8636  
  8637  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8638  
  8639  	return out0, err
  8640  
  8641  }
  8642  
  8643  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  8644  //
  8645  // Solidity: function isOwner() view returns(bool)
  8646  func (_BridgeTransferERC721 *BridgeTransferERC721Session) IsOwner() (bool, error) {
  8647  	return _BridgeTransferERC721.Contract.IsOwner(&_BridgeTransferERC721.CallOpts)
  8648  }
  8649  
  8650  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  8651  //
  8652  // Solidity: function isOwner() view returns(bool)
  8653  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) IsOwner() (bool, error) {
  8654  	return _BridgeTransferERC721.Contract.IsOwner(&_BridgeTransferERC721.CallOpts)
  8655  }
  8656  
  8657  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  8658  //
  8659  // Solidity: function isRunning() view returns(bool)
  8660  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) IsRunning(opts *bind.CallOpts) (bool, error) {
  8661  	var out []interface{}
  8662  	err := _BridgeTransferERC721.contract.Call(opts, &out, "isRunning")
  8663  
  8664  	if err != nil {
  8665  		return *new(bool), err
  8666  	}
  8667  
  8668  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8669  
  8670  	return out0, err
  8671  
  8672  }
  8673  
  8674  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  8675  //
  8676  // Solidity: function isRunning() view returns(bool)
  8677  func (_BridgeTransferERC721 *BridgeTransferERC721Session) IsRunning() (bool, error) {
  8678  	return _BridgeTransferERC721.Contract.IsRunning(&_BridgeTransferERC721.CallOpts)
  8679  }
  8680  
  8681  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  8682  //
  8683  // Solidity: function isRunning() view returns(bool)
  8684  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) IsRunning() (bool, error) {
  8685  	return _BridgeTransferERC721.Contract.IsRunning(&_BridgeTransferERC721.CallOpts)
  8686  }
  8687  
  8688  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  8689  //
  8690  // Solidity: function lockedTokens(address ) view returns(bool)
  8691  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  8692  	var out []interface{}
  8693  	err := _BridgeTransferERC721.contract.Call(opts, &out, "lockedTokens", arg0)
  8694  
  8695  	if err != nil {
  8696  		return *new(bool), err
  8697  	}
  8698  
  8699  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8700  
  8701  	return out0, err
  8702  
  8703  }
  8704  
  8705  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  8706  //
  8707  // Solidity: function lockedTokens(address ) view returns(bool)
  8708  func (_BridgeTransferERC721 *BridgeTransferERC721Session) LockedTokens(arg0 common.Address) (bool, error) {
  8709  	return _BridgeTransferERC721.Contract.LockedTokens(&_BridgeTransferERC721.CallOpts, arg0)
  8710  }
  8711  
  8712  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  8713  //
  8714  // Solidity: function lockedTokens(address ) view returns(bool)
  8715  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) LockedTokens(arg0 common.Address) (bool, error) {
  8716  	return _BridgeTransferERC721.Contract.LockedTokens(&_BridgeTransferERC721.CallOpts, arg0)
  8717  }
  8718  
  8719  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  8720  //
  8721  // Solidity: function lowerHandleNonce() view returns(uint64)
  8722  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
  8723  	var out []interface{}
  8724  	err := _BridgeTransferERC721.contract.Call(opts, &out, "lowerHandleNonce")
  8725  
  8726  	if err != nil {
  8727  		return *new(uint64), err
  8728  	}
  8729  
  8730  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  8731  
  8732  	return out0, err
  8733  
  8734  }
  8735  
  8736  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  8737  //
  8738  // Solidity: function lowerHandleNonce() view returns(uint64)
  8739  func (_BridgeTransferERC721 *BridgeTransferERC721Session) LowerHandleNonce() (uint64, error) {
  8740  	return _BridgeTransferERC721.Contract.LowerHandleNonce(&_BridgeTransferERC721.CallOpts)
  8741  }
  8742  
  8743  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  8744  //
  8745  // Solidity: function lowerHandleNonce() view returns(uint64)
  8746  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) LowerHandleNonce() (uint64, error) {
  8747  	return _BridgeTransferERC721.Contract.LowerHandleNonce(&_BridgeTransferERC721.CallOpts)
  8748  }
  8749  
  8750  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  8751  //
  8752  // Solidity: function modeMintBurn() view returns(bool)
  8753  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
  8754  	var out []interface{}
  8755  	err := _BridgeTransferERC721.contract.Call(opts, &out, "modeMintBurn")
  8756  
  8757  	if err != nil {
  8758  		return *new(bool), err
  8759  	}
  8760  
  8761  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8762  
  8763  	return out0, err
  8764  
  8765  }
  8766  
  8767  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  8768  //
  8769  // Solidity: function modeMintBurn() view returns(bool)
  8770  func (_BridgeTransferERC721 *BridgeTransferERC721Session) ModeMintBurn() (bool, error) {
  8771  	return _BridgeTransferERC721.Contract.ModeMintBurn(&_BridgeTransferERC721.CallOpts)
  8772  }
  8773  
  8774  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  8775  //
  8776  // Solidity: function modeMintBurn() view returns(bool)
  8777  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) ModeMintBurn() (bool, error) {
  8778  	return _BridgeTransferERC721.Contract.ModeMintBurn(&_BridgeTransferERC721.CallOpts)
  8779  }
  8780  
  8781  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  8782  //
  8783  // Solidity: function operatorList(uint256 ) view returns(address)
  8784  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  8785  	var out []interface{}
  8786  	err := _BridgeTransferERC721.contract.Call(opts, &out, "operatorList", arg0)
  8787  
  8788  	if err != nil {
  8789  		return *new(common.Address), err
  8790  	}
  8791  
  8792  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8793  
  8794  	return out0, err
  8795  
  8796  }
  8797  
  8798  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  8799  //
  8800  // Solidity: function operatorList(uint256 ) view returns(address)
  8801  func (_BridgeTransferERC721 *BridgeTransferERC721Session) OperatorList(arg0 *big.Int) (common.Address, error) {
  8802  	return _BridgeTransferERC721.Contract.OperatorList(&_BridgeTransferERC721.CallOpts, arg0)
  8803  }
  8804  
  8805  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  8806  //
  8807  // Solidity: function operatorList(uint256 ) view returns(address)
  8808  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  8809  	return _BridgeTransferERC721.Contract.OperatorList(&_BridgeTransferERC721.CallOpts, arg0)
  8810  }
  8811  
  8812  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  8813  //
  8814  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  8815  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  8816  	var out []interface{}
  8817  	err := _BridgeTransferERC721.contract.Call(opts, &out, "operatorThresholds", arg0)
  8818  
  8819  	if err != nil {
  8820  		return *new(uint8), err
  8821  	}
  8822  
  8823  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  8824  
  8825  	return out0, err
  8826  
  8827  }
  8828  
  8829  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  8830  //
  8831  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  8832  func (_BridgeTransferERC721 *BridgeTransferERC721Session) OperatorThresholds(arg0 uint8) (uint8, error) {
  8833  	return _BridgeTransferERC721.Contract.OperatorThresholds(&_BridgeTransferERC721.CallOpts, arg0)
  8834  }
  8835  
  8836  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  8837  //
  8838  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  8839  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  8840  	return _BridgeTransferERC721.Contract.OperatorThresholds(&_BridgeTransferERC721.CallOpts, arg0)
  8841  }
  8842  
  8843  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  8844  //
  8845  // Solidity: function operators(address ) view returns(bool)
  8846  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  8847  	var out []interface{}
  8848  	err := _BridgeTransferERC721.contract.Call(opts, &out, "operators", arg0)
  8849  
  8850  	if err != nil {
  8851  		return *new(bool), err
  8852  	}
  8853  
  8854  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8855  
  8856  	return out0, err
  8857  
  8858  }
  8859  
  8860  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  8861  //
  8862  // Solidity: function operators(address ) view returns(bool)
  8863  func (_BridgeTransferERC721 *BridgeTransferERC721Session) Operators(arg0 common.Address) (bool, error) {
  8864  	return _BridgeTransferERC721.Contract.Operators(&_BridgeTransferERC721.CallOpts, arg0)
  8865  }
  8866  
  8867  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  8868  //
  8869  // Solidity: function operators(address ) view returns(bool)
  8870  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) Operators(arg0 common.Address) (bool, error) {
  8871  	return _BridgeTransferERC721.Contract.Operators(&_BridgeTransferERC721.CallOpts, arg0)
  8872  }
  8873  
  8874  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8875  //
  8876  // Solidity: function owner() view returns(address)
  8877  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
  8878  	var out []interface{}
  8879  	err := _BridgeTransferERC721.contract.Call(opts, &out, "owner")
  8880  
  8881  	if err != nil {
  8882  		return *new(common.Address), err
  8883  	}
  8884  
  8885  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8886  
  8887  	return out0, err
  8888  
  8889  }
  8890  
  8891  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8892  //
  8893  // Solidity: function owner() view returns(address)
  8894  func (_BridgeTransferERC721 *BridgeTransferERC721Session) Owner() (common.Address, error) {
  8895  	return _BridgeTransferERC721.Contract.Owner(&_BridgeTransferERC721.CallOpts)
  8896  }
  8897  
  8898  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8899  //
  8900  // Solidity: function owner() view returns(address)
  8901  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) Owner() (common.Address, error) {
  8902  	return _BridgeTransferERC721.Contract.Owner(&_BridgeTransferERC721.CallOpts)
  8903  }
  8904  
  8905  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  8906  //
  8907  // Solidity: function recoveryBlockNumber() view returns(uint64)
  8908  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
  8909  	var out []interface{}
  8910  	err := _BridgeTransferERC721.contract.Call(opts, &out, "recoveryBlockNumber")
  8911  
  8912  	if err != nil {
  8913  		return *new(uint64), err
  8914  	}
  8915  
  8916  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  8917  
  8918  	return out0, err
  8919  
  8920  }
  8921  
  8922  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  8923  //
  8924  // Solidity: function recoveryBlockNumber() view returns(uint64)
  8925  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RecoveryBlockNumber() (uint64, error) {
  8926  	return _BridgeTransferERC721.Contract.RecoveryBlockNumber(&_BridgeTransferERC721.CallOpts)
  8927  }
  8928  
  8929  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  8930  //
  8931  // Solidity: function recoveryBlockNumber() view returns(uint64)
  8932  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RecoveryBlockNumber() (uint64, error) {
  8933  	return _BridgeTransferERC721.Contract.RecoveryBlockNumber(&_BridgeTransferERC721.CallOpts)
  8934  }
  8935  
  8936  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  8937  //
  8938  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  8939  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  8940  	var out []interface{}
  8941  	err := _BridgeTransferERC721.contract.Call(opts, &out, "registeredTokenList", arg0)
  8942  
  8943  	if err != nil {
  8944  		return *new(common.Address), err
  8945  	}
  8946  
  8947  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8948  
  8949  	return out0, err
  8950  
  8951  }
  8952  
  8953  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  8954  //
  8955  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  8956  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  8957  	return _BridgeTransferERC721.Contract.RegisteredTokenList(&_BridgeTransferERC721.CallOpts, arg0)
  8958  }
  8959  
  8960  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  8961  //
  8962  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  8963  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  8964  	return _BridgeTransferERC721.Contract.RegisteredTokenList(&_BridgeTransferERC721.CallOpts, arg0)
  8965  }
  8966  
  8967  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  8968  //
  8969  // Solidity: function registeredTokens(address ) view returns(address)
  8970  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  8971  	var out []interface{}
  8972  	err := _BridgeTransferERC721.contract.Call(opts, &out, "registeredTokens", arg0)
  8973  
  8974  	if err != nil {
  8975  		return *new(common.Address), err
  8976  	}
  8977  
  8978  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8979  
  8980  	return out0, err
  8981  
  8982  }
  8983  
  8984  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  8985  //
  8986  // Solidity: function registeredTokens(address ) view returns(address)
  8987  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  8988  	return _BridgeTransferERC721.Contract.RegisteredTokens(&_BridgeTransferERC721.CallOpts, arg0)
  8989  }
  8990  
  8991  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  8992  //
  8993  // Solidity: function registeredTokens(address ) view returns(address)
  8994  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  8995  	return _BridgeTransferERC721.Contract.RegisteredTokens(&_BridgeTransferERC721.CallOpts, arg0)
  8996  }
  8997  
  8998  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  8999  //
  9000  // Solidity: function requestNonce() view returns(uint64)
  9001  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
  9002  	var out []interface{}
  9003  	err := _BridgeTransferERC721.contract.Call(opts, &out, "requestNonce")
  9004  
  9005  	if err != nil {
  9006  		return *new(uint64), err
  9007  	}
  9008  
  9009  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  9010  
  9011  	return out0, err
  9012  
  9013  }
  9014  
  9015  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  9016  //
  9017  // Solidity: function requestNonce() view returns(uint64)
  9018  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RequestNonce() (uint64, error) {
  9019  	return _BridgeTransferERC721.Contract.RequestNonce(&_BridgeTransferERC721.CallOpts)
  9020  }
  9021  
  9022  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  9023  //
  9024  // Solidity: function requestNonce() view returns(uint64)
  9025  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RequestNonce() (uint64, error) {
  9026  	return _BridgeTransferERC721.Contract.RequestNonce(&_BridgeTransferERC721.CallOpts)
  9027  }
  9028  
  9029  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  9030  //
  9031  // Solidity: function upperHandleNonce() view returns(uint64)
  9032  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
  9033  	var out []interface{}
  9034  	err := _BridgeTransferERC721.contract.Call(opts, &out, "upperHandleNonce")
  9035  
  9036  	if err != nil {
  9037  		return *new(uint64), err
  9038  	}
  9039  
  9040  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  9041  
  9042  	return out0, err
  9043  
  9044  }
  9045  
  9046  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  9047  //
  9048  // Solidity: function upperHandleNonce() view returns(uint64)
  9049  func (_BridgeTransferERC721 *BridgeTransferERC721Session) UpperHandleNonce() (uint64, error) {
  9050  	return _BridgeTransferERC721.Contract.UpperHandleNonce(&_BridgeTransferERC721.CallOpts)
  9051  }
  9052  
  9053  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  9054  //
  9055  // Solidity: function upperHandleNonce() view returns(uint64)
  9056  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) UpperHandleNonce() (uint64, error) {
  9057  	return _BridgeTransferERC721.Contract.UpperHandleNonce(&_BridgeTransferERC721.CallOpts)
  9058  }
  9059  
  9060  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  9061  //
  9062  // Solidity: function deregisterOperator(address _operator) returns()
  9063  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  9064  	return _BridgeTransferERC721.contract.Transact(opts, "deregisterOperator", _operator)
  9065  }
  9066  
  9067  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  9068  //
  9069  // Solidity: function deregisterOperator(address _operator) returns()
  9070  func (_BridgeTransferERC721 *BridgeTransferERC721Session) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  9071  	return _BridgeTransferERC721.Contract.DeregisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
  9072  }
  9073  
  9074  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  9075  //
  9076  // Solidity: function deregisterOperator(address _operator) returns()
  9077  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  9078  	return _BridgeTransferERC721.Contract.DeregisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
  9079  }
  9080  
  9081  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  9082  //
  9083  // Solidity: function deregisterToken(address _token) returns()
  9084  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  9085  	return _BridgeTransferERC721.contract.Transact(opts, "deregisterToken", _token)
  9086  }
  9087  
  9088  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  9089  //
  9090  // Solidity: function deregisterToken(address _token) returns()
  9091  func (_BridgeTransferERC721 *BridgeTransferERC721Session) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  9092  	return _BridgeTransferERC721.Contract.DeregisterToken(&_BridgeTransferERC721.TransactOpts, _token)
  9093  }
  9094  
  9095  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  9096  //
  9097  // Solidity: function deregisterToken(address _token) returns()
  9098  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  9099  	return _BridgeTransferERC721.Contract.DeregisterToken(&_BridgeTransferERC721.TransactOpts, _token)
  9100  }
  9101  
  9102  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
  9103  //
  9104  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
  9105  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) HandleERC721Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
  9106  	return _BridgeTransferERC721.contract.Transact(opts, "handleERC721Transfer", _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
  9107  }
  9108  
  9109  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
  9110  //
  9111  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
  9112  func (_BridgeTransferERC721 *BridgeTransferERC721Session) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
  9113  	return _BridgeTransferERC721.Contract.HandleERC721Transfer(&_BridgeTransferERC721.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
  9114  }
  9115  
  9116  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
  9117  //
  9118  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
  9119  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
  9120  	return _BridgeTransferERC721.Contract.HandleERC721Transfer(&_BridgeTransferERC721.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
  9121  }
  9122  
  9123  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  9124  //
  9125  // Solidity: function lockToken(address _token) returns()
  9126  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  9127  	return _BridgeTransferERC721.contract.Transact(opts, "lockToken", _token)
  9128  }
  9129  
  9130  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  9131  //
  9132  // Solidity: function lockToken(address _token) returns()
  9133  func (_BridgeTransferERC721 *BridgeTransferERC721Session) LockToken(_token common.Address) (*types.Transaction, error) {
  9134  	return _BridgeTransferERC721.Contract.LockToken(&_BridgeTransferERC721.TransactOpts, _token)
  9135  }
  9136  
  9137  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  9138  //
  9139  // Solidity: function lockToken(address _token) returns()
  9140  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
  9141  	return _BridgeTransferERC721.Contract.LockToken(&_BridgeTransferERC721.TransactOpts, _token)
  9142  }
  9143  
  9144  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  9145  //
  9146  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  9147  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  9148  	return _BridgeTransferERC721.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
  9149  }
  9150  
  9151  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  9152  //
  9153  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  9154  func (_BridgeTransferERC721 *BridgeTransferERC721Session) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  9155  	return _BridgeTransferERC721.Contract.OnERC721Received(&_BridgeTransferERC721.TransactOpts, _from, _tokenId, _to, _extraData)
  9156  }
  9157  
  9158  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  9159  //
  9160  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  9161  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  9162  	return _BridgeTransferERC721.Contract.OnERC721Received(&_BridgeTransferERC721.TransactOpts, _from, _tokenId, _to, _extraData)
  9163  }
  9164  
  9165  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  9166  //
  9167  // Solidity: function registerOperator(address _operator) returns()
  9168  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  9169  	return _BridgeTransferERC721.contract.Transact(opts, "registerOperator", _operator)
  9170  }
  9171  
  9172  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  9173  //
  9174  // Solidity: function registerOperator(address _operator) returns()
  9175  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  9176  	return _BridgeTransferERC721.Contract.RegisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
  9177  }
  9178  
  9179  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  9180  //
  9181  // Solidity: function registerOperator(address _operator) returns()
  9182  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  9183  	return _BridgeTransferERC721.Contract.RegisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
  9184  }
  9185  
  9186  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  9187  //
  9188  // Solidity: function registerToken(address _token, address _cToken) returns()
  9189  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
  9190  	return _BridgeTransferERC721.contract.Transact(opts, "registerToken", _token, _cToken)
  9191  }
  9192  
  9193  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  9194  //
  9195  // Solidity: function registerToken(address _token, address _cToken) returns()
  9196  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  9197  	return _BridgeTransferERC721.Contract.RegisterToken(&_BridgeTransferERC721.TransactOpts, _token, _cToken)
  9198  }
  9199  
  9200  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  9201  //
  9202  // Solidity: function registerToken(address _token, address _cToken) returns()
  9203  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  9204  	return _BridgeTransferERC721.Contract.RegisterToken(&_BridgeTransferERC721.TransactOpts, _token, _cToken)
  9205  }
  9206  
  9207  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  9208  //
  9209  // Solidity: function renounceOwnership() returns()
  9210  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  9211  	return _BridgeTransferERC721.contract.Transact(opts, "renounceOwnership")
  9212  }
  9213  
  9214  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  9215  //
  9216  // Solidity: function renounceOwnership() returns()
  9217  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RenounceOwnership() (*types.Transaction, error) {
  9218  	return _BridgeTransferERC721.Contract.RenounceOwnership(&_BridgeTransferERC721.TransactOpts)
  9219  }
  9220  
  9221  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  9222  //
  9223  // Solidity: function renounceOwnership() returns()
  9224  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RenounceOwnership() (*types.Transaction, error) {
  9225  	return _BridgeTransferERC721.Contract.RenounceOwnership(&_BridgeTransferERC721.TransactOpts)
  9226  }
  9227  
  9228  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
  9229  //
  9230  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
  9231  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RequestERC721Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
  9232  	return _BridgeTransferERC721.contract.Transact(opts, "requestERC721Transfer", _tokenAddress, _to, _tokenId, _extraData)
  9233  }
  9234  
  9235  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
  9236  //
  9237  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
  9238  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
  9239  	return _BridgeTransferERC721.Contract.RequestERC721Transfer(&_BridgeTransferERC721.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
  9240  }
  9241  
  9242  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
  9243  //
  9244  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
  9245  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
  9246  	return _BridgeTransferERC721.Contract.RequestERC721Transfer(&_BridgeTransferERC721.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
  9247  }
  9248  
  9249  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  9250  //
  9251  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  9252  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
  9253  	return _BridgeTransferERC721.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
  9254  }
  9255  
  9256  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  9257  //
  9258  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  9259  func (_BridgeTransferERC721 *BridgeTransferERC721Session) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  9260  	return _BridgeTransferERC721.Contract.SetFeeReceiver(&_BridgeTransferERC721.TransactOpts, _feeReceiver)
  9261  }
  9262  
  9263  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  9264  //
  9265  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  9266  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  9267  	return _BridgeTransferERC721.Contract.SetFeeReceiver(&_BridgeTransferERC721.TransactOpts, _feeReceiver)
  9268  }
  9269  
  9270  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  9271  //
  9272  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  9273  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  9274  	return _BridgeTransferERC721.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  9275  }
  9276  
  9277  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  9278  //
  9279  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  9280  func (_BridgeTransferERC721 *BridgeTransferERC721Session) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  9281  	return _BridgeTransferERC721.Contract.SetOperatorThreshold(&_BridgeTransferERC721.TransactOpts, _voteType, _threshold)
  9282  }
  9283  
  9284  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  9285  //
  9286  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  9287  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  9288  	return _BridgeTransferERC721.Contract.SetOperatorThreshold(&_BridgeTransferERC721.TransactOpts, _voteType, _threshold)
  9289  }
  9290  
  9291  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  9292  //
  9293  // Solidity: function start(bool _status) returns()
  9294  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
  9295  	return _BridgeTransferERC721.contract.Transact(opts, "start", _status)
  9296  }
  9297  
  9298  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  9299  //
  9300  // Solidity: function start(bool _status) returns()
  9301  func (_BridgeTransferERC721 *BridgeTransferERC721Session) Start(_status bool) (*types.Transaction, error) {
  9302  	return _BridgeTransferERC721.Contract.Start(&_BridgeTransferERC721.TransactOpts, _status)
  9303  }
  9304  
  9305  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  9306  //
  9307  // Solidity: function start(bool _status) returns()
  9308  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) Start(_status bool) (*types.Transaction, error) {
  9309  	return _BridgeTransferERC721.Contract.Start(&_BridgeTransferERC721.TransactOpts, _status)
  9310  }
  9311  
  9312  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  9313  //
  9314  // Solidity: function transferOwnership(address newOwner) returns()
  9315  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  9316  	return _BridgeTransferERC721.contract.Transact(opts, "transferOwnership", newOwner)
  9317  }
  9318  
  9319  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  9320  //
  9321  // Solidity: function transferOwnership(address newOwner) returns()
  9322  func (_BridgeTransferERC721 *BridgeTransferERC721Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  9323  	return _BridgeTransferERC721.Contract.TransferOwnership(&_BridgeTransferERC721.TransactOpts, newOwner)
  9324  }
  9325  
  9326  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  9327  //
  9328  // Solidity: function transferOwnership(address newOwner) returns()
  9329  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  9330  	return _BridgeTransferERC721.Contract.TransferOwnership(&_BridgeTransferERC721.TransactOpts, newOwner)
  9331  }
  9332  
  9333  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  9334  //
  9335  // Solidity: function unlockToken(address _token) returns()
  9336  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  9337  	return _BridgeTransferERC721.contract.Transact(opts, "unlockToken", _token)
  9338  }
  9339  
  9340  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  9341  //
  9342  // Solidity: function unlockToken(address _token) returns()
  9343  func (_BridgeTransferERC721 *BridgeTransferERC721Session) UnlockToken(_token common.Address) (*types.Transaction, error) {
  9344  	return _BridgeTransferERC721.Contract.UnlockToken(&_BridgeTransferERC721.TransactOpts, _token)
  9345  }
  9346  
  9347  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  9348  //
  9349  // Solidity: function unlockToken(address _token) returns()
  9350  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  9351  	return _BridgeTransferERC721.Contract.UnlockToken(&_BridgeTransferERC721.TransactOpts, _token)
  9352  }
  9353  
  9354  // BridgeTransferERC721ERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransferERC721 contract.
  9355  type BridgeTransferERC721ERC20FeeChangedIterator struct {
  9356  	Event *BridgeTransferERC721ERC20FeeChanged // Event containing the contract specifics and raw log
  9357  
  9358  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9359  	event    string              // Event name to use for unpacking event data
  9360  
  9361  	logs chan types.Log      // Log channel receiving the found contract events
  9362  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9363  	done bool                // Whether the subscription completed delivering logs
  9364  	fail error               // Occurred error to stop iteration
  9365  }
  9366  
  9367  // Next advances the iterator to the subsequent event, returning whether there
  9368  // are any more events found. In case of a retrieval or parsing error, false is
  9369  // returned and Error() can be queried for the exact failure.
  9370  func (it *BridgeTransferERC721ERC20FeeChangedIterator) Next() bool {
  9371  	// If the iterator failed, stop iterating
  9372  	if it.fail != nil {
  9373  		return false
  9374  	}
  9375  	// If the iterator completed, deliver directly whatever's available
  9376  	if it.done {
  9377  		select {
  9378  		case log := <-it.logs:
  9379  			it.Event = new(BridgeTransferERC721ERC20FeeChanged)
  9380  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9381  				it.fail = err
  9382  				return false
  9383  			}
  9384  			it.Event.Raw = log
  9385  			return true
  9386  
  9387  		default:
  9388  			return false
  9389  		}
  9390  	}
  9391  	// Iterator still in progress, wait for either a data or an error event
  9392  	select {
  9393  	case log := <-it.logs:
  9394  		it.Event = new(BridgeTransferERC721ERC20FeeChanged)
  9395  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9396  			it.fail = err
  9397  			return false
  9398  		}
  9399  		it.Event.Raw = log
  9400  		return true
  9401  
  9402  	case err := <-it.sub.Err():
  9403  		it.done = true
  9404  		it.fail = err
  9405  		return it.Next()
  9406  	}
  9407  }
  9408  
  9409  // Error returns any retrieval or parsing error occurred during filtering.
  9410  func (it *BridgeTransferERC721ERC20FeeChangedIterator) Error() error {
  9411  	return it.fail
  9412  }
  9413  
  9414  // Close terminates the iteration process, releasing any pending underlying
  9415  // resources.
  9416  func (it *BridgeTransferERC721ERC20FeeChangedIterator) Close() error {
  9417  	it.sub.Unsubscribe()
  9418  	return nil
  9419  }
  9420  
  9421  // BridgeTransferERC721ERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransferERC721 contract.
  9422  type BridgeTransferERC721ERC20FeeChanged struct {
  9423  	Token common.Address
  9424  	Fee   *big.Int
  9425  	Raw   types.Log // Blockchain specific contextual infos
  9426  }
  9427  
  9428  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  9429  //
  9430  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  9431  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferERC721ERC20FeeChangedIterator, error) {
  9432  
  9433  	var tokenRule []interface{}
  9434  	for _, tokenItem := range token {
  9435  		tokenRule = append(tokenRule, tokenItem)
  9436  	}
  9437  	var feeRule []interface{}
  9438  	for _, feeItem := range fee {
  9439  		feeRule = append(feeRule, feeItem)
  9440  	}
  9441  
  9442  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  9443  	if err != nil {
  9444  		return nil, err
  9445  	}
  9446  	return &BridgeTransferERC721ERC20FeeChangedIterator{contract: _BridgeTransferERC721.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
  9447  }
  9448  
  9449  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  9450  //
  9451  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  9452  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721ERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
  9453  
  9454  	var tokenRule []interface{}
  9455  	for _, tokenItem := range token {
  9456  		tokenRule = append(tokenRule, tokenItem)
  9457  	}
  9458  	var feeRule []interface{}
  9459  	for _, feeItem := range fee {
  9460  		feeRule = append(feeRule, feeItem)
  9461  	}
  9462  
  9463  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  9464  	if err != nil {
  9465  		return nil, err
  9466  	}
  9467  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9468  		defer sub.Unsubscribe()
  9469  		for {
  9470  			select {
  9471  			case log := <-logs:
  9472  				// New log arrived, parse the event and forward to the user
  9473  				event := new(BridgeTransferERC721ERC20FeeChanged)
  9474  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  9475  					return err
  9476  				}
  9477  				event.Raw = log
  9478  
  9479  				select {
  9480  				case sink <- event:
  9481  				case err := <-sub.Err():
  9482  					return err
  9483  				case <-quit:
  9484  					return nil
  9485  				}
  9486  			case err := <-sub.Err():
  9487  				return err
  9488  			case <-quit:
  9489  				return nil
  9490  			}
  9491  		}
  9492  	}), nil
  9493  }
  9494  
  9495  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  9496  //
  9497  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  9498  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferERC721ERC20FeeChanged, error) {
  9499  	event := new(BridgeTransferERC721ERC20FeeChanged)
  9500  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  9501  		return nil, err
  9502  	}
  9503  	return event, nil
  9504  }
  9505  
  9506  // BridgeTransferERC721FeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransferERC721 contract.
  9507  type BridgeTransferERC721FeeReceiverChangedIterator struct {
  9508  	Event *BridgeTransferERC721FeeReceiverChanged // Event containing the contract specifics and raw log
  9509  
  9510  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9511  	event    string              // Event name to use for unpacking event data
  9512  
  9513  	logs chan types.Log      // Log channel receiving the found contract events
  9514  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9515  	done bool                // Whether the subscription completed delivering logs
  9516  	fail error               // Occurred error to stop iteration
  9517  }
  9518  
  9519  // Next advances the iterator to the subsequent event, returning whether there
  9520  // are any more events found. In case of a retrieval or parsing error, false is
  9521  // returned and Error() can be queried for the exact failure.
  9522  func (it *BridgeTransferERC721FeeReceiverChangedIterator) Next() bool {
  9523  	// If the iterator failed, stop iterating
  9524  	if it.fail != nil {
  9525  		return false
  9526  	}
  9527  	// If the iterator completed, deliver directly whatever's available
  9528  	if it.done {
  9529  		select {
  9530  		case log := <-it.logs:
  9531  			it.Event = new(BridgeTransferERC721FeeReceiverChanged)
  9532  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9533  				it.fail = err
  9534  				return false
  9535  			}
  9536  			it.Event.Raw = log
  9537  			return true
  9538  
  9539  		default:
  9540  			return false
  9541  		}
  9542  	}
  9543  	// Iterator still in progress, wait for either a data or an error event
  9544  	select {
  9545  	case log := <-it.logs:
  9546  		it.Event = new(BridgeTransferERC721FeeReceiverChanged)
  9547  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9548  			it.fail = err
  9549  			return false
  9550  		}
  9551  		it.Event.Raw = log
  9552  		return true
  9553  
  9554  	case err := <-it.sub.Err():
  9555  		it.done = true
  9556  		it.fail = err
  9557  		return it.Next()
  9558  	}
  9559  }
  9560  
  9561  // Error returns any retrieval or parsing error occurred during filtering.
  9562  func (it *BridgeTransferERC721FeeReceiverChangedIterator) Error() error {
  9563  	return it.fail
  9564  }
  9565  
  9566  // Close terminates the iteration process, releasing any pending underlying
  9567  // resources.
  9568  func (it *BridgeTransferERC721FeeReceiverChangedIterator) Close() error {
  9569  	it.sub.Unsubscribe()
  9570  	return nil
  9571  }
  9572  
  9573  // BridgeTransferERC721FeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransferERC721 contract.
  9574  type BridgeTransferERC721FeeReceiverChanged struct {
  9575  	FeeReceiver common.Address
  9576  	Raw         types.Log // Blockchain specific contextual infos
  9577  }
  9578  
  9579  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  9580  //
  9581  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  9582  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferERC721FeeReceiverChangedIterator, error) {
  9583  
  9584  	var feeReceiverRule []interface{}
  9585  	for _, feeReceiverItem := range feeReceiver {
  9586  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  9587  	}
  9588  
  9589  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  9590  	if err != nil {
  9591  		return nil, err
  9592  	}
  9593  	return &BridgeTransferERC721FeeReceiverChangedIterator{contract: _BridgeTransferERC721.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
  9594  }
  9595  
  9596  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  9597  //
  9598  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  9599  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721FeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
  9600  
  9601  	var feeReceiverRule []interface{}
  9602  	for _, feeReceiverItem := range feeReceiver {
  9603  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  9604  	}
  9605  
  9606  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  9607  	if err != nil {
  9608  		return nil, err
  9609  	}
  9610  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9611  		defer sub.Unsubscribe()
  9612  		for {
  9613  			select {
  9614  			case log := <-logs:
  9615  				// New log arrived, parse the event and forward to the user
  9616  				event := new(BridgeTransferERC721FeeReceiverChanged)
  9617  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  9618  					return err
  9619  				}
  9620  				event.Raw = log
  9621  
  9622  				select {
  9623  				case sink <- event:
  9624  				case err := <-sub.Err():
  9625  					return err
  9626  				case <-quit:
  9627  					return nil
  9628  				}
  9629  			case err := <-sub.Err():
  9630  				return err
  9631  			case <-quit:
  9632  				return nil
  9633  			}
  9634  		}
  9635  	}), nil
  9636  }
  9637  
  9638  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  9639  //
  9640  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  9641  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferERC721FeeReceiverChanged, error) {
  9642  	event := new(BridgeTransferERC721FeeReceiverChanged)
  9643  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  9644  		return nil, err
  9645  	}
  9646  	return event, nil
  9647  }
  9648  
  9649  // BridgeTransferERC721HandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransferERC721 contract.
  9650  type BridgeTransferERC721HandleValueTransferIterator struct {
  9651  	Event *BridgeTransferERC721HandleValueTransfer // Event containing the contract specifics and raw log
  9652  
  9653  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9654  	event    string              // Event name to use for unpacking event data
  9655  
  9656  	logs chan types.Log      // Log channel receiving the found contract events
  9657  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9658  	done bool                // Whether the subscription completed delivering logs
  9659  	fail error               // Occurred error to stop iteration
  9660  }
  9661  
  9662  // Next advances the iterator to the subsequent event, returning whether there
  9663  // are any more events found. In case of a retrieval or parsing error, false is
  9664  // returned and Error() can be queried for the exact failure.
  9665  func (it *BridgeTransferERC721HandleValueTransferIterator) Next() bool {
  9666  	// If the iterator failed, stop iterating
  9667  	if it.fail != nil {
  9668  		return false
  9669  	}
  9670  	// If the iterator completed, deliver directly whatever's available
  9671  	if it.done {
  9672  		select {
  9673  		case log := <-it.logs:
  9674  			it.Event = new(BridgeTransferERC721HandleValueTransfer)
  9675  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9676  				it.fail = err
  9677  				return false
  9678  			}
  9679  			it.Event.Raw = log
  9680  			return true
  9681  
  9682  		default:
  9683  			return false
  9684  		}
  9685  	}
  9686  	// Iterator still in progress, wait for either a data or an error event
  9687  	select {
  9688  	case log := <-it.logs:
  9689  		it.Event = new(BridgeTransferERC721HandleValueTransfer)
  9690  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9691  			it.fail = err
  9692  			return false
  9693  		}
  9694  		it.Event.Raw = log
  9695  		return true
  9696  
  9697  	case err := <-it.sub.Err():
  9698  		it.done = true
  9699  		it.fail = err
  9700  		return it.Next()
  9701  	}
  9702  }
  9703  
  9704  // Error returns any retrieval or parsing error occurred during filtering.
  9705  func (it *BridgeTransferERC721HandleValueTransferIterator) Error() error {
  9706  	return it.fail
  9707  }
  9708  
  9709  // Close terminates the iteration process, releasing any pending underlying
  9710  // resources.
  9711  func (it *BridgeTransferERC721HandleValueTransferIterator) Close() error {
  9712  	it.sub.Unsubscribe()
  9713  	return nil
  9714  }
  9715  
  9716  // BridgeTransferERC721HandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransferERC721 contract.
  9717  type BridgeTransferERC721HandleValueTransfer struct {
  9718  	RequestTxHash    [32]byte
  9719  	TokenType        uint8
  9720  	From             common.Address
  9721  	To               common.Address
  9722  	TokenAddress     common.Address
  9723  	ValueOrTokenId   *big.Int
  9724  	HandleNonce      uint64
  9725  	LowerHandleNonce uint64
  9726  	ExtraData        []byte
  9727  	Raw              types.Log // Blockchain specific contextual infos
  9728  }
  9729  
  9730  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  9731  //
  9732  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  9733  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC721HandleValueTransferIterator, error) {
  9734  
  9735  	var fromRule []interface{}
  9736  	for _, fromItem := range from {
  9737  		fromRule = append(fromRule, fromItem)
  9738  	}
  9739  	var toRule []interface{}
  9740  	for _, toItem := range to {
  9741  		toRule = append(toRule, toItem)
  9742  	}
  9743  	var tokenAddressRule []interface{}
  9744  	for _, tokenAddressItem := range tokenAddress {
  9745  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  9746  	}
  9747  
  9748  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  9749  	if err != nil {
  9750  		return nil, err
  9751  	}
  9752  	return &BridgeTransferERC721HandleValueTransferIterator{contract: _BridgeTransferERC721.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
  9753  }
  9754  
  9755  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  9756  //
  9757  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  9758  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721HandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  9759  
  9760  	var fromRule []interface{}
  9761  	for _, fromItem := range from {
  9762  		fromRule = append(fromRule, fromItem)
  9763  	}
  9764  	var toRule []interface{}
  9765  	for _, toItem := range to {
  9766  		toRule = append(toRule, toItem)
  9767  	}
  9768  	var tokenAddressRule []interface{}
  9769  	for _, tokenAddressItem := range tokenAddress {
  9770  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  9771  	}
  9772  
  9773  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  9774  	if err != nil {
  9775  		return nil, err
  9776  	}
  9777  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9778  		defer sub.Unsubscribe()
  9779  		for {
  9780  			select {
  9781  			case log := <-logs:
  9782  				// New log arrived, parse the event and forward to the user
  9783  				event := new(BridgeTransferERC721HandleValueTransfer)
  9784  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  9785  					return err
  9786  				}
  9787  				event.Raw = log
  9788  
  9789  				select {
  9790  				case sink <- event:
  9791  				case err := <-sub.Err():
  9792  					return err
  9793  				case <-quit:
  9794  					return nil
  9795  				}
  9796  			case err := <-sub.Err():
  9797  				return err
  9798  			case <-quit:
  9799  				return nil
  9800  			}
  9801  		}
  9802  	}), nil
  9803  }
  9804  
  9805  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  9806  //
  9807  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  9808  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferERC721HandleValueTransfer, error) {
  9809  	event := new(BridgeTransferERC721HandleValueTransfer)
  9810  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  9811  		return nil, err
  9812  	}
  9813  	return event, nil
  9814  }
  9815  
  9816  // BridgeTransferERC721KLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransferERC721 contract.
  9817  type BridgeTransferERC721KLAYFeeChangedIterator struct {
  9818  	Event *BridgeTransferERC721KLAYFeeChanged // Event containing the contract specifics and raw log
  9819  
  9820  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9821  	event    string              // Event name to use for unpacking event data
  9822  
  9823  	logs chan types.Log      // Log channel receiving the found contract events
  9824  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9825  	done bool                // Whether the subscription completed delivering logs
  9826  	fail error               // Occurred error to stop iteration
  9827  }
  9828  
  9829  // Next advances the iterator to the subsequent event, returning whether there
  9830  // are any more events found. In case of a retrieval or parsing error, false is
  9831  // returned and Error() can be queried for the exact failure.
  9832  func (it *BridgeTransferERC721KLAYFeeChangedIterator) Next() bool {
  9833  	// If the iterator failed, stop iterating
  9834  	if it.fail != nil {
  9835  		return false
  9836  	}
  9837  	// If the iterator completed, deliver directly whatever's available
  9838  	if it.done {
  9839  		select {
  9840  		case log := <-it.logs:
  9841  			it.Event = new(BridgeTransferERC721KLAYFeeChanged)
  9842  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9843  				it.fail = err
  9844  				return false
  9845  			}
  9846  			it.Event.Raw = log
  9847  			return true
  9848  
  9849  		default:
  9850  			return false
  9851  		}
  9852  	}
  9853  	// Iterator still in progress, wait for either a data or an error event
  9854  	select {
  9855  	case log := <-it.logs:
  9856  		it.Event = new(BridgeTransferERC721KLAYFeeChanged)
  9857  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9858  			it.fail = err
  9859  			return false
  9860  		}
  9861  		it.Event.Raw = log
  9862  		return true
  9863  
  9864  	case err := <-it.sub.Err():
  9865  		it.done = true
  9866  		it.fail = err
  9867  		return it.Next()
  9868  	}
  9869  }
  9870  
  9871  // Error returns any retrieval or parsing error occurred during filtering.
  9872  func (it *BridgeTransferERC721KLAYFeeChangedIterator) Error() error {
  9873  	return it.fail
  9874  }
  9875  
  9876  // Close terminates the iteration process, releasing any pending underlying
  9877  // resources.
  9878  func (it *BridgeTransferERC721KLAYFeeChangedIterator) Close() error {
  9879  	it.sub.Unsubscribe()
  9880  	return nil
  9881  }
  9882  
  9883  // BridgeTransferERC721KLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransferERC721 contract.
  9884  type BridgeTransferERC721KLAYFeeChanged struct {
  9885  	Fee *big.Int
  9886  	Raw types.Log // Blockchain specific contextual infos
  9887  }
  9888  
  9889  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  9890  //
  9891  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  9892  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferERC721KLAYFeeChangedIterator, error) {
  9893  
  9894  	var feeRule []interface{}
  9895  	for _, feeItem := range fee {
  9896  		feeRule = append(feeRule, feeItem)
  9897  	}
  9898  
  9899  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
  9900  	if err != nil {
  9901  		return nil, err
  9902  	}
  9903  	return &BridgeTransferERC721KLAYFeeChangedIterator{contract: _BridgeTransferERC721.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
  9904  }
  9905  
  9906  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  9907  //
  9908  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  9909  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721KLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
  9910  
  9911  	var feeRule []interface{}
  9912  	for _, feeItem := range fee {
  9913  		feeRule = append(feeRule, feeItem)
  9914  	}
  9915  
  9916  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
  9917  	if err != nil {
  9918  		return nil, err
  9919  	}
  9920  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9921  		defer sub.Unsubscribe()
  9922  		for {
  9923  			select {
  9924  			case log := <-logs:
  9925  				// New log arrived, parse the event and forward to the user
  9926  				event := new(BridgeTransferERC721KLAYFeeChanged)
  9927  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  9928  					return err
  9929  				}
  9930  				event.Raw = log
  9931  
  9932  				select {
  9933  				case sink <- event:
  9934  				case err := <-sub.Err():
  9935  					return err
  9936  				case <-quit:
  9937  					return nil
  9938  				}
  9939  			case err := <-sub.Err():
  9940  				return err
  9941  			case <-quit:
  9942  				return nil
  9943  			}
  9944  		}
  9945  	}), nil
  9946  }
  9947  
  9948  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  9949  //
  9950  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  9951  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferERC721KLAYFeeChanged, error) {
  9952  	event := new(BridgeTransferERC721KLAYFeeChanged)
  9953  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  9954  		return nil, err
  9955  	}
  9956  	return event, nil
  9957  }
  9958  
  9959  // BridgeTransferERC721OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransferERC721 contract.
  9960  type BridgeTransferERC721OwnershipTransferredIterator struct {
  9961  	Event *BridgeTransferERC721OwnershipTransferred // Event containing the contract specifics and raw log
  9962  
  9963  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9964  	event    string              // Event name to use for unpacking event data
  9965  
  9966  	logs chan types.Log      // Log channel receiving the found contract events
  9967  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9968  	done bool                // Whether the subscription completed delivering logs
  9969  	fail error               // Occurred error to stop iteration
  9970  }
  9971  
  9972  // Next advances the iterator to the subsequent event, returning whether there
  9973  // are any more events found. In case of a retrieval or parsing error, false is
  9974  // returned and Error() can be queried for the exact failure.
  9975  func (it *BridgeTransferERC721OwnershipTransferredIterator) Next() bool {
  9976  	// If the iterator failed, stop iterating
  9977  	if it.fail != nil {
  9978  		return false
  9979  	}
  9980  	// If the iterator completed, deliver directly whatever's available
  9981  	if it.done {
  9982  		select {
  9983  		case log := <-it.logs:
  9984  			it.Event = new(BridgeTransferERC721OwnershipTransferred)
  9985  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9986  				it.fail = err
  9987  				return false
  9988  			}
  9989  			it.Event.Raw = log
  9990  			return true
  9991  
  9992  		default:
  9993  			return false
  9994  		}
  9995  	}
  9996  	// Iterator still in progress, wait for either a data or an error event
  9997  	select {
  9998  	case log := <-it.logs:
  9999  		it.Event = new(BridgeTransferERC721OwnershipTransferred)
 10000  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10001  			it.fail = err
 10002  			return false
 10003  		}
 10004  		it.Event.Raw = log
 10005  		return true
 10006  
 10007  	case err := <-it.sub.Err():
 10008  		it.done = true
 10009  		it.fail = err
 10010  		return it.Next()
 10011  	}
 10012  }
 10013  
 10014  // Error returns any retrieval or parsing error occurred during filtering.
 10015  func (it *BridgeTransferERC721OwnershipTransferredIterator) Error() error {
 10016  	return it.fail
 10017  }
 10018  
 10019  // Close terminates the iteration process, releasing any pending underlying
 10020  // resources.
 10021  func (it *BridgeTransferERC721OwnershipTransferredIterator) Close() error {
 10022  	it.sub.Unsubscribe()
 10023  	return nil
 10024  }
 10025  
 10026  // BridgeTransferERC721OwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransferERC721 contract.
 10027  type BridgeTransferERC721OwnershipTransferred struct {
 10028  	PreviousOwner common.Address
 10029  	NewOwner      common.Address
 10030  	Raw           types.Log // Blockchain specific contextual infos
 10031  }
 10032  
 10033  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10034  //
 10035  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10036  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferERC721OwnershipTransferredIterator, error) {
 10037  
 10038  	var previousOwnerRule []interface{}
 10039  	for _, previousOwnerItem := range previousOwner {
 10040  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 10041  	}
 10042  	var newOwnerRule []interface{}
 10043  	for _, newOwnerItem := range newOwner {
 10044  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 10045  	}
 10046  
 10047  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 10048  	if err != nil {
 10049  		return nil, err
 10050  	}
 10051  	return &BridgeTransferERC721OwnershipTransferredIterator{contract: _BridgeTransferERC721.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 10052  }
 10053  
 10054  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10055  //
 10056  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10057  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 10058  
 10059  	var previousOwnerRule []interface{}
 10060  	for _, previousOwnerItem := range previousOwner {
 10061  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 10062  	}
 10063  	var newOwnerRule []interface{}
 10064  	for _, newOwnerItem := range newOwner {
 10065  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 10066  	}
 10067  
 10068  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 10069  	if err != nil {
 10070  		return nil, err
 10071  	}
 10072  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10073  		defer sub.Unsubscribe()
 10074  		for {
 10075  			select {
 10076  			case log := <-logs:
 10077  				// New log arrived, parse the event and forward to the user
 10078  				event := new(BridgeTransferERC721OwnershipTransferred)
 10079  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 10080  					return err
 10081  				}
 10082  				event.Raw = log
 10083  
 10084  				select {
 10085  				case sink <- event:
 10086  				case err := <-sub.Err():
 10087  					return err
 10088  				case <-quit:
 10089  					return nil
 10090  				}
 10091  			case err := <-sub.Err():
 10092  				return err
 10093  			case <-quit:
 10094  				return nil
 10095  			}
 10096  		}
 10097  	}), nil
 10098  }
 10099  
 10100  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10101  //
 10102  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10103  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferERC721OwnershipTransferred, error) {
 10104  	event := new(BridgeTransferERC721OwnershipTransferred)
 10105  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 10106  		return nil, err
 10107  	}
 10108  	return event, nil
 10109  }
 10110  
 10111  // BridgeTransferERC721RequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransferERC721 contract.
 10112  type BridgeTransferERC721RequestValueTransferIterator struct {
 10113  	Event *BridgeTransferERC721RequestValueTransfer // Event containing the contract specifics and raw log
 10114  
 10115  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10116  	event    string              // Event name to use for unpacking event data
 10117  
 10118  	logs chan types.Log      // Log channel receiving the found contract events
 10119  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10120  	done bool                // Whether the subscription completed delivering logs
 10121  	fail error               // Occurred error to stop iteration
 10122  }
 10123  
 10124  // Next advances the iterator to the subsequent event, returning whether there
 10125  // are any more events found. In case of a retrieval or parsing error, false is
 10126  // returned and Error() can be queried for the exact failure.
 10127  func (it *BridgeTransferERC721RequestValueTransferIterator) Next() bool {
 10128  	// If the iterator failed, stop iterating
 10129  	if it.fail != nil {
 10130  		return false
 10131  	}
 10132  	// If the iterator completed, deliver directly whatever's available
 10133  	if it.done {
 10134  		select {
 10135  		case log := <-it.logs:
 10136  			it.Event = new(BridgeTransferERC721RequestValueTransfer)
 10137  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10138  				it.fail = err
 10139  				return false
 10140  			}
 10141  			it.Event.Raw = log
 10142  			return true
 10143  
 10144  		default:
 10145  			return false
 10146  		}
 10147  	}
 10148  	// Iterator still in progress, wait for either a data or an error event
 10149  	select {
 10150  	case log := <-it.logs:
 10151  		it.Event = new(BridgeTransferERC721RequestValueTransfer)
 10152  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10153  			it.fail = err
 10154  			return false
 10155  		}
 10156  		it.Event.Raw = log
 10157  		return true
 10158  
 10159  	case err := <-it.sub.Err():
 10160  		it.done = true
 10161  		it.fail = err
 10162  		return it.Next()
 10163  	}
 10164  }
 10165  
 10166  // Error returns any retrieval or parsing error occurred during filtering.
 10167  func (it *BridgeTransferERC721RequestValueTransferIterator) Error() error {
 10168  	return it.fail
 10169  }
 10170  
 10171  // Close terminates the iteration process, releasing any pending underlying
 10172  // resources.
 10173  func (it *BridgeTransferERC721RequestValueTransferIterator) Close() error {
 10174  	it.sub.Unsubscribe()
 10175  	return nil
 10176  }
 10177  
 10178  // BridgeTransferERC721RequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransferERC721 contract.
 10179  type BridgeTransferERC721RequestValueTransfer struct {
 10180  	TokenType      uint8
 10181  	From           common.Address
 10182  	To             common.Address
 10183  	TokenAddress   common.Address
 10184  	ValueOrTokenId *big.Int
 10185  	RequestNonce   uint64
 10186  	Fee            *big.Int
 10187  	ExtraData      []byte
 10188  	Raw            types.Log // Blockchain specific contextual infos
 10189  }
 10190  
 10191  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 10192  //
 10193  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 10194  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC721RequestValueTransferIterator, error) {
 10195  
 10196  	var fromRule []interface{}
 10197  	for _, fromItem := range from {
 10198  		fromRule = append(fromRule, fromItem)
 10199  	}
 10200  	var toRule []interface{}
 10201  	for _, toItem := range to {
 10202  		toRule = append(toRule, toItem)
 10203  	}
 10204  	var tokenAddressRule []interface{}
 10205  	for _, tokenAddressItem := range tokenAddress {
 10206  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 10207  	}
 10208  
 10209  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 10210  	if err != nil {
 10211  		return nil, err
 10212  	}
 10213  	return &BridgeTransferERC721RequestValueTransferIterator{contract: _BridgeTransferERC721.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
 10214  }
 10215  
 10216  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 10217  //
 10218  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 10219  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721RequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 10220  
 10221  	var fromRule []interface{}
 10222  	for _, fromItem := range from {
 10223  		fromRule = append(fromRule, fromItem)
 10224  	}
 10225  	var toRule []interface{}
 10226  	for _, toItem := range to {
 10227  		toRule = append(toRule, toItem)
 10228  	}
 10229  	var tokenAddressRule []interface{}
 10230  	for _, tokenAddressItem := range tokenAddress {
 10231  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 10232  	}
 10233  
 10234  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 10235  	if err != nil {
 10236  		return nil, err
 10237  	}
 10238  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10239  		defer sub.Unsubscribe()
 10240  		for {
 10241  			select {
 10242  			case log := <-logs:
 10243  				// New log arrived, parse the event and forward to the user
 10244  				event := new(BridgeTransferERC721RequestValueTransfer)
 10245  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 10246  					return err
 10247  				}
 10248  				event.Raw = log
 10249  
 10250  				select {
 10251  				case sink <- event:
 10252  				case err := <-sub.Err():
 10253  					return err
 10254  				case <-quit:
 10255  					return nil
 10256  				}
 10257  			case err := <-sub.Err():
 10258  				return err
 10259  			case <-quit:
 10260  				return nil
 10261  			}
 10262  		}
 10263  	}), nil
 10264  }
 10265  
 10266  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 10267  //
 10268  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 10269  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferERC721RequestValueTransfer, error) {
 10270  	event := new(BridgeTransferERC721RequestValueTransfer)
 10271  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 10272  		return nil, err
 10273  	}
 10274  	return event, nil
 10275  }
 10276  
 10277  // BridgeTransferERC721RequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransferERC721 contract.
 10278  type BridgeTransferERC721RequestValueTransferEncodedIterator struct {
 10279  	Event *BridgeTransferERC721RequestValueTransferEncoded // Event containing the contract specifics and raw log
 10280  
 10281  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10282  	event    string              // Event name to use for unpacking event data
 10283  
 10284  	logs chan types.Log      // Log channel receiving the found contract events
 10285  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10286  	done bool                // Whether the subscription completed delivering logs
 10287  	fail error               // Occurred error to stop iteration
 10288  }
 10289  
 10290  // Next advances the iterator to the subsequent event, returning whether there
 10291  // are any more events found. In case of a retrieval or parsing error, false is
 10292  // returned and Error() can be queried for the exact failure.
 10293  func (it *BridgeTransferERC721RequestValueTransferEncodedIterator) Next() bool {
 10294  	// If the iterator failed, stop iterating
 10295  	if it.fail != nil {
 10296  		return false
 10297  	}
 10298  	// If the iterator completed, deliver directly whatever's available
 10299  	if it.done {
 10300  		select {
 10301  		case log := <-it.logs:
 10302  			it.Event = new(BridgeTransferERC721RequestValueTransferEncoded)
 10303  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10304  				it.fail = err
 10305  				return false
 10306  			}
 10307  			it.Event.Raw = log
 10308  			return true
 10309  
 10310  		default:
 10311  			return false
 10312  		}
 10313  	}
 10314  	// Iterator still in progress, wait for either a data or an error event
 10315  	select {
 10316  	case log := <-it.logs:
 10317  		it.Event = new(BridgeTransferERC721RequestValueTransferEncoded)
 10318  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10319  			it.fail = err
 10320  			return false
 10321  		}
 10322  		it.Event.Raw = log
 10323  		return true
 10324  
 10325  	case err := <-it.sub.Err():
 10326  		it.done = true
 10327  		it.fail = err
 10328  		return it.Next()
 10329  	}
 10330  }
 10331  
 10332  // Error returns any retrieval or parsing error occurred during filtering.
 10333  func (it *BridgeTransferERC721RequestValueTransferEncodedIterator) Error() error {
 10334  	return it.fail
 10335  }
 10336  
 10337  // Close terminates the iteration process, releasing any pending underlying
 10338  // resources.
 10339  func (it *BridgeTransferERC721RequestValueTransferEncodedIterator) Close() error {
 10340  	it.sub.Unsubscribe()
 10341  	return nil
 10342  }
 10343  
 10344  // BridgeTransferERC721RequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransferERC721 contract.
 10345  type BridgeTransferERC721RequestValueTransferEncoded struct {
 10346  	TokenType      uint8
 10347  	From           common.Address
 10348  	To             common.Address
 10349  	TokenAddress   common.Address
 10350  	ValueOrTokenId *big.Int
 10351  	RequestNonce   uint64
 10352  	Fee            *big.Int
 10353  	ExtraData      []byte
 10354  	EncodingVer    uint8
 10355  	EncodedData    []byte
 10356  	Raw            types.Log // Blockchain specific contextual infos
 10357  }
 10358  
 10359  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 10360  //
 10361  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 10362  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC721RequestValueTransferEncodedIterator, error) {
 10363  
 10364  	var fromRule []interface{}
 10365  	for _, fromItem := range from {
 10366  		fromRule = append(fromRule, fromItem)
 10367  	}
 10368  	var toRule []interface{}
 10369  	for _, toItem := range to {
 10370  		toRule = append(toRule, toItem)
 10371  	}
 10372  	var tokenAddressRule []interface{}
 10373  	for _, tokenAddressItem := range tokenAddress {
 10374  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 10375  	}
 10376  
 10377  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 10378  	if err != nil {
 10379  		return nil, err
 10380  	}
 10381  	return &BridgeTransferERC721RequestValueTransferEncodedIterator{contract: _BridgeTransferERC721.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
 10382  }
 10383  
 10384  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 10385  //
 10386  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 10387  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721RequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 10388  
 10389  	var fromRule []interface{}
 10390  	for _, fromItem := range from {
 10391  		fromRule = append(fromRule, fromItem)
 10392  	}
 10393  	var toRule []interface{}
 10394  	for _, toItem := range to {
 10395  		toRule = append(toRule, toItem)
 10396  	}
 10397  	var tokenAddressRule []interface{}
 10398  	for _, tokenAddressItem := range tokenAddress {
 10399  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 10400  	}
 10401  
 10402  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 10403  	if err != nil {
 10404  		return nil, err
 10405  	}
 10406  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10407  		defer sub.Unsubscribe()
 10408  		for {
 10409  			select {
 10410  			case log := <-logs:
 10411  				// New log arrived, parse the event and forward to the user
 10412  				event := new(BridgeTransferERC721RequestValueTransferEncoded)
 10413  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 10414  					return err
 10415  				}
 10416  				event.Raw = log
 10417  
 10418  				select {
 10419  				case sink <- event:
 10420  				case err := <-sub.Err():
 10421  					return err
 10422  				case <-quit:
 10423  					return nil
 10424  				}
 10425  			case err := <-sub.Err():
 10426  				return err
 10427  			case <-quit:
 10428  				return nil
 10429  			}
 10430  		}
 10431  	}), nil
 10432  }
 10433  
 10434  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 10435  //
 10436  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 10437  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferERC721RequestValueTransferEncoded, error) {
 10438  	event := new(BridgeTransferERC721RequestValueTransferEncoded)
 10439  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 10440  		return nil, err
 10441  	}
 10442  	return event, nil
 10443  }
 10444  
 10445  // BridgeTransferERC721TokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the BridgeTransferERC721 contract.
 10446  type BridgeTransferERC721TokenDeregisteredIterator struct {
 10447  	Event *BridgeTransferERC721TokenDeregistered // Event containing the contract specifics and raw log
 10448  
 10449  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10450  	event    string              // Event name to use for unpacking event data
 10451  
 10452  	logs chan types.Log      // Log channel receiving the found contract events
 10453  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10454  	done bool                // Whether the subscription completed delivering logs
 10455  	fail error               // Occurred error to stop iteration
 10456  }
 10457  
 10458  // Next advances the iterator to the subsequent event, returning whether there
 10459  // are any more events found. In case of a retrieval or parsing error, false is
 10460  // returned and Error() can be queried for the exact failure.
 10461  func (it *BridgeTransferERC721TokenDeregisteredIterator) Next() bool {
 10462  	// If the iterator failed, stop iterating
 10463  	if it.fail != nil {
 10464  		return false
 10465  	}
 10466  	// If the iterator completed, deliver directly whatever's available
 10467  	if it.done {
 10468  		select {
 10469  		case log := <-it.logs:
 10470  			it.Event = new(BridgeTransferERC721TokenDeregistered)
 10471  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10472  				it.fail = err
 10473  				return false
 10474  			}
 10475  			it.Event.Raw = log
 10476  			return true
 10477  
 10478  		default:
 10479  			return false
 10480  		}
 10481  	}
 10482  	// Iterator still in progress, wait for either a data or an error event
 10483  	select {
 10484  	case log := <-it.logs:
 10485  		it.Event = new(BridgeTransferERC721TokenDeregistered)
 10486  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10487  			it.fail = err
 10488  			return false
 10489  		}
 10490  		it.Event.Raw = log
 10491  		return true
 10492  
 10493  	case err := <-it.sub.Err():
 10494  		it.done = true
 10495  		it.fail = err
 10496  		return it.Next()
 10497  	}
 10498  }
 10499  
 10500  // Error returns any retrieval or parsing error occurred during filtering.
 10501  func (it *BridgeTransferERC721TokenDeregisteredIterator) Error() error {
 10502  	return it.fail
 10503  }
 10504  
 10505  // Close terminates the iteration process, releasing any pending underlying
 10506  // resources.
 10507  func (it *BridgeTransferERC721TokenDeregisteredIterator) Close() error {
 10508  	it.sub.Unsubscribe()
 10509  	return nil
 10510  }
 10511  
 10512  // BridgeTransferERC721TokenDeregistered represents a TokenDeregistered event raised by the BridgeTransferERC721 contract.
 10513  type BridgeTransferERC721TokenDeregistered struct {
 10514  	Token common.Address
 10515  	Raw   types.Log // Blockchain specific contextual infos
 10516  }
 10517  
 10518  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 10519  //
 10520  // Solidity: event TokenDeregistered(address indexed token)
 10521  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenDeregisteredIterator, error) {
 10522  
 10523  	var tokenRule []interface{}
 10524  	for _, tokenItem := range token {
 10525  		tokenRule = append(tokenRule, tokenItem)
 10526  	}
 10527  
 10528  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
 10529  	if err != nil {
 10530  		return nil, err
 10531  	}
 10532  	return &BridgeTransferERC721TokenDeregisteredIterator{contract: _BridgeTransferERC721.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
 10533  }
 10534  
 10535  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 10536  //
 10537  // Solidity: event TokenDeregistered(address indexed token)
 10538  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenDeregistered, token []common.Address) (event.Subscription, error) {
 10539  
 10540  	var tokenRule []interface{}
 10541  	for _, tokenItem := range token {
 10542  		tokenRule = append(tokenRule, tokenItem)
 10543  	}
 10544  
 10545  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
 10546  	if err != nil {
 10547  		return nil, err
 10548  	}
 10549  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10550  		defer sub.Unsubscribe()
 10551  		for {
 10552  			select {
 10553  			case log := <-logs:
 10554  				// New log arrived, parse the event and forward to the user
 10555  				event := new(BridgeTransferERC721TokenDeregistered)
 10556  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 10557  					return err
 10558  				}
 10559  				event.Raw = log
 10560  
 10561  				select {
 10562  				case sink <- event:
 10563  				case err := <-sub.Err():
 10564  					return err
 10565  				case <-quit:
 10566  					return nil
 10567  				}
 10568  			case err := <-sub.Err():
 10569  				return err
 10570  			case <-quit:
 10571  				return nil
 10572  			}
 10573  		}
 10574  	}), nil
 10575  }
 10576  
 10577  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 10578  //
 10579  // Solidity: event TokenDeregistered(address indexed token)
 10580  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenDeregistered(log types.Log) (*BridgeTransferERC721TokenDeregistered, error) {
 10581  	event := new(BridgeTransferERC721TokenDeregistered)
 10582  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 10583  		return nil, err
 10584  	}
 10585  	return event, nil
 10586  }
 10587  
 10588  // BridgeTransferERC721TokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the BridgeTransferERC721 contract.
 10589  type BridgeTransferERC721TokenLockedIterator struct {
 10590  	Event *BridgeTransferERC721TokenLocked // Event containing the contract specifics and raw log
 10591  
 10592  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10593  	event    string              // Event name to use for unpacking event data
 10594  
 10595  	logs chan types.Log      // Log channel receiving the found contract events
 10596  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10597  	done bool                // Whether the subscription completed delivering logs
 10598  	fail error               // Occurred error to stop iteration
 10599  }
 10600  
 10601  // Next advances the iterator to the subsequent event, returning whether there
 10602  // are any more events found. In case of a retrieval or parsing error, false is
 10603  // returned and Error() can be queried for the exact failure.
 10604  func (it *BridgeTransferERC721TokenLockedIterator) Next() bool {
 10605  	// If the iterator failed, stop iterating
 10606  	if it.fail != nil {
 10607  		return false
 10608  	}
 10609  	// If the iterator completed, deliver directly whatever's available
 10610  	if it.done {
 10611  		select {
 10612  		case log := <-it.logs:
 10613  			it.Event = new(BridgeTransferERC721TokenLocked)
 10614  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10615  				it.fail = err
 10616  				return false
 10617  			}
 10618  			it.Event.Raw = log
 10619  			return true
 10620  
 10621  		default:
 10622  			return false
 10623  		}
 10624  	}
 10625  	// Iterator still in progress, wait for either a data or an error event
 10626  	select {
 10627  	case log := <-it.logs:
 10628  		it.Event = new(BridgeTransferERC721TokenLocked)
 10629  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10630  			it.fail = err
 10631  			return false
 10632  		}
 10633  		it.Event.Raw = log
 10634  		return true
 10635  
 10636  	case err := <-it.sub.Err():
 10637  		it.done = true
 10638  		it.fail = err
 10639  		return it.Next()
 10640  	}
 10641  }
 10642  
 10643  // Error returns any retrieval or parsing error occurred during filtering.
 10644  func (it *BridgeTransferERC721TokenLockedIterator) Error() error {
 10645  	return it.fail
 10646  }
 10647  
 10648  // Close terminates the iteration process, releasing any pending underlying
 10649  // resources.
 10650  func (it *BridgeTransferERC721TokenLockedIterator) Close() error {
 10651  	it.sub.Unsubscribe()
 10652  	return nil
 10653  }
 10654  
 10655  // BridgeTransferERC721TokenLocked represents a TokenLocked event raised by the BridgeTransferERC721 contract.
 10656  type BridgeTransferERC721TokenLocked struct {
 10657  	Token common.Address
 10658  	Raw   types.Log // Blockchain specific contextual infos
 10659  }
 10660  
 10661  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 10662  //
 10663  // Solidity: event TokenLocked(address indexed token)
 10664  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenLockedIterator, error) {
 10665  
 10666  	var tokenRule []interface{}
 10667  	for _, tokenItem := range token {
 10668  		tokenRule = append(tokenRule, tokenItem)
 10669  	}
 10670  
 10671  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenLocked", tokenRule)
 10672  	if err != nil {
 10673  		return nil, err
 10674  	}
 10675  	return &BridgeTransferERC721TokenLockedIterator{contract: _BridgeTransferERC721.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
 10676  }
 10677  
 10678  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 10679  //
 10680  // Solidity: event TokenLocked(address indexed token)
 10681  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenLocked, token []common.Address) (event.Subscription, error) {
 10682  
 10683  	var tokenRule []interface{}
 10684  	for _, tokenItem := range token {
 10685  		tokenRule = append(tokenRule, tokenItem)
 10686  	}
 10687  
 10688  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenLocked", tokenRule)
 10689  	if err != nil {
 10690  		return nil, err
 10691  	}
 10692  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10693  		defer sub.Unsubscribe()
 10694  		for {
 10695  			select {
 10696  			case log := <-logs:
 10697  				// New log arrived, parse the event and forward to the user
 10698  				event := new(BridgeTransferERC721TokenLocked)
 10699  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 10700  					return err
 10701  				}
 10702  				event.Raw = log
 10703  
 10704  				select {
 10705  				case sink <- event:
 10706  				case err := <-sub.Err():
 10707  					return err
 10708  				case <-quit:
 10709  					return nil
 10710  				}
 10711  			case err := <-sub.Err():
 10712  				return err
 10713  			case <-quit:
 10714  				return nil
 10715  			}
 10716  		}
 10717  	}), nil
 10718  }
 10719  
 10720  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 10721  //
 10722  // Solidity: event TokenLocked(address indexed token)
 10723  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenLocked(log types.Log) (*BridgeTransferERC721TokenLocked, error) {
 10724  	event := new(BridgeTransferERC721TokenLocked)
 10725  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 10726  		return nil, err
 10727  	}
 10728  	return event, nil
 10729  }
 10730  
 10731  // BridgeTransferERC721TokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the BridgeTransferERC721 contract.
 10732  type BridgeTransferERC721TokenRegisteredIterator struct {
 10733  	Event *BridgeTransferERC721TokenRegistered // Event containing the contract specifics and raw log
 10734  
 10735  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10736  	event    string              // Event name to use for unpacking event data
 10737  
 10738  	logs chan types.Log      // Log channel receiving the found contract events
 10739  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10740  	done bool                // Whether the subscription completed delivering logs
 10741  	fail error               // Occurred error to stop iteration
 10742  }
 10743  
 10744  // Next advances the iterator to the subsequent event, returning whether there
 10745  // are any more events found. In case of a retrieval or parsing error, false is
 10746  // returned and Error() can be queried for the exact failure.
 10747  func (it *BridgeTransferERC721TokenRegisteredIterator) Next() bool {
 10748  	// If the iterator failed, stop iterating
 10749  	if it.fail != nil {
 10750  		return false
 10751  	}
 10752  	// If the iterator completed, deliver directly whatever's available
 10753  	if it.done {
 10754  		select {
 10755  		case log := <-it.logs:
 10756  			it.Event = new(BridgeTransferERC721TokenRegistered)
 10757  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10758  				it.fail = err
 10759  				return false
 10760  			}
 10761  			it.Event.Raw = log
 10762  			return true
 10763  
 10764  		default:
 10765  			return false
 10766  		}
 10767  	}
 10768  	// Iterator still in progress, wait for either a data or an error event
 10769  	select {
 10770  	case log := <-it.logs:
 10771  		it.Event = new(BridgeTransferERC721TokenRegistered)
 10772  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10773  			it.fail = err
 10774  			return false
 10775  		}
 10776  		it.Event.Raw = log
 10777  		return true
 10778  
 10779  	case err := <-it.sub.Err():
 10780  		it.done = true
 10781  		it.fail = err
 10782  		return it.Next()
 10783  	}
 10784  }
 10785  
 10786  // Error returns any retrieval or parsing error occurred during filtering.
 10787  func (it *BridgeTransferERC721TokenRegisteredIterator) Error() error {
 10788  	return it.fail
 10789  }
 10790  
 10791  // Close terminates the iteration process, releasing any pending underlying
 10792  // resources.
 10793  func (it *BridgeTransferERC721TokenRegisteredIterator) Close() error {
 10794  	it.sub.Unsubscribe()
 10795  	return nil
 10796  }
 10797  
 10798  // BridgeTransferERC721TokenRegistered represents a TokenRegistered event raised by the BridgeTransferERC721 contract.
 10799  type BridgeTransferERC721TokenRegistered struct {
 10800  	Token common.Address
 10801  	Raw   types.Log // Blockchain specific contextual infos
 10802  }
 10803  
 10804  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 10805  //
 10806  // Solidity: event TokenRegistered(address indexed token)
 10807  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenRegisteredIterator, error) {
 10808  
 10809  	var tokenRule []interface{}
 10810  	for _, tokenItem := range token {
 10811  		tokenRule = append(tokenRule, tokenItem)
 10812  	}
 10813  
 10814  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
 10815  	if err != nil {
 10816  		return nil, err
 10817  	}
 10818  	return &BridgeTransferERC721TokenRegisteredIterator{contract: _BridgeTransferERC721.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
 10819  }
 10820  
 10821  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 10822  //
 10823  // Solidity: event TokenRegistered(address indexed token)
 10824  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenRegistered, token []common.Address) (event.Subscription, error) {
 10825  
 10826  	var tokenRule []interface{}
 10827  	for _, tokenItem := range token {
 10828  		tokenRule = append(tokenRule, tokenItem)
 10829  	}
 10830  
 10831  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
 10832  	if err != nil {
 10833  		return nil, err
 10834  	}
 10835  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10836  		defer sub.Unsubscribe()
 10837  		for {
 10838  			select {
 10839  			case log := <-logs:
 10840  				// New log arrived, parse the event and forward to the user
 10841  				event := new(BridgeTransferERC721TokenRegistered)
 10842  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 10843  					return err
 10844  				}
 10845  				event.Raw = log
 10846  
 10847  				select {
 10848  				case sink <- event:
 10849  				case err := <-sub.Err():
 10850  					return err
 10851  				case <-quit:
 10852  					return nil
 10853  				}
 10854  			case err := <-sub.Err():
 10855  				return err
 10856  			case <-quit:
 10857  				return nil
 10858  			}
 10859  		}
 10860  	}), nil
 10861  }
 10862  
 10863  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 10864  //
 10865  // Solidity: event TokenRegistered(address indexed token)
 10866  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenRegistered(log types.Log) (*BridgeTransferERC721TokenRegistered, error) {
 10867  	event := new(BridgeTransferERC721TokenRegistered)
 10868  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 10869  		return nil, err
 10870  	}
 10871  	return event, nil
 10872  }
 10873  
 10874  // BridgeTransferERC721TokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the BridgeTransferERC721 contract.
 10875  type BridgeTransferERC721TokenUnlockedIterator struct {
 10876  	Event *BridgeTransferERC721TokenUnlocked // Event containing the contract specifics and raw log
 10877  
 10878  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10879  	event    string              // Event name to use for unpacking event data
 10880  
 10881  	logs chan types.Log      // Log channel receiving the found contract events
 10882  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10883  	done bool                // Whether the subscription completed delivering logs
 10884  	fail error               // Occurred error to stop iteration
 10885  }
 10886  
 10887  // Next advances the iterator to the subsequent event, returning whether there
 10888  // are any more events found. In case of a retrieval or parsing error, false is
 10889  // returned and Error() can be queried for the exact failure.
 10890  func (it *BridgeTransferERC721TokenUnlockedIterator) Next() bool {
 10891  	// If the iterator failed, stop iterating
 10892  	if it.fail != nil {
 10893  		return false
 10894  	}
 10895  	// If the iterator completed, deliver directly whatever's available
 10896  	if it.done {
 10897  		select {
 10898  		case log := <-it.logs:
 10899  			it.Event = new(BridgeTransferERC721TokenUnlocked)
 10900  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10901  				it.fail = err
 10902  				return false
 10903  			}
 10904  			it.Event.Raw = log
 10905  			return true
 10906  
 10907  		default:
 10908  			return false
 10909  		}
 10910  	}
 10911  	// Iterator still in progress, wait for either a data or an error event
 10912  	select {
 10913  	case log := <-it.logs:
 10914  		it.Event = new(BridgeTransferERC721TokenUnlocked)
 10915  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10916  			it.fail = err
 10917  			return false
 10918  		}
 10919  		it.Event.Raw = log
 10920  		return true
 10921  
 10922  	case err := <-it.sub.Err():
 10923  		it.done = true
 10924  		it.fail = err
 10925  		return it.Next()
 10926  	}
 10927  }
 10928  
 10929  // Error returns any retrieval or parsing error occurred during filtering.
 10930  func (it *BridgeTransferERC721TokenUnlockedIterator) Error() error {
 10931  	return it.fail
 10932  }
 10933  
 10934  // Close terminates the iteration process, releasing any pending underlying
 10935  // resources.
 10936  func (it *BridgeTransferERC721TokenUnlockedIterator) Close() error {
 10937  	it.sub.Unsubscribe()
 10938  	return nil
 10939  }
 10940  
 10941  // BridgeTransferERC721TokenUnlocked represents a TokenUnlocked event raised by the BridgeTransferERC721 contract.
 10942  type BridgeTransferERC721TokenUnlocked struct {
 10943  	Token common.Address
 10944  	Raw   types.Log // Blockchain specific contextual infos
 10945  }
 10946  
 10947  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 10948  //
 10949  // Solidity: event TokenUnlocked(address indexed token)
 10950  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenUnlockedIterator, error) {
 10951  
 10952  	var tokenRule []interface{}
 10953  	for _, tokenItem := range token {
 10954  		tokenRule = append(tokenRule, tokenItem)
 10955  	}
 10956  
 10957  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
 10958  	if err != nil {
 10959  		return nil, err
 10960  	}
 10961  	return &BridgeTransferERC721TokenUnlockedIterator{contract: _BridgeTransferERC721.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
 10962  }
 10963  
 10964  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 10965  //
 10966  // Solidity: event TokenUnlocked(address indexed token)
 10967  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenUnlocked, token []common.Address) (event.Subscription, error) {
 10968  
 10969  	var tokenRule []interface{}
 10970  	for _, tokenItem := range token {
 10971  		tokenRule = append(tokenRule, tokenItem)
 10972  	}
 10973  
 10974  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
 10975  	if err != nil {
 10976  		return nil, err
 10977  	}
 10978  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10979  		defer sub.Unsubscribe()
 10980  		for {
 10981  			select {
 10982  			case log := <-logs:
 10983  				// New log arrived, parse the event and forward to the user
 10984  				event := new(BridgeTransferERC721TokenUnlocked)
 10985  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 10986  					return err
 10987  				}
 10988  				event.Raw = log
 10989  
 10990  				select {
 10991  				case sink <- event:
 10992  				case err := <-sub.Err():
 10993  					return err
 10994  				case <-quit:
 10995  					return nil
 10996  				}
 10997  			case err := <-sub.Err():
 10998  				return err
 10999  			case <-quit:
 11000  				return nil
 11001  			}
 11002  		}
 11003  	}), nil
 11004  }
 11005  
 11006  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 11007  //
 11008  // Solidity: event TokenUnlocked(address indexed token)
 11009  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenUnlocked(log types.Log) (*BridgeTransferERC721TokenUnlocked, error) {
 11010  	event := new(BridgeTransferERC721TokenUnlocked)
 11011  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 11012  		return nil, err
 11013  	}
 11014  	return event, nil
 11015  }
 11016  
 11017  // CallbackMetaData contains all meta data concerning the Callback contract.
 11018  var CallbackMetaData = &bind.MetaData{
 11019  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_valueOrID\",\"type\":\"uint256\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"registerOffer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"RegisteredOffer\",\"type\":\"event\"}]",
 11020  	Sigs: map[string]string{
 11021  		"5ec467e2": "registerOffer(address,uint256,address,uint256)",
 11022  	},
 11023  	Bin: "0x6080604052348015600f57600080fd5b5060e98061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80635ec467e214602d575b600080fd5b606460048036036080811015604157600080fd5b506001600160a01b03813581169160208101359160408201351690606001356066565b005b604080516001600160a01b038087168252602082018690528416818301526060810183905290517f6e0b5117e49b57aaf37c635363b1b78a14ad521875ec99079d95bee2838cfeb89181900360800190a15050505056fea165627a7a7230582022e1331afc878dfa83b182b9e6c0bdd8ec3a160e33de88c4be252c72ddbf67bb0029",
 11024  }
 11025  
 11026  // CallbackABI is the input ABI used to generate the binding from.
 11027  // Deprecated: Use CallbackMetaData.ABI instead.
 11028  var CallbackABI = CallbackMetaData.ABI
 11029  
 11030  // CallbackBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 11031  const CallbackBinRuntime = `6080604052348015600f57600080fd5b506004361060285760003560e01c80635ec467e214602d575b600080fd5b606460048036036080811015604157600080fd5b506001600160a01b03813581169160208101359160408201351690606001356066565b005b604080516001600160a01b038087168252602082018690528416818301526060810183905290517f6e0b5117e49b57aaf37c635363b1b78a14ad521875ec99079d95bee2838cfeb89181900360800190a15050505056fea165627a7a7230582022e1331afc878dfa83b182b9e6c0bdd8ec3a160e33de88c4be252c72ddbf67bb0029`
 11032  
 11033  // CallbackFuncSigs maps the 4-byte function signature to its string representation.
 11034  // Deprecated: Use CallbackMetaData.Sigs instead.
 11035  var CallbackFuncSigs = CallbackMetaData.Sigs
 11036  
 11037  // CallbackBin is the compiled bytecode used for deploying new contracts.
 11038  // Deprecated: Use CallbackMetaData.Bin instead.
 11039  var CallbackBin = CallbackMetaData.Bin
 11040  
 11041  // DeployCallback deploys a new Klaytn contract, binding an instance of Callback to it.
 11042  func DeployCallback(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Callback, error) {
 11043  	parsed, err := CallbackMetaData.GetAbi()
 11044  	if err != nil {
 11045  		return common.Address{}, nil, nil, err
 11046  	}
 11047  	if parsed == nil {
 11048  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 11049  	}
 11050  
 11051  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CallbackBin), backend)
 11052  	if err != nil {
 11053  		return common.Address{}, nil, nil, err
 11054  	}
 11055  	return address, tx, &Callback{CallbackCaller: CallbackCaller{contract: contract}, CallbackTransactor: CallbackTransactor{contract: contract}, CallbackFilterer: CallbackFilterer{contract: contract}}, nil
 11056  }
 11057  
 11058  // Callback is an auto generated Go binding around a Klaytn contract.
 11059  type Callback struct {
 11060  	CallbackCaller     // Read-only binding to the contract
 11061  	CallbackTransactor // Write-only binding to the contract
 11062  	CallbackFilterer   // Log filterer for contract events
 11063  }
 11064  
 11065  // CallbackCaller is an auto generated read-only Go binding around a Klaytn contract.
 11066  type CallbackCaller struct {
 11067  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11068  }
 11069  
 11070  // CallbackTransactor is an auto generated write-only Go binding around a Klaytn contract.
 11071  type CallbackTransactor struct {
 11072  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11073  }
 11074  
 11075  // CallbackFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 11076  type CallbackFilterer struct {
 11077  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11078  }
 11079  
 11080  // CallbackSession is an auto generated Go binding around a Klaytn contract,
 11081  // with pre-set call and transact options.
 11082  type CallbackSession struct {
 11083  	Contract     *Callback         // Generic contract binding to set the session for
 11084  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11085  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11086  }
 11087  
 11088  // CallbackCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 11089  // with pre-set call options.
 11090  type CallbackCallerSession struct {
 11091  	Contract *CallbackCaller // Generic contract caller binding to set the session for
 11092  	CallOpts bind.CallOpts   // Call options to use throughout this session
 11093  }
 11094  
 11095  // CallbackTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 11096  // with pre-set transact options.
 11097  type CallbackTransactorSession struct {
 11098  	Contract     *CallbackTransactor // Generic contract transactor binding to set the session for
 11099  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 11100  }
 11101  
 11102  // CallbackRaw is an auto generated low-level Go binding around a Klaytn contract.
 11103  type CallbackRaw struct {
 11104  	Contract *Callback // Generic contract binding to access the raw methods on
 11105  }
 11106  
 11107  // CallbackCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 11108  type CallbackCallerRaw struct {
 11109  	Contract *CallbackCaller // Generic read-only contract binding to access the raw methods on
 11110  }
 11111  
 11112  // CallbackTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 11113  type CallbackTransactorRaw struct {
 11114  	Contract *CallbackTransactor // Generic write-only contract binding to access the raw methods on
 11115  }
 11116  
 11117  // NewCallback creates a new instance of Callback, bound to a specific deployed contract.
 11118  func NewCallback(address common.Address, backend bind.ContractBackend) (*Callback, error) {
 11119  	contract, err := bindCallback(address, backend, backend, backend)
 11120  	if err != nil {
 11121  		return nil, err
 11122  	}
 11123  	return &Callback{CallbackCaller: CallbackCaller{contract: contract}, CallbackTransactor: CallbackTransactor{contract: contract}, CallbackFilterer: CallbackFilterer{contract: contract}}, nil
 11124  }
 11125  
 11126  // NewCallbackCaller creates a new read-only instance of Callback, bound to a specific deployed contract.
 11127  func NewCallbackCaller(address common.Address, caller bind.ContractCaller) (*CallbackCaller, error) {
 11128  	contract, err := bindCallback(address, caller, nil, nil)
 11129  	if err != nil {
 11130  		return nil, err
 11131  	}
 11132  	return &CallbackCaller{contract: contract}, nil
 11133  }
 11134  
 11135  // NewCallbackTransactor creates a new write-only instance of Callback, bound to a specific deployed contract.
 11136  func NewCallbackTransactor(address common.Address, transactor bind.ContractTransactor) (*CallbackTransactor, error) {
 11137  	contract, err := bindCallback(address, nil, transactor, nil)
 11138  	if err != nil {
 11139  		return nil, err
 11140  	}
 11141  	return &CallbackTransactor{contract: contract}, nil
 11142  }
 11143  
 11144  // NewCallbackFilterer creates a new log filterer instance of Callback, bound to a specific deployed contract.
 11145  func NewCallbackFilterer(address common.Address, filterer bind.ContractFilterer) (*CallbackFilterer, error) {
 11146  	contract, err := bindCallback(address, nil, nil, filterer)
 11147  	if err != nil {
 11148  		return nil, err
 11149  	}
 11150  	return &CallbackFilterer{contract: contract}, nil
 11151  }
 11152  
 11153  // bindCallback binds a generic wrapper to an already deployed contract.
 11154  func bindCallback(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11155  	parsed, err := CallbackMetaData.GetAbi()
 11156  	if err != nil {
 11157  		return nil, err
 11158  	}
 11159  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 11160  }
 11161  
 11162  // Call invokes the (constant) contract method with params as input values and
 11163  // sets the output to result. The result type might be a single field for simple
 11164  // returns, a slice of interfaces for anonymous returns and a struct for named
 11165  // returns.
 11166  func (_Callback *CallbackRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11167  	return _Callback.Contract.CallbackCaller.contract.Call(opts, result, method, params...)
 11168  }
 11169  
 11170  // Transfer initiates a plain transaction to move funds to the contract, calling
 11171  // its default method if one is available.
 11172  func (_Callback *CallbackRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11173  	return _Callback.Contract.CallbackTransactor.contract.Transfer(opts)
 11174  }
 11175  
 11176  // Transact invokes the (paid) contract method with params as input values.
 11177  func (_Callback *CallbackRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11178  	return _Callback.Contract.CallbackTransactor.contract.Transact(opts, method, params...)
 11179  }
 11180  
 11181  // Call invokes the (constant) contract method with params as input values and
 11182  // sets the output to result. The result type might be a single field for simple
 11183  // returns, a slice of interfaces for anonymous returns and a struct for named
 11184  // returns.
 11185  func (_Callback *CallbackCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11186  	return _Callback.Contract.contract.Call(opts, result, method, params...)
 11187  }
 11188  
 11189  // Transfer initiates a plain transaction to move funds to the contract, calling
 11190  // its default method if one is available.
 11191  func (_Callback *CallbackTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11192  	return _Callback.Contract.contract.Transfer(opts)
 11193  }
 11194  
 11195  // Transact invokes the (paid) contract method with params as input values.
 11196  func (_Callback *CallbackTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11197  	return _Callback.Contract.contract.Transact(opts, method, params...)
 11198  }
 11199  
 11200  // RegisterOffer is a paid mutator transaction binding the contract method 0x5ec467e2.
 11201  //
 11202  // Solidity: function registerOffer(address _owner, uint256 _valueOrID, address _tokenAddress, uint256 _price) returns()
 11203  func (_Callback *CallbackTransactor) RegisterOffer(opts *bind.TransactOpts, _owner common.Address, _valueOrID *big.Int, _tokenAddress common.Address, _price *big.Int) (*types.Transaction, error) {
 11204  	return _Callback.contract.Transact(opts, "registerOffer", _owner, _valueOrID, _tokenAddress, _price)
 11205  }
 11206  
 11207  // RegisterOffer is a paid mutator transaction binding the contract method 0x5ec467e2.
 11208  //
 11209  // Solidity: function registerOffer(address _owner, uint256 _valueOrID, address _tokenAddress, uint256 _price) returns()
 11210  func (_Callback *CallbackSession) RegisterOffer(_owner common.Address, _valueOrID *big.Int, _tokenAddress common.Address, _price *big.Int) (*types.Transaction, error) {
 11211  	return _Callback.Contract.RegisterOffer(&_Callback.TransactOpts, _owner, _valueOrID, _tokenAddress, _price)
 11212  }
 11213  
 11214  // RegisterOffer is a paid mutator transaction binding the contract method 0x5ec467e2.
 11215  //
 11216  // Solidity: function registerOffer(address _owner, uint256 _valueOrID, address _tokenAddress, uint256 _price) returns()
 11217  func (_Callback *CallbackTransactorSession) RegisterOffer(_owner common.Address, _valueOrID *big.Int, _tokenAddress common.Address, _price *big.Int) (*types.Transaction, error) {
 11218  	return _Callback.Contract.RegisterOffer(&_Callback.TransactOpts, _owner, _valueOrID, _tokenAddress, _price)
 11219  }
 11220  
 11221  // CallbackRegisteredOfferIterator is returned from FilterRegisteredOffer and is used to iterate over the raw logs and unpacked data for RegisteredOffer events raised by the Callback contract.
 11222  type CallbackRegisteredOfferIterator struct {
 11223  	Event *CallbackRegisteredOffer // Event containing the contract specifics and raw log
 11224  
 11225  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11226  	event    string              // Event name to use for unpacking event data
 11227  
 11228  	logs chan types.Log      // Log channel receiving the found contract events
 11229  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11230  	done bool                // Whether the subscription completed delivering logs
 11231  	fail error               // Occurred error to stop iteration
 11232  }
 11233  
 11234  // Next advances the iterator to the subsequent event, returning whether there
 11235  // are any more events found. In case of a retrieval or parsing error, false is
 11236  // returned and Error() can be queried for the exact failure.
 11237  func (it *CallbackRegisteredOfferIterator) Next() bool {
 11238  	// If the iterator failed, stop iterating
 11239  	if it.fail != nil {
 11240  		return false
 11241  	}
 11242  	// If the iterator completed, deliver directly whatever's available
 11243  	if it.done {
 11244  		select {
 11245  		case log := <-it.logs:
 11246  			it.Event = new(CallbackRegisteredOffer)
 11247  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11248  				it.fail = err
 11249  				return false
 11250  			}
 11251  			it.Event.Raw = log
 11252  			return true
 11253  
 11254  		default:
 11255  			return false
 11256  		}
 11257  	}
 11258  	// Iterator still in progress, wait for either a data or an error event
 11259  	select {
 11260  	case log := <-it.logs:
 11261  		it.Event = new(CallbackRegisteredOffer)
 11262  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11263  			it.fail = err
 11264  			return false
 11265  		}
 11266  		it.Event.Raw = log
 11267  		return true
 11268  
 11269  	case err := <-it.sub.Err():
 11270  		it.done = true
 11271  		it.fail = err
 11272  		return it.Next()
 11273  	}
 11274  }
 11275  
 11276  // Error returns any retrieval or parsing error occurred during filtering.
 11277  func (it *CallbackRegisteredOfferIterator) Error() error {
 11278  	return it.fail
 11279  }
 11280  
 11281  // Close terminates the iteration process, releasing any pending underlying
 11282  // resources.
 11283  func (it *CallbackRegisteredOfferIterator) Close() error {
 11284  	it.sub.Unsubscribe()
 11285  	return nil
 11286  }
 11287  
 11288  // CallbackRegisteredOffer represents a RegisteredOffer event raised by the Callback contract.
 11289  type CallbackRegisteredOffer struct {
 11290  	Owner        common.Address
 11291  	ValueOrID    *big.Int
 11292  	TokenAddress common.Address
 11293  	Price        *big.Int
 11294  	Raw          types.Log // Blockchain specific contextual infos
 11295  }
 11296  
 11297  // FilterRegisteredOffer is a free log retrieval operation binding the contract event 0x6e0b5117e49b57aaf37c635363b1b78a14ad521875ec99079d95bee2838cfeb8.
 11298  //
 11299  // Solidity: event RegisteredOffer(address owner, uint256 valueOrID, address tokenAddress, uint256 price)
 11300  func (_Callback *CallbackFilterer) FilterRegisteredOffer(opts *bind.FilterOpts) (*CallbackRegisteredOfferIterator, error) {
 11301  
 11302  	logs, sub, err := _Callback.contract.FilterLogs(opts, "RegisteredOffer")
 11303  	if err != nil {
 11304  		return nil, err
 11305  	}
 11306  	return &CallbackRegisteredOfferIterator{contract: _Callback.contract, event: "RegisteredOffer", logs: logs, sub: sub}, nil
 11307  }
 11308  
 11309  // WatchRegisteredOffer is a free log subscription operation binding the contract event 0x6e0b5117e49b57aaf37c635363b1b78a14ad521875ec99079d95bee2838cfeb8.
 11310  //
 11311  // Solidity: event RegisteredOffer(address owner, uint256 valueOrID, address tokenAddress, uint256 price)
 11312  func (_Callback *CallbackFilterer) WatchRegisteredOffer(opts *bind.WatchOpts, sink chan<- *CallbackRegisteredOffer) (event.Subscription, error) {
 11313  
 11314  	logs, sub, err := _Callback.contract.WatchLogs(opts, "RegisteredOffer")
 11315  	if err != nil {
 11316  		return nil, err
 11317  	}
 11318  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11319  		defer sub.Unsubscribe()
 11320  		for {
 11321  			select {
 11322  			case log := <-logs:
 11323  				// New log arrived, parse the event and forward to the user
 11324  				event := new(CallbackRegisteredOffer)
 11325  				if err := _Callback.contract.UnpackLog(event, "RegisteredOffer", log); err != nil {
 11326  					return err
 11327  				}
 11328  				event.Raw = log
 11329  
 11330  				select {
 11331  				case sink <- event:
 11332  				case err := <-sub.Err():
 11333  					return err
 11334  				case <-quit:
 11335  					return nil
 11336  				}
 11337  			case err := <-sub.Err():
 11338  				return err
 11339  			case <-quit:
 11340  				return nil
 11341  			}
 11342  		}
 11343  	}), nil
 11344  }
 11345  
 11346  // ParseRegisteredOffer is a log parse operation binding the contract event 0x6e0b5117e49b57aaf37c635363b1b78a14ad521875ec99079d95bee2838cfeb8.
 11347  //
 11348  // Solidity: event RegisteredOffer(address owner, uint256 valueOrID, address tokenAddress, uint256 price)
 11349  func (_Callback *CallbackFilterer) ParseRegisteredOffer(log types.Log) (*CallbackRegisteredOffer, error) {
 11350  	event := new(CallbackRegisteredOffer)
 11351  	if err := _Callback.contract.UnpackLog(event, "RegisteredOffer", log); err != nil {
 11352  		return nil, err
 11353  	}
 11354  	return event, nil
 11355  }
 11356  
 11357  // CountersMetaData contains all meta data concerning the Counters contract.
 11358  var CountersMetaData = &bind.MetaData{
 11359  	ABI: "[]",
 11360  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820805a368616cc52189113373468f3b8d2b801d1cb861a5f35c763ad7ac01ac1fe0029",
 11361  }
 11362  
 11363  // CountersABI is the input ABI used to generate the binding from.
 11364  // Deprecated: Use CountersMetaData.ABI instead.
 11365  var CountersABI = CountersMetaData.ABI
 11366  
 11367  // CountersBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 11368  const CountersBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820805a368616cc52189113373468f3b8d2b801d1cb861a5f35c763ad7ac01ac1fe0029`
 11369  
 11370  // CountersBin is the compiled bytecode used for deploying new contracts.
 11371  // Deprecated: Use CountersMetaData.Bin instead.
 11372  var CountersBin = CountersMetaData.Bin
 11373  
 11374  // DeployCounters deploys a new Klaytn contract, binding an instance of Counters to it.
 11375  func DeployCounters(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Counters, error) {
 11376  	parsed, err := CountersMetaData.GetAbi()
 11377  	if err != nil {
 11378  		return common.Address{}, nil, nil, err
 11379  	}
 11380  	if parsed == nil {
 11381  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 11382  	}
 11383  
 11384  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CountersBin), backend)
 11385  	if err != nil {
 11386  		return common.Address{}, nil, nil, err
 11387  	}
 11388  	return address, tx, &Counters{CountersCaller: CountersCaller{contract: contract}, CountersTransactor: CountersTransactor{contract: contract}, CountersFilterer: CountersFilterer{contract: contract}}, nil
 11389  }
 11390  
 11391  // Counters is an auto generated Go binding around a Klaytn contract.
 11392  type Counters struct {
 11393  	CountersCaller     // Read-only binding to the contract
 11394  	CountersTransactor // Write-only binding to the contract
 11395  	CountersFilterer   // Log filterer for contract events
 11396  }
 11397  
 11398  // CountersCaller is an auto generated read-only Go binding around a Klaytn contract.
 11399  type CountersCaller struct {
 11400  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11401  }
 11402  
 11403  // CountersTransactor is an auto generated write-only Go binding around a Klaytn contract.
 11404  type CountersTransactor struct {
 11405  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11406  }
 11407  
 11408  // CountersFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 11409  type CountersFilterer struct {
 11410  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11411  }
 11412  
 11413  // CountersSession is an auto generated Go binding around a Klaytn contract,
 11414  // with pre-set call and transact options.
 11415  type CountersSession struct {
 11416  	Contract     *Counters         // Generic contract binding to set the session for
 11417  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11418  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11419  }
 11420  
 11421  // CountersCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 11422  // with pre-set call options.
 11423  type CountersCallerSession struct {
 11424  	Contract *CountersCaller // Generic contract caller binding to set the session for
 11425  	CallOpts bind.CallOpts   // Call options to use throughout this session
 11426  }
 11427  
 11428  // CountersTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 11429  // with pre-set transact options.
 11430  type CountersTransactorSession struct {
 11431  	Contract     *CountersTransactor // Generic contract transactor binding to set the session for
 11432  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 11433  }
 11434  
 11435  // CountersRaw is an auto generated low-level Go binding around a Klaytn contract.
 11436  type CountersRaw struct {
 11437  	Contract *Counters // Generic contract binding to access the raw methods on
 11438  }
 11439  
 11440  // CountersCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 11441  type CountersCallerRaw struct {
 11442  	Contract *CountersCaller // Generic read-only contract binding to access the raw methods on
 11443  }
 11444  
 11445  // CountersTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 11446  type CountersTransactorRaw struct {
 11447  	Contract *CountersTransactor // Generic write-only contract binding to access the raw methods on
 11448  }
 11449  
 11450  // NewCounters creates a new instance of Counters, bound to a specific deployed contract.
 11451  func NewCounters(address common.Address, backend bind.ContractBackend) (*Counters, error) {
 11452  	contract, err := bindCounters(address, backend, backend, backend)
 11453  	if err != nil {
 11454  		return nil, err
 11455  	}
 11456  	return &Counters{CountersCaller: CountersCaller{contract: contract}, CountersTransactor: CountersTransactor{contract: contract}, CountersFilterer: CountersFilterer{contract: contract}}, nil
 11457  }
 11458  
 11459  // NewCountersCaller creates a new read-only instance of Counters, bound to a specific deployed contract.
 11460  func NewCountersCaller(address common.Address, caller bind.ContractCaller) (*CountersCaller, error) {
 11461  	contract, err := bindCounters(address, caller, nil, nil)
 11462  	if err != nil {
 11463  		return nil, err
 11464  	}
 11465  	return &CountersCaller{contract: contract}, nil
 11466  }
 11467  
 11468  // NewCountersTransactor creates a new write-only instance of Counters, bound to a specific deployed contract.
 11469  func NewCountersTransactor(address common.Address, transactor bind.ContractTransactor) (*CountersTransactor, error) {
 11470  	contract, err := bindCounters(address, nil, transactor, nil)
 11471  	if err != nil {
 11472  		return nil, err
 11473  	}
 11474  	return &CountersTransactor{contract: contract}, nil
 11475  }
 11476  
 11477  // NewCountersFilterer creates a new log filterer instance of Counters, bound to a specific deployed contract.
 11478  func NewCountersFilterer(address common.Address, filterer bind.ContractFilterer) (*CountersFilterer, error) {
 11479  	contract, err := bindCounters(address, nil, nil, filterer)
 11480  	if err != nil {
 11481  		return nil, err
 11482  	}
 11483  	return &CountersFilterer{contract: contract}, nil
 11484  }
 11485  
 11486  // bindCounters binds a generic wrapper to an already deployed contract.
 11487  func bindCounters(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11488  	parsed, err := CountersMetaData.GetAbi()
 11489  	if err != nil {
 11490  		return nil, err
 11491  	}
 11492  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 11493  }
 11494  
 11495  // Call invokes the (constant) contract method with params as input values and
 11496  // sets the output to result. The result type might be a single field for simple
 11497  // returns, a slice of interfaces for anonymous returns and a struct for named
 11498  // returns.
 11499  func (_Counters *CountersRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11500  	return _Counters.Contract.CountersCaller.contract.Call(opts, result, method, params...)
 11501  }
 11502  
 11503  // Transfer initiates a plain transaction to move funds to the contract, calling
 11504  // its default method if one is available.
 11505  func (_Counters *CountersRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11506  	return _Counters.Contract.CountersTransactor.contract.Transfer(opts)
 11507  }
 11508  
 11509  // Transact invokes the (paid) contract method with params as input values.
 11510  func (_Counters *CountersRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11511  	return _Counters.Contract.CountersTransactor.contract.Transact(opts, method, params...)
 11512  }
 11513  
 11514  // Call invokes the (constant) contract method with params as input values and
 11515  // sets the output to result. The result type might be a single field for simple
 11516  // returns, a slice of interfaces for anonymous returns and a struct for named
 11517  // returns.
 11518  func (_Counters *CountersCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11519  	return _Counters.Contract.contract.Call(opts, result, method, params...)
 11520  }
 11521  
 11522  // Transfer initiates a plain transaction to move funds to the contract, calling
 11523  // its default method if one is available.
 11524  func (_Counters *CountersTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11525  	return _Counters.Contract.contract.Transfer(opts)
 11526  }
 11527  
 11528  // Transact invokes the (paid) contract method with params as input values.
 11529  func (_Counters *CountersTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11530  	return _Counters.Contract.contract.Transact(opts, method, params...)
 11531  }
 11532  
 11533  // ERC165MetaData contains all meta data concerning the ERC165 contract.
 11534  var ERC165MetaData = &bind.MetaData{
 11535  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]",
 11536  	Sigs: map[string]string{
 11537  		"01ffc9a7": "supportsInterface(bytes4)",
 11538  	},
 11539  }
 11540  
 11541  // ERC165ABI is the input ABI used to generate the binding from.
 11542  // Deprecated: Use ERC165MetaData.ABI instead.
 11543  var ERC165ABI = ERC165MetaData.ABI
 11544  
 11545  // ERC165BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 11546  const ERC165BinRuntime = ``
 11547  
 11548  // ERC165FuncSigs maps the 4-byte function signature to its string representation.
 11549  // Deprecated: Use ERC165MetaData.Sigs instead.
 11550  var ERC165FuncSigs = ERC165MetaData.Sigs
 11551  
 11552  // ERC165 is an auto generated Go binding around a Klaytn contract.
 11553  type ERC165 struct {
 11554  	ERC165Caller     // Read-only binding to the contract
 11555  	ERC165Transactor // Write-only binding to the contract
 11556  	ERC165Filterer   // Log filterer for contract events
 11557  }
 11558  
 11559  // ERC165Caller is an auto generated read-only Go binding around a Klaytn contract.
 11560  type ERC165Caller struct {
 11561  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11562  }
 11563  
 11564  // ERC165Transactor is an auto generated write-only Go binding around a Klaytn contract.
 11565  type ERC165Transactor struct {
 11566  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11567  }
 11568  
 11569  // ERC165Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 11570  type ERC165Filterer struct {
 11571  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11572  }
 11573  
 11574  // ERC165Session is an auto generated Go binding around a Klaytn contract,
 11575  // with pre-set call and transact options.
 11576  type ERC165Session struct {
 11577  	Contract     *ERC165           // Generic contract binding to set the session for
 11578  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11579  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11580  }
 11581  
 11582  // ERC165CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 11583  // with pre-set call options.
 11584  type ERC165CallerSession struct {
 11585  	Contract *ERC165Caller // Generic contract caller binding to set the session for
 11586  	CallOpts bind.CallOpts // Call options to use throughout this session
 11587  }
 11588  
 11589  // ERC165TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 11590  // with pre-set transact options.
 11591  type ERC165TransactorSession struct {
 11592  	Contract     *ERC165Transactor // Generic contract transactor binding to set the session for
 11593  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11594  }
 11595  
 11596  // ERC165Raw is an auto generated low-level Go binding around a Klaytn contract.
 11597  type ERC165Raw struct {
 11598  	Contract *ERC165 // Generic contract binding to access the raw methods on
 11599  }
 11600  
 11601  // ERC165CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 11602  type ERC165CallerRaw struct {
 11603  	Contract *ERC165Caller // Generic read-only contract binding to access the raw methods on
 11604  }
 11605  
 11606  // ERC165TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 11607  type ERC165TransactorRaw struct {
 11608  	Contract *ERC165Transactor // Generic write-only contract binding to access the raw methods on
 11609  }
 11610  
 11611  // NewERC165 creates a new instance of ERC165, bound to a specific deployed contract.
 11612  func NewERC165(address common.Address, backend bind.ContractBackend) (*ERC165, error) {
 11613  	contract, err := bindERC165(address, backend, backend, backend)
 11614  	if err != nil {
 11615  		return nil, err
 11616  	}
 11617  	return &ERC165{ERC165Caller: ERC165Caller{contract: contract}, ERC165Transactor: ERC165Transactor{contract: contract}, ERC165Filterer: ERC165Filterer{contract: contract}}, nil
 11618  }
 11619  
 11620  // NewERC165Caller creates a new read-only instance of ERC165, bound to a specific deployed contract.
 11621  func NewERC165Caller(address common.Address, caller bind.ContractCaller) (*ERC165Caller, error) {
 11622  	contract, err := bindERC165(address, caller, nil, nil)
 11623  	if err != nil {
 11624  		return nil, err
 11625  	}
 11626  	return &ERC165Caller{contract: contract}, nil
 11627  }
 11628  
 11629  // NewERC165Transactor creates a new write-only instance of ERC165, bound to a specific deployed contract.
 11630  func NewERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC165Transactor, error) {
 11631  	contract, err := bindERC165(address, nil, transactor, nil)
 11632  	if err != nil {
 11633  		return nil, err
 11634  	}
 11635  	return &ERC165Transactor{contract: contract}, nil
 11636  }
 11637  
 11638  // NewERC165Filterer creates a new log filterer instance of ERC165, bound to a specific deployed contract.
 11639  func NewERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC165Filterer, error) {
 11640  	contract, err := bindERC165(address, nil, nil, filterer)
 11641  	if err != nil {
 11642  		return nil, err
 11643  	}
 11644  	return &ERC165Filterer{contract: contract}, nil
 11645  }
 11646  
 11647  // bindERC165 binds a generic wrapper to an already deployed contract.
 11648  func bindERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11649  	parsed, err := ERC165MetaData.GetAbi()
 11650  	if err != nil {
 11651  		return nil, err
 11652  	}
 11653  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 11654  }
 11655  
 11656  // Call invokes the (constant) contract method with params as input values and
 11657  // sets the output to result. The result type might be a single field for simple
 11658  // returns, a slice of interfaces for anonymous returns and a struct for named
 11659  // returns.
 11660  func (_ERC165 *ERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11661  	return _ERC165.Contract.ERC165Caller.contract.Call(opts, result, method, params...)
 11662  }
 11663  
 11664  // Transfer initiates a plain transaction to move funds to the contract, calling
 11665  // its default method if one is available.
 11666  func (_ERC165 *ERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11667  	return _ERC165.Contract.ERC165Transactor.contract.Transfer(opts)
 11668  }
 11669  
 11670  // Transact invokes the (paid) contract method with params as input values.
 11671  func (_ERC165 *ERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11672  	return _ERC165.Contract.ERC165Transactor.contract.Transact(opts, method, params...)
 11673  }
 11674  
 11675  // Call invokes the (constant) contract method with params as input values and
 11676  // sets the output to result. The result type might be a single field for simple
 11677  // returns, a slice of interfaces for anonymous returns and a struct for named
 11678  // returns.
 11679  func (_ERC165 *ERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11680  	return _ERC165.Contract.contract.Call(opts, result, method, params...)
 11681  }
 11682  
 11683  // Transfer initiates a plain transaction to move funds to the contract, calling
 11684  // its default method if one is available.
 11685  func (_ERC165 *ERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11686  	return _ERC165.Contract.contract.Transfer(opts)
 11687  }
 11688  
 11689  // Transact invokes the (paid) contract method with params as input values.
 11690  func (_ERC165 *ERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11691  	return _ERC165.Contract.contract.Transact(opts, method, params...)
 11692  }
 11693  
 11694  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 11695  //
 11696  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 11697  func (_ERC165 *ERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 11698  	var out []interface{}
 11699  	err := _ERC165.contract.Call(opts, &out, "supportsInterface", interfaceId)
 11700  
 11701  	if err != nil {
 11702  		return *new(bool), err
 11703  	}
 11704  
 11705  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 11706  
 11707  	return out0, err
 11708  
 11709  }
 11710  
 11711  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 11712  //
 11713  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 11714  func (_ERC165 *ERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 11715  	return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId)
 11716  }
 11717  
 11718  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 11719  //
 11720  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 11721  func (_ERC165 *ERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 11722  	return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId)
 11723  }
 11724  
 11725  // ERC20MetaData contains all meta data concerning the ERC20 contract.
 11726  var ERC20MetaData = &bind.MetaData{
 11727  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 11728  	Sigs: map[string]string{
 11729  		"dd62ed3e": "allowance(address,address)",
 11730  		"095ea7b3": "approve(address,uint256)",
 11731  		"70a08231": "balanceOf(address)",
 11732  		"a457c2d7": "decreaseAllowance(address,uint256)",
 11733  		"39509351": "increaseAllowance(address,uint256)",
 11734  		"18160ddd": "totalSupply()",
 11735  		"a9059cbb": "transfer(address,uint256)",
 11736  		"23b872dd": "transferFrom(address,address,uint256)",
 11737  	},
 11738  	Bin: "0x608060405234801561001057600080fd5b506106eb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e848484610425565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61056d16565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff6105cd16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61056d16565b6000610202338484610425565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661037b57604051600160e51b62461bcd02815260040180806020018281038252602481526020018061069c6024913960400191505060405180910390fd5b6001600160a01b0382166103c357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806106556022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661046d57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806106776025913960400191505060405180910390fd5b6001600160a01b0382166104b557604051600160e51b62461bcd0281526004018080602001828103825260238152602001806106326023913960400191505060405180910390fd5b6001600160a01b0383166000908152602081905260409020546104de908263ffffffff61056d16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610513908263ffffffff6105cd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156105c75760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561062a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200e33dfdabb620ad5daebde6c55a52fcc617b6413d3d04bdaeb7925e86b327d6a0029",
 11739  }
 11740  
 11741  // ERC20ABI is the input ABI used to generate the binding from.
 11742  // Deprecated: Use ERC20MetaData.ABI instead.
 11743  var ERC20ABI = ERC20MetaData.ABI
 11744  
 11745  // ERC20BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 11746  const ERC20BinRuntime = `608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e848484610425565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61056d16565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff6105cd16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61056d16565b6000610202338484610425565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661037b57604051600160e51b62461bcd02815260040180806020018281038252602481526020018061069c6024913960400191505060405180910390fd5b6001600160a01b0382166103c357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806106556022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661046d57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806106776025913960400191505060405180910390fd5b6001600160a01b0382166104b557604051600160e51b62461bcd0281526004018080602001828103825260238152602001806106326023913960400191505060405180910390fd5b6001600160a01b0383166000908152602081905260409020546104de908263ffffffff61056d16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610513908263ffffffff6105cd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156105c75760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561062a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200e33dfdabb620ad5daebde6c55a52fcc617b6413d3d04bdaeb7925e86b327d6a0029`
 11747  
 11748  // ERC20FuncSigs maps the 4-byte function signature to its string representation.
 11749  // Deprecated: Use ERC20MetaData.Sigs instead.
 11750  var ERC20FuncSigs = ERC20MetaData.Sigs
 11751  
 11752  // ERC20Bin is the compiled bytecode used for deploying new contracts.
 11753  // Deprecated: Use ERC20MetaData.Bin instead.
 11754  var ERC20Bin = ERC20MetaData.Bin
 11755  
 11756  // DeployERC20 deploys a new Klaytn contract, binding an instance of ERC20 to it.
 11757  func DeployERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20, error) {
 11758  	parsed, err := ERC20MetaData.GetAbi()
 11759  	if err != nil {
 11760  		return common.Address{}, nil, nil, err
 11761  	}
 11762  	if parsed == nil {
 11763  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 11764  	}
 11765  
 11766  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20Bin), backend)
 11767  	if err != nil {
 11768  		return common.Address{}, nil, nil, err
 11769  	}
 11770  	return address, tx, &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil
 11771  }
 11772  
 11773  // ERC20 is an auto generated Go binding around a Klaytn contract.
 11774  type ERC20 struct {
 11775  	ERC20Caller     // Read-only binding to the contract
 11776  	ERC20Transactor // Write-only binding to the contract
 11777  	ERC20Filterer   // Log filterer for contract events
 11778  }
 11779  
 11780  // ERC20Caller is an auto generated read-only Go binding around a Klaytn contract.
 11781  type ERC20Caller struct {
 11782  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11783  }
 11784  
 11785  // ERC20Transactor is an auto generated write-only Go binding around a Klaytn contract.
 11786  type ERC20Transactor struct {
 11787  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11788  }
 11789  
 11790  // ERC20Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 11791  type ERC20Filterer struct {
 11792  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11793  }
 11794  
 11795  // ERC20Session is an auto generated Go binding around a Klaytn contract,
 11796  // with pre-set call and transact options.
 11797  type ERC20Session struct {
 11798  	Contract     *ERC20            // Generic contract binding to set the session for
 11799  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11800  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11801  }
 11802  
 11803  // ERC20CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 11804  // with pre-set call options.
 11805  type ERC20CallerSession struct {
 11806  	Contract *ERC20Caller  // Generic contract caller binding to set the session for
 11807  	CallOpts bind.CallOpts // Call options to use throughout this session
 11808  }
 11809  
 11810  // ERC20TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 11811  // with pre-set transact options.
 11812  type ERC20TransactorSession struct {
 11813  	Contract     *ERC20Transactor  // Generic contract transactor binding to set the session for
 11814  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11815  }
 11816  
 11817  // ERC20Raw is an auto generated low-level Go binding around a Klaytn contract.
 11818  type ERC20Raw struct {
 11819  	Contract *ERC20 // Generic contract binding to access the raw methods on
 11820  }
 11821  
 11822  // ERC20CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 11823  type ERC20CallerRaw struct {
 11824  	Contract *ERC20Caller // Generic read-only contract binding to access the raw methods on
 11825  }
 11826  
 11827  // ERC20TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 11828  type ERC20TransactorRaw struct {
 11829  	Contract *ERC20Transactor // Generic write-only contract binding to access the raw methods on
 11830  }
 11831  
 11832  // NewERC20 creates a new instance of ERC20, bound to a specific deployed contract.
 11833  func NewERC20(address common.Address, backend bind.ContractBackend) (*ERC20, error) {
 11834  	contract, err := bindERC20(address, backend, backend, backend)
 11835  	if err != nil {
 11836  		return nil, err
 11837  	}
 11838  	return &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil
 11839  }
 11840  
 11841  // NewERC20Caller creates a new read-only instance of ERC20, bound to a specific deployed contract.
 11842  func NewERC20Caller(address common.Address, caller bind.ContractCaller) (*ERC20Caller, error) {
 11843  	contract, err := bindERC20(address, caller, nil, nil)
 11844  	if err != nil {
 11845  		return nil, err
 11846  	}
 11847  	return &ERC20Caller{contract: contract}, nil
 11848  }
 11849  
 11850  // NewERC20Transactor creates a new write-only instance of ERC20, bound to a specific deployed contract.
 11851  func NewERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC20Transactor, error) {
 11852  	contract, err := bindERC20(address, nil, transactor, nil)
 11853  	if err != nil {
 11854  		return nil, err
 11855  	}
 11856  	return &ERC20Transactor{contract: contract}, nil
 11857  }
 11858  
 11859  // NewERC20Filterer creates a new log filterer instance of ERC20, bound to a specific deployed contract.
 11860  func NewERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC20Filterer, error) {
 11861  	contract, err := bindERC20(address, nil, nil, filterer)
 11862  	if err != nil {
 11863  		return nil, err
 11864  	}
 11865  	return &ERC20Filterer{contract: contract}, nil
 11866  }
 11867  
 11868  // bindERC20 binds a generic wrapper to an already deployed contract.
 11869  func bindERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11870  	parsed, err := ERC20MetaData.GetAbi()
 11871  	if err != nil {
 11872  		return nil, err
 11873  	}
 11874  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 11875  }
 11876  
 11877  // Call invokes the (constant) contract method with params as input values and
 11878  // sets the output to result. The result type might be a single field for simple
 11879  // returns, a slice of interfaces for anonymous returns and a struct for named
 11880  // returns.
 11881  func (_ERC20 *ERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11882  	return _ERC20.Contract.ERC20Caller.contract.Call(opts, result, method, params...)
 11883  }
 11884  
 11885  // Transfer initiates a plain transaction to move funds to the contract, calling
 11886  // its default method if one is available.
 11887  func (_ERC20 *ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11888  	return _ERC20.Contract.ERC20Transactor.contract.Transfer(opts)
 11889  }
 11890  
 11891  // Transact invokes the (paid) contract method with params as input values.
 11892  func (_ERC20 *ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11893  	return _ERC20.Contract.ERC20Transactor.contract.Transact(opts, method, params...)
 11894  }
 11895  
 11896  // Call invokes the (constant) contract method with params as input values and
 11897  // sets the output to result. The result type might be a single field for simple
 11898  // returns, a slice of interfaces for anonymous returns and a struct for named
 11899  // returns.
 11900  func (_ERC20 *ERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11901  	return _ERC20.Contract.contract.Call(opts, result, method, params...)
 11902  }
 11903  
 11904  // Transfer initiates a plain transaction to move funds to the contract, calling
 11905  // its default method if one is available.
 11906  func (_ERC20 *ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11907  	return _ERC20.Contract.contract.Transfer(opts)
 11908  }
 11909  
 11910  // Transact invokes the (paid) contract method with params as input values.
 11911  func (_ERC20 *ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11912  	return _ERC20.Contract.contract.Transact(opts, method, params...)
 11913  }
 11914  
 11915  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11916  //
 11917  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 11918  func (_ERC20 *ERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 11919  	var out []interface{}
 11920  	err := _ERC20.contract.Call(opts, &out, "allowance", owner, spender)
 11921  
 11922  	if err != nil {
 11923  		return *new(*big.Int), err
 11924  	}
 11925  
 11926  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11927  
 11928  	return out0, err
 11929  
 11930  }
 11931  
 11932  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11933  //
 11934  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 11935  func (_ERC20 *ERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 11936  	return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender)
 11937  }
 11938  
 11939  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 11940  //
 11941  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 11942  func (_ERC20 *ERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 11943  	return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender)
 11944  }
 11945  
 11946  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11947  //
 11948  // Solidity: function balanceOf(address account) view returns(uint256)
 11949  func (_ERC20 *ERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 11950  	var out []interface{}
 11951  	err := _ERC20.contract.Call(opts, &out, "balanceOf", account)
 11952  
 11953  	if err != nil {
 11954  		return *new(*big.Int), err
 11955  	}
 11956  
 11957  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11958  
 11959  	return out0, err
 11960  
 11961  }
 11962  
 11963  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11964  //
 11965  // Solidity: function balanceOf(address account) view returns(uint256)
 11966  func (_ERC20 *ERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
 11967  	return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account)
 11968  }
 11969  
 11970  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11971  //
 11972  // Solidity: function balanceOf(address account) view returns(uint256)
 11973  func (_ERC20 *ERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 11974  	return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account)
 11975  }
 11976  
 11977  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 11978  //
 11979  // Solidity: function totalSupply() view returns(uint256)
 11980  func (_ERC20 *ERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 11981  	var out []interface{}
 11982  	err := _ERC20.contract.Call(opts, &out, "totalSupply")
 11983  
 11984  	if err != nil {
 11985  		return *new(*big.Int), err
 11986  	}
 11987  
 11988  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11989  
 11990  	return out0, err
 11991  
 11992  }
 11993  
 11994  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 11995  //
 11996  // Solidity: function totalSupply() view returns(uint256)
 11997  func (_ERC20 *ERC20Session) TotalSupply() (*big.Int, error) {
 11998  	return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts)
 11999  }
 12000  
 12001  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12002  //
 12003  // Solidity: function totalSupply() view returns(uint256)
 12004  func (_ERC20 *ERC20CallerSession) TotalSupply() (*big.Int, error) {
 12005  	return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts)
 12006  }
 12007  
 12008  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12009  //
 12010  // Solidity: function approve(address spender, uint256 value) returns(bool)
 12011  func (_ERC20 *ERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 12012  	return _ERC20.contract.Transact(opts, "approve", spender, value)
 12013  }
 12014  
 12015  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12016  //
 12017  // Solidity: function approve(address spender, uint256 value) returns(bool)
 12018  func (_ERC20 *ERC20Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 12019  	return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, value)
 12020  }
 12021  
 12022  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12023  //
 12024  // Solidity: function approve(address spender, uint256 value) returns(bool)
 12025  func (_ERC20 *ERC20TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 12026  	return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, value)
 12027  }
 12028  
 12029  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12030  //
 12031  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12032  func (_ERC20 *ERC20Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12033  	return _ERC20.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 12034  }
 12035  
 12036  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12037  //
 12038  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12039  func (_ERC20 *ERC20Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12040  	return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue)
 12041  }
 12042  
 12043  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12044  //
 12045  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12046  func (_ERC20 *ERC20TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12047  	return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue)
 12048  }
 12049  
 12050  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12051  //
 12052  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12053  func (_ERC20 *ERC20Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12054  	return _ERC20.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 12055  }
 12056  
 12057  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12058  //
 12059  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12060  func (_ERC20 *ERC20Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12061  	return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue)
 12062  }
 12063  
 12064  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12065  //
 12066  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12067  func (_ERC20 *ERC20TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12068  	return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue)
 12069  }
 12070  
 12071  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12072  //
 12073  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12074  func (_ERC20 *ERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12075  	return _ERC20.contract.Transact(opts, "transfer", recipient, amount)
 12076  }
 12077  
 12078  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12079  //
 12080  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12081  func (_ERC20 *ERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12082  	return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, recipient, amount)
 12083  }
 12084  
 12085  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12086  //
 12087  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12088  func (_ERC20 *ERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12089  	return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, recipient, amount)
 12090  }
 12091  
 12092  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12093  //
 12094  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12095  func (_ERC20 *ERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12096  	return _ERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 12097  }
 12098  
 12099  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12100  //
 12101  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12102  func (_ERC20 *ERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12103  	return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, sender, recipient, amount)
 12104  }
 12105  
 12106  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12107  //
 12108  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12109  func (_ERC20 *ERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12110  	return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, sender, recipient, amount)
 12111  }
 12112  
 12113  // ERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20 contract.
 12114  type ERC20ApprovalIterator struct {
 12115  	Event *ERC20Approval // Event containing the contract specifics and raw log
 12116  
 12117  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12118  	event    string              // Event name to use for unpacking event data
 12119  
 12120  	logs chan types.Log      // Log channel receiving the found contract events
 12121  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12122  	done bool                // Whether the subscription completed delivering logs
 12123  	fail error               // Occurred error to stop iteration
 12124  }
 12125  
 12126  // Next advances the iterator to the subsequent event, returning whether there
 12127  // are any more events found. In case of a retrieval or parsing error, false is
 12128  // returned and Error() can be queried for the exact failure.
 12129  func (it *ERC20ApprovalIterator) Next() bool {
 12130  	// If the iterator failed, stop iterating
 12131  	if it.fail != nil {
 12132  		return false
 12133  	}
 12134  	// If the iterator completed, deliver directly whatever's available
 12135  	if it.done {
 12136  		select {
 12137  		case log := <-it.logs:
 12138  			it.Event = new(ERC20Approval)
 12139  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12140  				it.fail = err
 12141  				return false
 12142  			}
 12143  			it.Event.Raw = log
 12144  			return true
 12145  
 12146  		default:
 12147  			return false
 12148  		}
 12149  	}
 12150  	// Iterator still in progress, wait for either a data or an error event
 12151  	select {
 12152  	case log := <-it.logs:
 12153  		it.Event = new(ERC20Approval)
 12154  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12155  			it.fail = err
 12156  			return false
 12157  		}
 12158  		it.Event.Raw = log
 12159  		return true
 12160  
 12161  	case err := <-it.sub.Err():
 12162  		it.done = true
 12163  		it.fail = err
 12164  		return it.Next()
 12165  	}
 12166  }
 12167  
 12168  // Error returns any retrieval or parsing error occurred during filtering.
 12169  func (it *ERC20ApprovalIterator) Error() error {
 12170  	return it.fail
 12171  }
 12172  
 12173  // Close terminates the iteration process, releasing any pending underlying
 12174  // resources.
 12175  func (it *ERC20ApprovalIterator) Close() error {
 12176  	it.sub.Unsubscribe()
 12177  	return nil
 12178  }
 12179  
 12180  // ERC20Approval represents a Approval event raised by the ERC20 contract.
 12181  type ERC20Approval struct {
 12182  	Owner   common.Address
 12183  	Spender common.Address
 12184  	Value   *big.Int
 12185  	Raw     types.Log // Blockchain specific contextual infos
 12186  }
 12187  
 12188  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12189  //
 12190  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12191  func (_ERC20 *ERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20ApprovalIterator, error) {
 12192  
 12193  	var ownerRule []interface{}
 12194  	for _, ownerItem := range owner {
 12195  		ownerRule = append(ownerRule, ownerItem)
 12196  	}
 12197  	var spenderRule []interface{}
 12198  	for _, spenderItem := range spender {
 12199  		spenderRule = append(spenderRule, spenderItem)
 12200  	}
 12201  
 12202  	logs, sub, err := _ERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 12203  	if err != nil {
 12204  		return nil, err
 12205  	}
 12206  	return &ERC20ApprovalIterator{contract: _ERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
 12207  }
 12208  
 12209  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12210  //
 12211  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12212  func (_ERC20 *ERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 12213  
 12214  	var ownerRule []interface{}
 12215  	for _, ownerItem := range owner {
 12216  		ownerRule = append(ownerRule, ownerItem)
 12217  	}
 12218  	var spenderRule []interface{}
 12219  	for _, spenderItem := range spender {
 12220  		spenderRule = append(spenderRule, spenderItem)
 12221  	}
 12222  
 12223  	logs, sub, err := _ERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 12224  	if err != nil {
 12225  		return nil, err
 12226  	}
 12227  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12228  		defer sub.Unsubscribe()
 12229  		for {
 12230  			select {
 12231  			case log := <-logs:
 12232  				// New log arrived, parse the event and forward to the user
 12233  				event := new(ERC20Approval)
 12234  				if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 12235  					return err
 12236  				}
 12237  				event.Raw = log
 12238  
 12239  				select {
 12240  				case sink <- event:
 12241  				case err := <-sub.Err():
 12242  					return err
 12243  				case <-quit:
 12244  					return nil
 12245  				}
 12246  			case err := <-sub.Err():
 12247  				return err
 12248  			case <-quit:
 12249  				return nil
 12250  			}
 12251  		}
 12252  	}), nil
 12253  }
 12254  
 12255  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12256  //
 12257  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12258  func (_ERC20 *ERC20Filterer) ParseApproval(log types.Log) (*ERC20Approval, error) {
 12259  	event := new(ERC20Approval)
 12260  	if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 12261  		return nil, err
 12262  	}
 12263  	return event, nil
 12264  }
 12265  
 12266  // ERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20 contract.
 12267  type ERC20TransferIterator struct {
 12268  	Event *ERC20Transfer // Event containing the contract specifics and raw log
 12269  
 12270  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12271  	event    string              // Event name to use for unpacking event data
 12272  
 12273  	logs chan types.Log      // Log channel receiving the found contract events
 12274  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12275  	done bool                // Whether the subscription completed delivering logs
 12276  	fail error               // Occurred error to stop iteration
 12277  }
 12278  
 12279  // Next advances the iterator to the subsequent event, returning whether there
 12280  // are any more events found. In case of a retrieval or parsing error, false is
 12281  // returned and Error() can be queried for the exact failure.
 12282  func (it *ERC20TransferIterator) Next() bool {
 12283  	// If the iterator failed, stop iterating
 12284  	if it.fail != nil {
 12285  		return false
 12286  	}
 12287  	// If the iterator completed, deliver directly whatever's available
 12288  	if it.done {
 12289  		select {
 12290  		case log := <-it.logs:
 12291  			it.Event = new(ERC20Transfer)
 12292  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12293  				it.fail = err
 12294  				return false
 12295  			}
 12296  			it.Event.Raw = log
 12297  			return true
 12298  
 12299  		default:
 12300  			return false
 12301  		}
 12302  	}
 12303  	// Iterator still in progress, wait for either a data or an error event
 12304  	select {
 12305  	case log := <-it.logs:
 12306  		it.Event = new(ERC20Transfer)
 12307  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12308  			it.fail = err
 12309  			return false
 12310  		}
 12311  		it.Event.Raw = log
 12312  		return true
 12313  
 12314  	case err := <-it.sub.Err():
 12315  		it.done = true
 12316  		it.fail = err
 12317  		return it.Next()
 12318  	}
 12319  }
 12320  
 12321  // Error returns any retrieval or parsing error occurred during filtering.
 12322  func (it *ERC20TransferIterator) Error() error {
 12323  	return it.fail
 12324  }
 12325  
 12326  // Close terminates the iteration process, releasing any pending underlying
 12327  // resources.
 12328  func (it *ERC20TransferIterator) Close() error {
 12329  	it.sub.Unsubscribe()
 12330  	return nil
 12331  }
 12332  
 12333  // ERC20Transfer represents a Transfer event raised by the ERC20 contract.
 12334  type ERC20Transfer struct {
 12335  	From  common.Address
 12336  	To    common.Address
 12337  	Value *big.Int
 12338  	Raw   types.Log // Blockchain specific contextual infos
 12339  }
 12340  
 12341  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 12342  //
 12343  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 12344  func (_ERC20 *ERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20TransferIterator, error) {
 12345  
 12346  	var fromRule []interface{}
 12347  	for _, fromItem := range from {
 12348  		fromRule = append(fromRule, fromItem)
 12349  	}
 12350  	var toRule []interface{}
 12351  	for _, toItem := range to {
 12352  		toRule = append(toRule, toItem)
 12353  	}
 12354  
 12355  	logs, sub, err := _ERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 12356  	if err != nil {
 12357  		return nil, err
 12358  	}
 12359  	return &ERC20TransferIterator{contract: _ERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
 12360  }
 12361  
 12362  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 12363  //
 12364  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 12365  func (_ERC20 *ERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 12366  
 12367  	var fromRule []interface{}
 12368  	for _, fromItem := range from {
 12369  		fromRule = append(fromRule, fromItem)
 12370  	}
 12371  	var toRule []interface{}
 12372  	for _, toItem := range to {
 12373  		toRule = append(toRule, toItem)
 12374  	}
 12375  
 12376  	logs, sub, err := _ERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 12377  	if err != nil {
 12378  		return nil, err
 12379  	}
 12380  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12381  		defer sub.Unsubscribe()
 12382  		for {
 12383  			select {
 12384  			case log := <-logs:
 12385  				// New log arrived, parse the event and forward to the user
 12386  				event := new(ERC20Transfer)
 12387  				if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 12388  					return err
 12389  				}
 12390  				event.Raw = log
 12391  
 12392  				select {
 12393  				case sink <- event:
 12394  				case err := <-sub.Err():
 12395  					return err
 12396  				case <-quit:
 12397  					return nil
 12398  				}
 12399  			case err := <-sub.Err():
 12400  				return err
 12401  			case <-quit:
 12402  				return nil
 12403  			}
 12404  		}
 12405  	}), nil
 12406  }
 12407  
 12408  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 12409  //
 12410  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 12411  func (_ERC20 *ERC20Filterer) ParseTransfer(log types.Log) (*ERC20Transfer, error) {
 12412  	event := new(ERC20Transfer)
 12413  	if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 12414  		return nil, err
 12415  	}
 12416  	return event, nil
 12417  }
 12418  
 12419  // ERC20BurnableMetaData contains all meta data concerning the ERC20Burnable contract.
 12420  var ERC20BurnableMetaData = &bind.MetaData{
 12421  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 12422  	Sigs: map[string]string{
 12423  		"dd62ed3e": "allowance(address,address)",
 12424  		"095ea7b3": "approve(address,uint256)",
 12425  		"70a08231": "balanceOf(address)",
 12426  		"42966c68": "burn(uint256)",
 12427  		"79cc6790": "burnFrom(address,uint256)",
 12428  		"a457c2d7": "decreaseAllowance(address,uint256)",
 12429  		"39509351": "increaseAllowance(address,uint256)",
 12430  		"18160ddd": "totalSupply()",
 12431  		"a9059cbb": "transfer(address,uint256)",
 12432  		"23b872dd": "transferFrom(address,address,uint256)",
 12433  	},
 12434  	Bin: "0x608060405234801561001057600080fd5b506108a9806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461017e57806379cc6790146101a4578063a457c2d7146101d0578063a9059cbb146101fc578063dd62ed3e146102285761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806342966c681461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610256565b604080519115158252519081900360200190f35b6100eb61026c565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610272565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102c9565b61017c6004803603602081101561017557600080fd5b5035610305565b005b6100eb6004803603602081101561019457600080fd5b50356001600160a01b0316610312565b61017c600480360360408110156101ba57600080fd5b506001600160a01b03813516906020013561032d565b6100cf600480360360408110156101e657600080fd5b506001600160a01b03813516906020013561033b565b6100cf6004803603604081101561021257600080fd5b506001600160a01b038135169060200135610377565b6100eb6004803603604081101561023e57600080fd5b506001600160a01b0381358116916020013516610384565b60006102633384846103af565b50600192915050565b60025490565b600061027f8484846104a1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102bf9186916102ba908663ffffffff6105e916565b6103af565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff61064916565b61030f33826106ad565b50565b6001600160a01b031660009081526020819052604090205490565b6103378282610789565b5050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff6105e916565b60006102633384846104a1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103f757604051600160e51b62461bcd02815260040180806020018281038252602481526020018061085a6024913960400191505060405180910390fd5b6001600160a01b03821661043f57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806107f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104e957604051600160e51b62461bcd0281526004018080602001828103825260258152602001806108356025913960400191505060405180910390fd5b6001600160a01b03821661053157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806107cf6023913960400191505060405180910390fd5b6001600160a01b03831660009081526020819052604090205461055a908263ffffffff6105e916565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461058f908263ffffffff61064916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156106435760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156106a65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166106f557604051600160e51b62461bcd0281526004018080602001828103825260218152602001806108146021913960400191505060405180910390fd5b600254610708908263ffffffff6105e916565b6002556001600160a01b038216600090815260208190526040902054610734908263ffffffff6105e916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61079382826106ad565b6001600160a01b0382166000908152600160209081526040808320338085529252909120546103379184916102ba908563ffffffff6105e91656fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058204231ee98d3acc370c23b7a9c583a427b98017fb9b0fbf87a2a607bdd213332b30029",
 12435  }
 12436  
 12437  // ERC20BurnableABI is the input ABI used to generate the binding from.
 12438  // Deprecated: Use ERC20BurnableMetaData.ABI instead.
 12439  var ERC20BurnableABI = ERC20BurnableMetaData.ABI
 12440  
 12441  // ERC20BurnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 12442  const ERC20BurnableBinRuntime = `608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461017e57806379cc6790146101a4578063a457c2d7146101d0578063a9059cbb146101fc578063dd62ed3e146102285761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806342966c681461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610256565b604080519115158252519081900360200190f35b6100eb61026c565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610272565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102c9565b61017c6004803603602081101561017557600080fd5b5035610305565b005b6100eb6004803603602081101561019457600080fd5b50356001600160a01b0316610312565b61017c600480360360408110156101ba57600080fd5b506001600160a01b03813516906020013561032d565b6100cf600480360360408110156101e657600080fd5b506001600160a01b03813516906020013561033b565b6100cf6004803603604081101561021257600080fd5b506001600160a01b038135169060200135610377565b6100eb6004803603604081101561023e57600080fd5b506001600160a01b0381358116916020013516610384565b60006102633384846103af565b50600192915050565b60025490565b600061027f8484846104a1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102bf9186916102ba908663ffffffff6105e916565b6103af565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff61064916565b61030f33826106ad565b50565b6001600160a01b031660009081526020819052604090205490565b6103378282610789565b5050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff6105e916565b60006102633384846104a1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103f757604051600160e51b62461bcd02815260040180806020018281038252602481526020018061085a6024913960400191505060405180910390fd5b6001600160a01b03821661043f57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806107f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104e957604051600160e51b62461bcd0281526004018080602001828103825260258152602001806108356025913960400191505060405180910390fd5b6001600160a01b03821661053157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806107cf6023913960400191505060405180910390fd5b6001600160a01b03831660009081526020819052604090205461055a908263ffffffff6105e916565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461058f908263ffffffff61064916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156106435760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156106a65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166106f557604051600160e51b62461bcd0281526004018080602001828103825260218152602001806108146021913960400191505060405180910390fd5b600254610708908263ffffffff6105e916565b6002556001600160a01b038216600090815260208190526040902054610734908263ffffffff6105e916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61079382826106ad565b6001600160a01b0382166000908152600160209081526040808320338085529252909120546103379184916102ba908563ffffffff6105e91656fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058204231ee98d3acc370c23b7a9c583a427b98017fb9b0fbf87a2a607bdd213332b30029`
 12443  
 12444  // ERC20BurnableFuncSigs maps the 4-byte function signature to its string representation.
 12445  // Deprecated: Use ERC20BurnableMetaData.Sigs instead.
 12446  var ERC20BurnableFuncSigs = ERC20BurnableMetaData.Sigs
 12447  
 12448  // ERC20BurnableBin is the compiled bytecode used for deploying new contracts.
 12449  // Deprecated: Use ERC20BurnableMetaData.Bin instead.
 12450  var ERC20BurnableBin = ERC20BurnableMetaData.Bin
 12451  
 12452  // DeployERC20Burnable deploys a new Klaytn contract, binding an instance of ERC20Burnable to it.
 12453  func DeployERC20Burnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20Burnable, error) {
 12454  	parsed, err := ERC20BurnableMetaData.GetAbi()
 12455  	if err != nil {
 12456  		return common.Address{}, nil, nil, err
 12457  	}
 12458  	if parsed == nil {
 12459  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 12460  	}
 12461  
 12462  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20BurnableBin), backend)
 12463  	if err != nil {
 12464  		return common.Address{}, nil, nil, err
 12465  	}
 12466  	return address, tx, &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil
 12467  }
 12468  
 12469  // ERC20Burnable is an auto generated Go binding around a Klaytn contract.
 12470  type ERC20Burnable struct {
 12471  	ERC20BurnableCaller     // Read-only binding to the contract
 12472  	ERC20BurnableTransactor // Write-only binding to the contract
 12473  	ERC20BurnableFilterer   // Log filterer for contract events
 12474  }
 12475  
 12476  // ERC20BurnableCaller is an auto generated read-only Go binding around a Klaytn contract.
 12477  type ERC20BurnableCaller struct {
 12478  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12479  }
 12480  
 12481  // ERC20BurnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 12482  type ERC20BurnableTransactor struct {
 12483  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12484  }
 12485  
 12486  // ERC20BurnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 12487  type ERC20BurnableFilterer struct {
 12488  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12489  }
 12490  
 12491  // ERC20BurnableSession is an auto generated Go binding around a Klaytn contract,
 12492  // with pre-set call and transact options.
 12493  type ERC20BurnableSession struct {
 12494  	Contract     *ERC20Burnable    // Generic contract binding to set the session for
 12495  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 12496  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 12497  }
 12498  
 12499  // ERC20BurnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 12500  // with pre-set call options.
 12501  type ERC20BurnableCallerSession struct {
 12502  	Contract *ERC20BurnableCaller // Generic contract caller binding to set the session for
 12503  	CallOpts bind.CallOpts        // Call options to use throughout this session
 12504  }
 12505  
 12506  // ERC20BurnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 12507  // with pre-set transact options.
 12508  type ERC20BurnableTransactorSession struct {
 12509  	Contract     *ERC20BurnableTransactor // Generic contract transactor binding to set the session for
 12510  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 12511  }
 12512  
 12513  // ERC20BurnableRaw is an auto generated low-level Go binding around a Klaytn contract.
 12514  type ERC20BurnableRaw struct {
 12515  	Contract *ERC20Burnable // Generic contract binding to access the raw methods on
 12516  }
 12517  
 12518  // ERC20BurnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 12519  type ERC20BurnableCallerRaw struct {
 12520  	Contract *ERC20BurnableCaller // Generic read-only contract binding to access the raw methods on
 12521  }
 12522  
 12523  // ERC20BurnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 12524  type ERC20BurnableTransactorRaw struct {
 12525  	Contract *ERC20BurnableTransactor // Generic write-only contract binding to access the raw methods on
 12526  }
 12527  
 12528  // NewERC20Burnable creates a new instance of ERC20Burnable, bound to a specific deployed contract.
 12529  func NewERC20Burnable(address common.Address, backend bind.ContractBackend) (*ERC20Burnable, error) {
 12530  	contract, err := bindERC20Burnable(address, backend, backend, backend)
 12531  	if err != nil {
 12532  		return nil, err
 12533  	}
 12534  	return &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil
 12535  }
 12536  
 12537  // NewERC20BurnableCaller creates a new read-only instance of ERC20Burnable, bound to a specific deployed contract.
 12538  func NewERC20BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC20BurnableCaller, error) {
 12539  	contract, err := bindERC20Burnable(address, caller, nil, nil)
 12540  	if err != nil {
 12541  		return nil, err
 12542  	}
 12543  	return &ERC20BurnableCaller{contract: contract}, nil
 12544  }
 12545  
 12546  // NewERC20BurnableTransactor creates a new write-only instance of ERC20Burnable, bound to a specific deployed contract.
 12547  func NewERC20BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20BurnableTransactor, error) {
 12548  	contract, err := bindERC20Burnable(address, nil, transactor, nil)
 12549  	if err != nil {
 12550  		return nil, err
 12551  	}
 12552  	return &ERC20BurnableTransactor{contract: contract}, nil
 12553  }
 12554  
 12555  // NewERC20BurnableFilterer creates a new log filterer instance of ERC20Burnable, bound to a specific deployed contract.
 12556  func NewERC20BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20BurnableFilterer, error) {
 12557  	contract, err := bindERC20Burnable(address, nil, nil, filterer)
 12558  	if err != nil {
 12559  		return nil, err
 12560  	}
 12561  	return &ERC20BurnableFilterer{contract: contract}, nil
 12562  }
 12563  
 12564  // bindERC20Burnable binds a generic wrapper to an already deployed contract.
 12565  func bindERC20Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 12566  	parsed, err := ERC20BurnableMetaData.GetAbi()
 12567  	if err != nil {
 12568  		return nil, err
 12569  	}
 12570  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 12571  }
 12572  
 12573  // Call invokes the (constant) contract method with params as input values and
 12574  // sets the output to result. The result type might be a single field for simple
 12575  // returns, a slice of interfaces for anonymous returns and a struct for named
 12576  // returns.
 12577  func (_ERC20Burnable *ERC20BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12578  	return _ERC20Burnable.Contract.ERC20BurnableCaller.contract.Call(opts, result, method, params...)
 12579  }
 12580  
 12581  // Transfer initiates a plain transaction to move funds to the contract, calling
 12582  // its default method if one is available.
 12583  func (_ERC20Burnable *ERC20BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12584  	return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transfer(opts)
 12585  }
 12586  
 12587  // Transact invokes the (paid) contract method with params as input values.
 12588  func (_ERC20Burnable *ERC20BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12589  	return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transact(opts, method, params...)
 12590  }
 12591  
 12592  // Call invokes the (constant) contract method with params as input values and
 12593  // sets the output to result. The result type might be a single field for simple
 12594  // returns, a slice of interfaces for anonymous returns and a struct for named
 12595  // returns.
 12596  func (_ERC20Burnable *ERC20BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12597  	return _ERC20Burnable.Contract.contract.Call(opts, result, method, params...)
 12598  }
 12599  
 12600  // Transfer initiates a plain transaction to move funds to the contract, calling
 12601  // its default method if one is available.
 12602  func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12603  	return _ERC20Burnable.Contract.contract.Transfer(opts)
 12604  }
 12605  
 12606  // Transact invokes the (paid) contract method with params as input values.
 12607  func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12608  	return _ERC20Burnable.Contract.contract.Transact(opts, method, params...)
 12609  }
 12610  
 12611  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 12612  //
 12613  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 12614  func (_ERC20Burnable *ERC20BurnableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 12615  	var out []interface{}
 12616  	err := _ERC20Burnable.contract.Call(opts, &out, "allowance", owner, spender)
 12617  
 12618  	if err != nil {
 12619  		return *new(*big.Int), err
 12620  	}
 12621  
 12622  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12623  
 12624  	return out0, err
 12625  
 12626  }
 12627  
 12628  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 12629  //
 12630  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 12631  func (_ERC20Burnable *ERC20BurnableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 12632  	return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender)
 12633  }
 12634  
 12635  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 12636  //
 12637  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 12638  func (_ERC20Burnable *ERC20BurnableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 12639  	return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender)
 12640  }
 12641  
 12642  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12643  //
 12644  // Solidity: function balanceOf(address account) view returns(uint256)
 12645  func (_ERC20Burnable *ERC20BurnableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 12646  	var out []interface{}
 12647  	err := _ERC20Burnable.contract.Call(opts, &out, "balanceOf", account)
 12648  
 12649  	if err != nil {
 12650  		return *new(*big.Int), err
 12651  	}
 12652  
 12653  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12654  
 12655  	return out0, err
 12656  
 12657  }
 12658  
 12659  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12660  //
 12661  // Solidity: function balanceOf(address account) view returns(uint256)
 12662  func (_ERC20Burnable *ERC20BurnableSession) BalanceOf(account common.Address) (*big.Int, error) {
 12663  	return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account)
 12664  }
 12665  
 12666  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 12667  //
 12668  // Solidity: function balanceOf(address account) view returns(uint256)
 12669  func (_ERC20Burnable *ERC20BurnableCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 12670  	return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account)
 12671  }
 12672  
 12673  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12674  //
 12675  // Solidity: function totalSupply() view returns(uint256)
 12676  func (_ERC20Burnable *ERC20BurnableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 12677  	var out []interface{}
 12678  	err := _ERC20Burnable.contract.Call(opts, &out, "totalSupply")
 12679  
 12680  	if err != nil {
 12681  		return *new(*big.Int), err
 12682  	}
 12683  
 12684  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12685  
 12686  	return out0, err
 12687  
 12688  }
 12689  
 12690  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12691  //
 12692  // Solidity: function totalSupply() view returns(uint256)
 12693  func (_ERC20Burnable *ERC20BurnableSession) TotalSupply() (*big.Int, error) {
 12694  	return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts)
 12695  }
 12696  
 12697  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12698  //
 12699  // Solidity: function totalSupply() view returns(uint256)
 12700  func (_ERC20Burnable *ERC20BurnableCallerSession) TotalSupply() (*big.Int, error) {
 12701  	return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts)
 12702  }
 12703  
 12704  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12705  //
 12706  // Solidity: function approve(address spender, uint256 value) returns(bool)
 12707  func (_ERC20Burnable *ERC20BurnableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 12708  	return _ERC20Burnable.contract.Transact(opts, "approve", spender, value)
 12709  }
 12710  
 12711  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12712  //
 12713  // Solidity: function approve(address spender, uint256 value) returns(bool)
 12714  func (_ERC20Burnable *ERC20BurnableSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 12715  	return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, value)
 12716  }
 12717  
 12718  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12719  //
 12720  // Solidity: function approve(address spender, uint256 value) returns(bool)
 12721  func (_ERC20Burnable *ERC20BurnableTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 12722  	return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, value)
 12723  }
 12724  
 12725  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 12726  //
 12727  // Solidity: function burn(uint256 amount) returns()
 12728  func (_ERC20Burnable *ERC20BurnableTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
 12729  	return _ERC20Burnable.contract.Transact(opts, "burn", amount)
 12730  }
 12731  
 12732  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 12733  //
 12734  // Solidity: function burn(uint256 amount) returns()
 12735  func (_ERC20Burnable *ERC20BurnableSession) Burn(amount *big.Int) (*types.Transaction, error) {
 12736  	return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, amount)
 12737  }
 12738  
 12739  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 12740  //
 12741  // Solidity: function burn(uint256 amount) returns()
 12742  func (_ERC20Burnable *ERC20BurnableTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) {
 12743  	return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, amount)
 12744  }
 12745  
 12746  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 12747  //
 12748  // Solidity: function burnFrom(address account, uint256 amount) returns()
 12749  func (_ERC20Burnable *ERC20BurnableTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 12750  	return _ERC20Burnable.contract.Transact(opts, "burnFrom", account, amount)
 12751  }
 12752  
 12753  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 12754  //
 12755  // Solidity: function burnFrom(address account, uint256 amount) returns()
 12756  func (_ERC20Burnable *ERC20BurnableSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 12757  	return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, amount)
 12758  }
 12759  
 12760  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 12761  //
 12762  // Solidity: function burnFrom(address account, uint256 amount) returns()
 12763  func (_ERC20Burnable *ERC20BurnableTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 12764  	return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, amount)
 12765  }
 12766  
 12767  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12768  //
 12769  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12770  func (_ERC20Burnable *ERC20BurnableTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12771  	return _ERC20Burnable.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 12772  }
 12773  
 12774  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12775  //
 12776  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12777  func (_ERC20Burnable *ERC20BurnableSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12778  	return _ERC20Burnable.Contract.DecreaseAllowance(&_ERC20Burnable.TransactOpts, spender, subtractedValue)
 12779  }
 12780  
 12781  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 12782  //
 12783  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 12784  func (_ERC20Burnable *ERC20BurnableTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 12785  	return _ERC20Burnable.Contract.DecreaseAllowance(&_ERC20Burnable.TransactOpts, spender, subtractedValue)
 12786  }
 12787  
 12788  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12789  //
 12790  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12791  func (_ERC20Burnable *ERC20BurnableTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12792  	return _ERC20Burnable.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 12793  }
 12794  
 12795  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12796  //
 12797  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12798  func (_ERC20Burnable *ERC20BurnableSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12799  	return _ERC20Burnable.Contract.IncreaseAllowance(&_ERC20Burnable.TransactOpts, spender, addedValue)
 12800  }
 12801  
 12802  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 12803  //
 12804  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 12805  func (_ERC20Burnable *ERC20BurnableTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 12806  	return _ERC20Burnable.Contract.IncreaseAllowance(&_ERC20Burnable.TransactOpts, spender, addedValue)
 12807  }
 12808  
 12809  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12810  //
 12811  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12812  func (_ERC20Burnable *ERC20BurnableTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12813  	return _ERC20Burnable.contract.Transact(opts, "transfer", recipient, amount)
 12814  }
 12815  
 12816  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12817  //
 12818  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12819  func (_ERC20Burnable *ERC20BurnableSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12820  	return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, recipient, amount)
 12821  }
 12822  
 12823  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12824  //
 12825  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 12826  func (_ERC20Burnable *ERC20BurnableTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12827  	return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, recipient, amount)
 12828  }
 12829  
 12830  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12831  //
 12832  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12833  func (_ERC20Burnable *ERC20BurnableTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12834  	return _ERC20Burnable.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 12835  }
 12836  
 12837  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12838  //
 12839  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12840  func (_ERC20Burnable *ERC20BurnableSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12841  	return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, sender, recipient, amount)
 12842  }
 12843  
 12844  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12845  //
 12846  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 12847  func (_ERC20Burnable *ERC20BurnableTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 12848  	return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, sender, recipient, amount)
 12849  }
 12850  
 12851  // ERC20BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Burnable contract.
 12852  type ERC20BurnableApprovalIterator struct {
 12853  	Event *ERC20BurnableApproval // Event containing the contract specifics and raw log
 12854  
 12855  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12856  	event    string              // Event name to use for unpacking event data
 12857  
 12858  	logs chan types.Log      // Log channel receiving the found contract events
 12859  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12860  	done bool                // Whether the subscription completed delivering logs
 12861  	fail error               // Occurred error to stop iteration
 12862  }
 12863  
 12864  // Next advances the iterator to the subsequent event, returning whether there
 12865  // are any more events found. In case of a retrieval or parsing error, false is
 12866  // returned and Error() can be queried for the exact failure.
 12867  func (it *ERC20BurnableApprovalIterator) Next() bool {
 12868  	// If the iterator failed, stop iterating
 12869  	if it.fail != nil {
 12870  		return false
 12871  	}
 12872  	// If the iterator completed, deliver directly whatever's available
 12873  	if it.done {
 12874  		select {
 12875  		case log := <-it.logs:
 12876  			it.Event = new(ERC20BurnableApproval)
 12877  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12878  				it.fail = err
 12879  				return false
 12880  			}
 12881  			it.Event.Raw = log
 12882  			return true
 12883  
 12884  		default:
 12885  			return false
 12886  		}
 12887  	}
 12888  	// Iterator still in progress, wait for either a data or an error event
 12889  	select {
 12890  	case log := <-it.logs:
 12891  		it.Event = new(ERC20BurnableApproval)
 12892  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12893  			it.fail = err
 12894  			return false
 12895  		}
 12896  		it.Event.Raw = log
 12897  		return true
 12898  
 12899  	case err := <-it.sub.Err():
 12900  		it.done = true
 12901  		it.fail = err
 12902  		return it.Next()
 12903  	}
 12904  }
 12905  
 12906  // Error returns any retrieval or parsing error occurred during filtering.
 12907  func (it *ERC20BurnableApprovalIterator) Error() error {
 12908  	return it.fail
 12909  }
 12910  
 12911  // Close terminates the iteration process, releasing any pending underlying
 12912  // resources.
 12913  func (it *ERC20BurnableApprovalIterator) Close() error {
 12914  	it.sub.Unsubscribe()
 12915  	return nil
 12916  }
 12917  
 12918  // ERC20BurnableApproval represents a Approval event raised by the ERC20Burnable contract.
 12919  type ERC20BurnableApproval struct {
 12920  	Owner   common.Address
 12921  	Spender common.Address
 12922  	Value   *big.Int
 12923  	Raw     types.Log // Blockchain specific contextual infos
 12924  }
 12925  
 12926  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12927  //
 12928  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12929  func (_ERC20Burnable *ERC20BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20BurnableApprovalIterator, error) {
 12930  
 12931  	var ownerRule []interface{}
 12932  	for _, ownerItem := range owner {
 12933  		ownerRule = append(ownerRule, ownerItem)
 12934  	}
 12935  	var spenderRule []interface{}
 12936  	for _, spenderItem := range spender {
 12937  		spenderRule = append(spenderRule, spenderItem)
 12938  	}
 12939  
 12940  	logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 12941  	if err != nil {
 12942  		return nil, err
 12943  	}
 12944  	return &ERC20BurnableApprovalIterator{contract: _ERC20Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil
 12945  }
 12946  
 12947  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12948  //
 12949  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12950  func (_ERC20Burnable *ERC20BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20BurnableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 12951  
 12952  	var ownerRule []interface{}
 12953  	for _, ownerItem := range owner {
 12954  		ownerRule = append(ownerRule, ownerItem)
 12955  	}
 12956  	var spenderRule []interface{}
 12957  	for _, spenderItem := range spender {
 12958  		spenderRule = append(spenderRule, spenderItem)
 12959  	}
 12960  
 12961  	logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 12962  	if err != nil {
 12963  		return nil, err
 12964  	}
 12965  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12966  		defer sub.Unsubscribe()
 12967  		for {
 12968  			select {
 12969  			case log := <-logs:
 12970  				// New log arrived, parse the event and forward to the user
 12971  				event := new(ERC20BurnableApproval)
 12972  				if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 12973  					return err
 12974  				}
 12975  				event.Raw = log
 12976  
 12977  				select {
 12978  				case sink <- event:
 12979  				case err := <-sub.Err():
 12980  					return err
 12981  				case <-quit:
 12982  					return nil
 12983  				}
 12984  			case err := <-sub.Err():
 12985  				return err
 12986  			case <-quit:
 12987  				return nil
 12988  			}
 12989  		}
 12990  	}), nil
 12991  }
 12992  
 12993  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 12994  //
 12995  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 12996  func (_ERC20Burnable *ERC20BurnableFilterer) ParseApproval(log types.Log) (*ERC20BurnableApproval, error) {
 12997  	event := new(ERC20BurnableApproval)
 12998  	if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 12999  		return nil, err
 13000  	}
 13001  	return event, nil
 13002  }
 13003  
 13004  // ERC20BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Burnable contract.
 13005  type ERC20BurnableTransferIterator struct {
 13006  	Event *ERC20BurnableTransfer // Event containing the contract specifics and raw log
 13007  
 13008  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13009  	event    string              // Event name to use for unpacking event data
 13010  
 13011  	logs chan types.Log      // Log channel receiving the found contract events
 13012  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13013  	done bool                // Whether the subscription completed delivering logs
 13014  	fail error               // Occurred error to stop iteration
 13015  }
 13016  
 13017  // Next advances the iterator to the subsequent event, returning whether there
 13018  // are any more events found. In case of a retrieval or parsing error, false is
 13019  // returned and Error() can be queried for the exact failure.
 13020  func (it *ERC20BurnableTransferIterator) Next() bool {
 13021  	// If the iterator failed, stop iterating
 13022  	if it.fail != nil {
 13023  		return false
 13024  	}
 13025  	// If the iterator completed, deliver directly whatever's available
 13026  	if it.done {
 13027  		select {
 13028  		case log := <-it.logs:
 13029  			it.Event = new(ERC20BurnableTransfer)
 13030  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13031  				it.fail = err
 13032  				return false
 13033  			}
 13034  			it.Event.Raw = log
 13035  			return true
 13036  
 13037  		default:
 13038  			return false
 13039  		}
 13040  	}
 13041  	// Iterator still in progress, wait for either a data or an error event
 13042  	select {
 13043  	case log := <-it.logs:
 13044  		it.Event = new(ERC20BurnableTransfer)
 13045  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13046  			it.fail = err
 13047  			return false
 13048  		}
 13049  		it.Event.Raw = log
 13050  		return true
 13051  
 13052  	case err := <-it.sub.Err():
 13053  		it.done = true
 13054  		it.fail = err
 13055  		return it.Next()
 13056  	}
 13057  }
 13058  
 13059  // Error returns any retrieval or parsing error occurred during filtering.
 13060  func (it *ERC20BurnableTransferIterator) Error() error {
 13061  	return it.fail
 13062  }
 13063  
 13064  // Close terminates the iteration process, releasing any pending underlying
 13065  // resources.
 13066  func (it *ERC20BurnableTransferIterator) Close() error {
 13067  	it.sub.Unsubscribe()
 13068  	return nil
 13069  }
 13070  
 13071  // ERC20BurnableTransfer represents a Transfer event raised by the ERC20Burnable contract.
 13072  type ERC20BurnableTransfer struct {
 13073  	From  common.Address
 13074  	To    common.Address
 13075  	Value *big.Int
 13076  	Raw   types.Log // Blockchain specific contextual infos
 13077  }
 13078  
 13079  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13080  //
 13081  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 13082  func (_ERC20Burnable *ERC20BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20BurnableTransferIterator, error) {
 13083  
 13084  	var fromRule []interface{}
 13085  	for _, fromItem := range from {
 13086  		fromRule = append(fromRule, fromItem)
 13087  	}
 13088  	var toRule []interface{}
 13089  	for _, toItem := range to {
 13090  		toRule = append(toRule, toItem)
 13091  	}
 13092  
 13093  	logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 13094  	if err != nil {
 13095  		return nil, err
 13096  	}
 13097  	return &ERC20BurnableTransferIterator{contract: _ERC20Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 13098  }
 13099  
 13100  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13101  //
 13102  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 13103  func (_ERC20Burnable *ERC20BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20BurnableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 13104  
 13105  	var fromRule []interface{}
 13106  	for _, fromItem := range from {
 13107  		fromRule = append(fromRule, fromItem)
 13108  	}
 13109  	var toRule []interface{}
 13110  	for _, toItem := range to {
 13111  		toRule = append(toRule, toItem)
 13112  	}
 13113  
 13114  	logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 13115  	if err != nil {
 13116  		return nil, err
 13117  	}
 13118  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13119  		defer sub.Unsubscribe()
 13120  		for {
 13121  			select {
 13122  			case log := <-logs:
 13123  				// New log arrived, parse the event and forward to the user
 13124  				event := new(ERC20BurnableTransfer)
 13125  				if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 13126  					return err
 13127  				}
 13128  				event.Raw = log
 13129  
 13130  				select {
 13131  				case sink <- event:
 13132  				case err := <-sub.Err():
 13133  					return err
 13134  				case <-quit:
 13135  					return nil
 13136  				}
 13137  			case err := <-sub.Err():
 13138  				return err
 13139  			case <-quit:
 13140  				return nil
 13141  			}
 13142  		}
 13143  	}), nil
 13144  }
 13145  
 13146  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13147  //
 13148  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 13149  func (_ERC20Burnable *ERC20BurnableFilterer) ParseTransfer(log types.Log) (*ERC20BurnableTransfer, error) {
 13150  	event := new(ERC20BurnableTransfer)
 13151  	if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 13152  		return nil, err
 13153  	}
 13154  	return event, nil
 13155  }
 13156  
 13157  // ERC20MintableMetaData contains all meta data concerning the ERC20Mintable contract.
 13158  var ERC20MintableMetaData = &bind.MetaData{
 13159  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 13160  	Sigs: map[string]string{
 13161  		"983b2d56": "addMinter(address)",
 13162  		"dd62ed3e": "allowance(address,address)",
 13163  		"095ea7b3": "approve(address,uint256)",
 13164  		"70a08231": "balanceOf(address)",
 13165  		"a457c2d7": "decreaseAllowance(address,uint256)",
 13166  		"39509351": "increaseAllowance(address,uint256)",
 13167  		"aa271e1a": "isMinter(address)",
 13168  		"40c10f19": "mint(address,uint256)",
 13169  		"98650275": "renounceMinter()",
 13170  		"18160ddd": "totalSupply()",
 13171  		"a9059cbb": "transfer(address,uint256)",
 13172  		"23b872dd": "transferFrom(address,address,uint256)",
 13173  	},
 13174  	Bin: "0x60806040526100133361001860201b60201c565b610189565b61003081600361006760201b6109961790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610077828261010860201b60201c565b156100e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216610169576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d496022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610bb1806101986000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146101c757806398650275146101ef578063a457c2d7146101f7578063a9059cbb14610223578063aa271e1a1461024f578063dd62ed3e14610275576100b4565b8063095ea7b3146100b957806318160ddd146100f957806323b872dd14610113578063395093511461014957806340c10f191461017557806370a08231146101a1575b600080fd5b6100e5600480360360408110156100cf57600080fd5b506001600160a01b0381351690602001356102a3565b604080519115158252519081900360200190f35b6101016102b9565b60408051918252519081900360200190f35b6100e56004803603606081101561012957600080fd5b506001600160a01b038135811691602081013590911690604001356102bf565b6100e56004803603604081101561015f57600080fd5b506001600160a01b038135169060200135610316565b6100e56004803603604081101561018b57600080fd5b506001600160a01b038135169060200135610352565b610101600480360360208110156101b757600080fd5b50356001600160a01b03166103a5565b6101ed600480360360208110156101dd57600080fd5b50356001600160a01b03166103c0565b005b6101ed610413565b6100e56004803603604081101561020d57600080fd5b506001600160a01b03813516906020013561041e565b6100e56004803603604081101561023957600080fd5b506001600160a01b03813516906020013561045a565b6100e56004803603602081101561026557600080fd5b50356001600160a01b0316610467565b6101016004803603604081101561028b57600080fd5b506001600160a01b0381358116916020013516610480565b60006102b03384846104ab565b50600192915050565b60025490565b60006102cc84848461059d565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461030c918691610307908663ffffffff6106e516565b6104ab565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff61074516565b600061035d33610467565b61039b57604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6102b083836107a9565b6001600160a01b031660009081526020819052604090205490565b6103c933610467565b61040757604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6104108161089c565b50565b61041c336108e4565b565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff6106e516565b60006102b033848461059d565b600061047a60038363ffffffff61092c16565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104f357604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b626024913960400191505060405180910390fd5b6001600160a01b03821661053b57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610aa86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166105e557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610b3d6025913960400191505060405180910390fd5b6001600160a01b03821661062d57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610a856023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610656908263ffffffff6106e516565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461068b908263ffffffff61074516565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561073f5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156107a25760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166108075760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025461081a908263ffffffff61074516565b6002556001600160a01b038216600090815260208190526040902054610846908263ffffffff61074516565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6108ad60038263ffffffff61099616565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6108f560038263ffffffff610a1a16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661097657604051600160e51b62461bcd028152600401808060200182810382526022815260200180610b1b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6109a0828261092c565b156109f55760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610a24828261092c565b610a6257604051600160e51b62461bcd028152600401808060200182810382526021815260200180610afa6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058207c035c37b5cdab580693ebc5ac8baa8dd64a88acae0a320928f95065065bb8180029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373",
 13175  }
 13176  
 13177  // ERC20MintableABI is the input ABI used to generate the binding from.
 13178  // Deprecated: Use ERC20MintableMetaData.ABI instead.
 13179  var ERC20MintableABI = ERC20MintableMetaData.ABI
 13180  
 13181  // ERC20MintableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 13182  const ERC20MintableBinRuntime = `608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146101c757806398650275146101ef578063a457c2d7146101f7578063a9059cbb14610223578063aa271e1a1461024f578063dd62ed3e14610275576100b4565b8063095ea7b3146100b957806318160ddd146100f957806323b872dd14610113578063395093511461014957806340c10f191461017557806370a08231146101a1575b600080fd5b6100e5600480360360408110156100cf57600080fd5b506001600160a01b0381351690602001356102a3565b604080519115158252519081900360200190f35b6101016102b9565b60408051918252519081900360200190f35b6100e56004803603606081101561012957600080fd5b506001600160a01b038135811691602081013590911690604001356102bf565b6100e56004803603604081101561015f57600080fd5b506001600160a01b038135169060200135610316565b6100e56004803603604081101561018b57600080fd5b506001600160a01b038135169060200135610352565b610101600480360360208110156101b757600080fd5b50356001600160a01b03166103a5565b6101ed600480360360208110156101dd57600080fd5b50356001600160a01b03166103c0565b005b6101ed610413565b6100e56004803603604081101561020d57600080fd5b506001600160a01b03813516906020013561041e565b6100e56004803603604081101561023957600080fd5b506001600160a01b03813516906020013561045a565b6100e56004803603602081101561026557600080fd5b50356001600160a01b0316610467565b6101016004803603604081101561028b57600080fd5b506001600160a01b0381358116916020013516610480565b60006102b03384846104ab565b50600192915050565b60025490565b60006102cc84848461059d565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461030c918691610307908663ffffffff6106e516565b6104ab565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff61074516565b600061035d33610467565b61039b57604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6102b083836107a9565b6001600160a01b031660009081526020819052604090205490565b6103c933610467565b61040757604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6104108161089c565b50565b61041c336108e4565b565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff6106e516565b60006102b033848461059d565b600061047a60038363ffffffff61092c16565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104f357604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b626024913960400191505060405180910390fd5b6001600160a01b03821661053b57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610aa86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166105e557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610b3d6025913960400191505060405180910390fd5b6001600160a01b03821661062d57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610a856023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610656908263ffffffff6106e516565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461068b908263ffffffff61074516565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561073f5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156107a25760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166108075760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025461081a908263ffffffff61074516565b6002556001600160a01b038216600090815260208190526040902054610846908263ffffffff61074516565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6108ad60038263ffffffff61099616565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6108f560038263ffffffff610a1a16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661097657604051600160e51b62461bcd028152600401808060200182810382526022815260200180610b1b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6109a0828261092c565b156109f55760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610a24828261092c565b610a6257604051600160e51b62461bcd028152600401808060200182810382526021815260200180610afa6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058207c035c37b5cdab580693ebc5ac8baa8dd64a88acae0a320928f95065065bb8180029`
 13183  
 13184  // ERC20MintableFuncSigs maps the 4-byte function signature to its string representation.
 13185  // Deprecated: Use ERC20MintableMetaData.Sigs instead.
 13186  var ERC20MintableFuncSigs = ERC20MintableMetaData.Sigs
 13187  
 13188  // ERC20MintableBin is the compiled bytecode used for deploying new contracts.
 13189  // Deprecated: Use ERC20MintableMetaData.Bin instead.
 13190  var ERC20MintableBin = ERC20MintableMetaData.Bin
 13191  
 13192  // DeployERC20Mintable deploys a new Klaytn contract, binding an instance of ERC20Mintable to it.
 13193  func DeployERC20Mintable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20Mintable, error) {
 13194  	parsed, err := ERC20MintableMetaData.GetAbi()
 13195  	if err != nil {
 13196  		return common.Address{}, nil, nil, err
 13197  	}
 13198  	if parsed == nil {
 13199  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 13200  	}
 13201  
 13202  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20MintableBin), backend)
 13203  	if err != nil {
 13204  		return common.Address{}, nil, nil, err
 13205  	}
 13206  	return address, tx, &ERC20Mintable{ERC20MintableCaller: ERC20MintableCaller{contract: contract}, ERC20MintableTransactor: ERC20MintableTransactor{contract: contract}, ERC20MintableFilterer: ERC20MintableFilterer{contract: contract}}, nil
 13207  }
 13208  
 13209  // ERC20Mintable is an auto generated Go binding around a Klaytn contract.
 13210  type ERC20Mintable struct {
 13211  	ERC20MintableCaller     // Read-only binding to the contract
 13212  	ERC20MintableTransactor // Write-only binding to the contract
 13213  	ERC20MintableFilterer   // Log filterer for contract events
 13214  }
 13215  
 13216  // ERC20MintableCaller is an auto generated read-only Go binding around a Klaytn contract.
 13217  type ERC20MintableCaller struct {
 13218  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13219  }
 13220  
 13221  // ERC20MintableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 13222  type ERC20MintableTransactor struct {
 13223  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13224  }
 13225  
 13226  // ERC20MintableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 13227  type ERC20MintableFilterer struct {
 13228  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13229  }
 13230  
 13231  // ERC20MintableSession is an auto generated Go binding around a Klaytn contract,
 13232  // with pre-set call and transact options.
 13233  type ERC20MintableSession struct {
 13234  	Contract     *ERC20Mintable    // Generic contract binding to set the session for
 13235  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 13236  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 13237  }
 13238  
 13239  // ERC20MintableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 13240  // with pre-set call options.
 13241  type ERC20MintableCallerSession struct {
 13242  	Contract *ERC20MintableCaller // Generic contract caller binding to set the session for
 13243  	CallOpts bind.CallOpts        // Call options to use throughout this session
 13244  }
 13245  
 13246  // ERC20MintableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 13247  // with pre-set transact options.
 13248  type ERC20MintableTransactorSession struct {
 13249  	Contract     *ERC20MintableTransactor // Generic contract transactor binding to set the session for
 13250  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 13251  }
 13252  
 13253  // ERC20MintableRaw is an auto generated low-level Go binding around a Klaytn contract.
 13254  type ERC20MintableRaw struct {
 13255  	Contract *ERC20Mintable // Generic contract binding to access the raw methods on
 13256  }
 13257  
 13258  // ERC20MintableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 13259  type ERC20MintableCallerRaw struct {
 13260  	Contract *ERC20MintableCaller // Generic read-only contract binding to access the raw methods on
 13261  }
 13262  
 13263  // ERC20MintableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 13264  type ERC20MintableTransactorRaw struct {
 13265  	Contract *ERC20MintableTransactor // Generic write-only contract binding to access the raw methods on
 13266  }
 13267  
 13268  // NewERC20Mintable creates a new instance of ERC20Mintable, bound to a specific deployed contract.
 13269  func NewERC20Mintable(address common.Address, backend bind.ContractBackend) (*ERC20Mintable, error) {
 13270  	contract, err := bindERC20Mintable(address, backend, backend, backend)
 13271  	if err != nil {
 13272  		return nil, err
 13273  	}
 13274  	return &ERC20Mintable{ERC20MintableCaller: ERC20MintableCaller{contract: contract}, ERC20MintableTransactor: ERC20MintableTransactor{contract: contract}, ERC20MintableFilterer: ERC20MintableFilterer{contract: contract}}, nil
 13275  }
 13276  
 13277  // NewERC20MintableCaller creates a new read-only instance of ERC20Mintable, bound to a specific deployed contract.
 13278  func NewERC20MintableCaller(address common.Address, caller bind.ContractCaller) (*ERC20MintableCaller, error) {
 13279  	contract, err := bindERC20Mintable(address, caller, nil, nil)
 13280  	if err != nil {
 13281  		return nil, err
 13282  	}
 13283  	return &ERC20MintableCaller{contract: contract}, nil
 13284  }
 13285  
 13286  // NewERC20MintableTransactor creates a new write-only instance of ERC20Mintable, bound to a specific deployed contract.
 13287  func NewERC20MintableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20MintableTransactor, error) {
 13288  	contract, err := bindERC20Mintable(address, nil, transactor, nil)
 13289  	if err != nil {
 13290  		return nil, err
 13291  	}
 13292  	return &ERC20MintableTransactor{contract: contract}, nil
 13293  }
 13294  
 13295  // NewERC20MintableFilterer creates a new log filterer instance of ERC20Mintable, bound to a specific deployed contract.
 13296  func NewERC20MintableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20MintableFilterer, error) {
 13297  	contract, err := bindERC20Mintable(address, nil, nil, filterer)
 13298  	if err != nil {
 13299  		return nil, err
 13300  	}
 13301  	return &ERC20MintableFilterer{contract: contract}, nil
 13302  }
 13303  
 13304  // bindERC20Mintable binds a generic wrapper to an already deployed contract.
 13305  func bindERC20Mintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 13306  	parsed, err := ERC20MintableMetaData.GetAbi()
 13307  	if err != nil {
 13308  		return nil, err
 13309  	}
 13310  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 13311  }
 13312  
 13313  // Call invokes the (constant) contract method with params as input values and
 13314  // sets the output to result. The result type might be a single field for simple
 13315  // returns, a slice of interfaces for anonymous returns and a struct for named
 13316  // returns.
 13317  func (_ERC20Mintable *ERC20MintableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 13318  	return _ERC20Mintable.Contract.ERC20MintableCaller.contract.Call(opts, result, method, params...)
 13319  }
 13320  
 13321  // Transfer initiates a plain transaction to move funds to the contract, calling
 13322  // its default method if one is available.
 13323  func (_ERC20Mintable *ERC20MintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13324  	return _ERC20Mintable.Contract.ERC20MintableTransactor.contract.Transfer(opts)
 13325  }
 13326  
 13327  // Transact invokes the (paid) contract method with params as input values.
 13328  func (_ERC20Mintable *ERC20MintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13329  	return _ERC20Mintable.Contract.ERC20MintableTransactor.contract.Transact(opts, method, params...)
 13330  }
 13331  
 13332  // Call invokes the (constant) contract method with params as input values and
 13333  // sets the output to result. The result type might be a single field for simple
 13334  // returns, a slice of interfaces for anonymous returns and a struct for named
 13335  // returns.
 13336  func (_ERC20Mintable *ERC20MintableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 13337  	return _ERC20Mintable.Contract.contract.Call(opts, result, method, params...)
 13338  }
 13339  
 13340  // Transfer initiates a plain transaction to move funds to the contract, calling
 13341  // its default method if one is available.
 13342  func (_ERC20Mintable *ERC20MintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13343  	return _ERC20Mintable.Contract.contract.Transfer(opts)
 13344  }
 13345  
 13346  // Transact invokes the (paid) contract method with params as input values.
 13347  func (_ERC20Mintable *ERC20MintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13348  	return _ERC20Mintable.Contract.contract.Transact(opts, method, params...)
 13349  }
 13350  
 13351  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 13352  //
 13353  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 13354  func (_ERC20Mintable *ERC20MintableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 13355  	var out []interface{}
 13356  	err := _ERC20Mintable.contract.Call(opts, &out, "allowance", owner, spender)
 13357  
 13358  	if err != nil {
 13359  		return *new(*big.Int), err
 13360  	}
 13361  
 13362  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 13363  
 13364  	return out0, err
 13365  
 13366  }
 13367  
 13368  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 13369  //
 13370  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 13371  func (_ERC20Mintable *ERC20MintableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 13372  	return _ERC20Mintable.Contract.Allowance(&_ERC20Mintable.CallOpts, owner, spender)
 13373  }
 13374  
 13375  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 13376  //
 13377  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 13378  func (_ERC20Mintable *ERC20MintableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 13379  	return _ERC20Mintable.Contract.Allowance(&_ERC20Mintable.CallOpts, owner, spender)
 13380  }
 13381  
 13382  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13383  //
 13384  // Solidity: function balanceOf(address account) view returns(uint256)
 13385  func (_ERC20Mintable *ERC20MintableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 13386  	var out []interface{}
 13387  	err := _ERC20Mintable.contract.Call(opts, &out, "balanceOf", account)
 13388  
 13389  	if err != nil {
 13390  		return *new(*big.Int), err
 13391  	}
 13392  
 13393  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 13394  
 13395  	return out0, err
 13396  
 13397  }
 13398  
 13399  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13400  //
 13401  // Solidity: function balanceOf(address account) view returns(uint256)
 13402  func (_ERC20Mintable *ERC20MintableSession) BalanceOf(account common.Address) (*big.Int, error) {
 13403  	return _ERC20Mintable.Contract.BalanceOf(&_ERC20Mintable.CallOpts, account)
 13404  }
 13405  
 13406  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13407  //
 13408  // Solidity: function balanceOf(address account) view returns(uint256)
 13409  func (_ERC20Mintable *ERC20MintableCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 13410  	return _ERC20Mintable.Contract.BalanceOf(&_ERC20Mintable.CallOpts, account)
 13411  }
 13412  
 13413  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 13414  //
 13415  // Solidity: function isMinter(address account) view returns(bool)
 13416  func (_ERC20Mintable *ERC20MintableCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 13417  	var out []interface{}
 13418  	err := _ERC20Mintable.contract.Call(opts, &out, "isMinter", account)
 13419  
 13420  	if err != nil {
 13421  		return *new(bool), err
 13422  	}
 13423  
 13424  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 13425  
 13426  	return out0, err
 13427  
 13428  }
 13429  
 13430  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 13431  //
 13432  // Solidity: function isMinter(address account) view returns(bool)
 13433  func (_ERC20Mintable *ERC20MintableSession) IsMinter(account common.Address) (bool, error) {
 13434  	return _ERC20Mintable.Contract.IsMinter(&_ERC20Mintable.CallOpts, account)
 13435  }
 13436  
 13437  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 13438  //
 13439  // Solidity: function isMinter(address account) view returns(bool)
 13440  func (_ERC20Mintable *ERC20MintableCallerSession) IsMinter(account common.Address) (bool, error) {
 13441  	return _ERC20Mintable.Contract.IsMinter(&_ERC20Mintable.CallOpts, account)
 13442  }
 13443  
 13444  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 13445  //
 13446  // Solidity: function totalSupply() view returns(uint256)
 13447  func (_ERC20Mintable *ERC20MintableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 13448  	var out []interface{}
 13449  	err := _ERC20Mintable.contract.Call(opts, &out, "totalSupply")
 13450  
 13451  	if err != nil {
 13452  		return *new(*big.Int), err
 13453  	}
 13454  
 13455  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 13456  
 13457  	return out0, err
 13458  
 13459  }
 13460  
 13461  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 13462  //
 13463  // Solidity: function totalSupply() view returns(uint256)
 13464  func (_ERC20Mintable *ERC20MintableSession) TotalSupply() (*big.Int, error) {
 13465  	return _ERC20Mintable.Contract.TotalSupply(&_ERC20Mintable.CallOpts)
 13466  }
 13467  
 13468  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 13469  //
 13470  // Solidity: function totalSupply() view returns(uint256)
 13471  func (_ERC20Mintable *ERC20MintableCallerSession) TotalSupply() (*big.Int, error) {
 13472  	return _ERC20Mintable.Contract.TotalSupply(&_ERC20Mintable.CallOpts)
 13473  }
 13474  
 13475  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 13476  //
 13477  // Solidity: function addMinter(address account) returns()
 13478  func (_ERC20Mintable *ERC20MintableTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 13479  	return _ERC20Mintable.contract.Transact(opts, "addMinter", account)
 13480  }
 13481  
 13482  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 13483  //
 13484  // Solidity: function addMinter(address account) returns()
 13485  func (_ERC20Mintable *ERC20MintableSession) AddMinter(account common.Address) (*types.Transaction, error) {
 13486  	return _ERC20Mintable.Contract.AddMinter(&_ERC20Mintable.TransactOpts, account)
 13487  }
 13488  
 13489  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 13490  //
 13491  // Solidity: function addMinter(address account) returns()
 13492  func (_ERC20Mintable *ERC20MintableTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 13493  	return _ERC20Mintable.Contract.AddMinter(&_ERC20Mintable.TransactOpts, account)
 13494  }
 13495  
 13496  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 13497  //
 13498  // Solidity: function approve(address spender, uint256 value) returns(bool)
 13499  func (_ERC20Mintable *ERC20MintableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 13500  	return _ERC20Mintable.contract.Transact(opts, "approve", spender, value)
 13501  }
 13502  
 13503  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 13504  //
 13505  // Solidity: function approve(address spender, uint256 value) returns(bool)
 13506  func (_ERC20Mintable *ERC20MintableSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 13507  	return _ERC20Mintable.Contract.Approve(&_ERC20Mintable.TransactOpts, spender, value)
 13508  }
 13509  
 13510  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 13511  //
 13512  // Solidity: function approve(address spender, uint256 value) returns(bool)
 13513  func (_ERC20Mintable *ERC20MintableTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 13514  	return _ERC20Mintable.Contract.Approve(&_ERC20Mintable.TransactOpts, spender, value)
 13515  }
 13516  
 13517  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 13518  //
 13519  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 13520  func (_ERC20Mintable *ERC20MintableTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 13521  	return _ERC20Mintable.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 13522  }
 13523  
 13524  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 13525  //
 13526  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 13527  func (_ERC20Mintable *ERC20MintableSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 13528  	return _ERC20Mintable.Contract.DecreaseAllowance(&_ERC20Mintable.TransactOpts, spender, subtractedValue)
 13529  }
 13530  
 13531  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 13532  //
 13533  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 13534  func (_ERC20Mintable *ERC20MintableTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 13535  	return _ERC20Mintable.Contract.DecreaseAllowance(&_ERC20Mintable.TransactOpts, spender, subtractedValue)
 13536  }
 13537  
 13538  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 13539  //
 13540  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 13541  func (_ERC20Mintable *ERC20MintableTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 13542  	return _ERC20Mintable.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 13543  }
 13544  
 13545  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 13546  //
 13547  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 13548  func (_ERC20Mintable *ERC20MintableSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 13549  	return _ERC20Mintable.Contract.IncreaseAllowance(&_ERC20Mintable.TransactOpts, spender, addedValue)
 13550  }
 13551  
 13552  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 13553  //
 13554  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 13555  func (_ERC20Mintable *ERC20MintableTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 13556  	return _ERC20Mintable.Contract.IncreaseAllowance(&_ERC20Mintable.TransactOpts, spender, addedValue)
 13557  }
 13558  
 13559  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 13560  //
 13561  // Solidity: function mint(address account, uint256 amount) returns(bool)
 13562  func (_ERC20Mintable *ERC20MintableTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 13563  	return _ERC20Mintable.contract.Transact(opts, "mint", account, amount)
 13564  }
 13565  
 13566  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 13567  //
 13568  // Solidity: function mint(address account, uint256 amount) returns(bool)
 13569  func (_ERC20Mintable *ERC20MintableSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 13570  	return _ERC20Mintable.Contract.Mint(&_ERC20Mintable.TransactOpts, account, amount)
 13571  }
 13572  
 13573  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 13574  //
 13575  // Solidity: function mint(address account, uint256 amount) returns(bool)
 13576  func (_ERC20Mintable *ERC20MintableTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 13577  	return _ERC20Mintable.Contract.Mint(&_ERC20Mintable.TransactOpts, account, amount)
 13578  }
 13579  
 13580  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 13581  //
 13582  // Solidity: function renounceMinter() returns()
 13583  func (_ERC20Mintable *ERC20MintableTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 13584  	return _ERC20Mintable.contract.Transact(opts, "renounceMinter")
 13585  }
 13586  
 13587  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 13588  //
 13589  // Solidity: function renounceMinter() returns()
 13590  func (_ERC20Mintable *ERC20MintableSession) RenounceMinter() (*types.Transaction, error) {
 13591  	return _ERC20Mintable.Contract.RenounceMinter(&_ERC20Mintable.TransactOpts)
 13592  }
 13593  
 13594  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 13595  //
 13596  // Solidity: function renounceMinter() returns()
 13597  func (_ERC20Mintable *ERC20MintableTransactorSession) RenounceMinter() (*types.Transaction, error) {
 13598  	return _ERC20Mintable.Contract.RenounceMinter(&_ERC20Mintable.TransactOpts)
 13599  }
 13600  
 13601  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 13602  //
 13603  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 13604  func (_ERC20Mintable *ERC20MintableTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 13605  	return _ERC20Mintable.contract.Transact(opts, "transfer", recipient, amount)
 13606  }
 13607  
 13608  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 13609  //
 13610  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 13611  func (_ERC20Mintable *ERC20MintableSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 13612  	return _ERC20Mintable.Contract.Transfer(&_ERC20Mintable.TransactOpts, recipient, amount)
 13613  }
 13614  
 13615  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 13616  //
 13617  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 13618  func (_ERC20Mintable *ERC20MintableTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 13619  	return _ERC20Mintable.Contract.Transfer(&_ERC20Mintable.TransactOpts, recipient, amount)
 13620  }
 13621  
 13622  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 13623  //
 13624  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 13625  func (_ERC20Mintable *ERC20MintableTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 13626  	return _ERC20Mintable.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 13627  }
 13628  
 13629  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 13630  //
 13631  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 13632  func (_ERC20Mintable *ERC20MintableSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 13633  	return _ERC20Mintable.Contract.TransferFrom(&_ERC20Mintable.TransactOpts, sender, recipient, amount)
 13634  }
 13635  
 13636  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 13637  //
 13638  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 13639  func (_ERC20Mintable *ERC20MintableTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 13640  	return _ERC20Mintable.Contract.TransferFrom(&_ERC20Mintable.TransactOpts, sender, recipient, amount)
 13641  }
 13642  
 13643  // ERC20MintableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Mintable contract.
 13644  type ERC20MintableApprovalIterator struct {
 13645  	Event *ERC20MintableApproval // Event containing the contract specifics and raw log
 13646  
 13647  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13648  	event    string              // Event name to use for unpacking event data
 13649  
 13650  	logs chan types.Log      // Log channel receiving the found contract events
 13651  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13652  	done bool                // Whether the subscription completed delivering logs
 13653  	fail error               // Occurred error to stop iteration
 13654  }
 13655  
 13656  // Next advances the iterator to the subsequent event, returning whether there
 13657  // are any more events found. In case of a retrieval or parsing error, false is
 13658  // returned and Error() can be queried for the exact failure.
 13659  func (it *ERC20MintableApprovalIterator) Next() bool {
 13660  	// If the iterator failed, stop iterating
 13661  	if it.fail != nil {
 13662  		return false
 13663  	}
 13664  	// If the iterator completed, deliver directly whatever's available
 13665  	if it.done {
 13666  		select {
 13667  		case log := <-it.logs:
 13668  			it.Event = new(ERC20MintableApproval)
 13669  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13670  				it.fail = err
 13671  				return false
 13672  			}
 13673  			it.Event.Raw = log
 13674  			return true
 13675  
 13676  		default:
 13677  			return false
 13678  		}
 13679  	}
 13680  	// Iterator still in progress, wait for either a data or an error event
 13681  	select {
 13682  	case log := <-it.logs:
 13683  		it.Event = new(ERC20MintableApproval)
 13684  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13685  			it.fail = err
 13686  			return false
 13687  		}
 13688  		it.Event.Raw = log
 13689  		return true
 13690  
 13691  	case err := <-it.sub.Err():
 13692  		it.done = true
 13693  		it.fail = err
 13694  		return it.Next()
 13695  	}
 13696  }
 13697  
 13698  // Error returns any retrieval or parsing error occurred during filtering.
 13699  func (it *ERC20MintableApprovalIterator) Error() error {
 13700  	return it.fail
 13701  }
 13702  
 13703  // Close terminates the iteration process, releasing any pending underlying
 13704  // resources.
 13705  func (it *ERC20MintableApprovalIterator) Close() error {
 13706  	it.sub.Unsubscribe()
 13707  	return nil
 13708  }
 13709  
 13710  // ERC20MintableApproval represents a Approval event raised by the ERC20Mintable contract.
 13711  type ERC20MintableApproval struct {
 13712  	Owner   common.Address
 13713  	Spender common.Address
 13714  	Value   *big.Int
 13715  	Raw     types.Log // Blockchain specific contextual infos
 13716  }
 13717  
 13718  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13719  //
 13720  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 13721  func (_ERC20Mintable *ERC20MintableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20MintableApprovalIterator, error) {
 13722  
 13723  	var ownerRule []interface{}
 13724  	for _, ownerItem := range owner {
 13725  		ownerRule = append(ownerRule, ownerItem)
 13726  	}
 13727  	var spenderRule []interface{}
 13728  	for _, spenderItem := range spender {
 13729  		spenderRule = append(spenderRule, spenderItem)
 13730  	}
 13731  
 13732  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 13733  	if err != nil {
 13734  		return nil, err
 13735  	}
 13736  	return &ERC20MintableApprovalIterator{contract: _ERC20Mintable.contract, event: "Approval", logs: logs, sub: sub}, nil
 13737  }
 13738  
 13739  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13740  //
 13741  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 13742  func (_ERC20Mintable *ERC20MintableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20MintableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 13743  
 13744  	var ownerRule []interface{}
 13745  	for _, ownerItem := range owner {
 13746  		ownerRule = append(ownerRule, ownerItem)
 13747  	}
 13748  	var spenderRule []interface{}
 13749  	for _, spenderItem := range spender {
 13750  		spenderRule = append(spenderRule, spenderItem)
 13751  	}
 13752  
 13753  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 13754  	if err != nil {
 13755  		return nil, err
 13756  	}
 13757  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13758  		defer sub.Unsubscribe()
 13759  		for {
 13760  			select {
 13761  			case log := <-logs:
 13762  				// New log arrived, parse the event and forward to the user
 13763  				event := new(ERC20MintableApproval)
 13764  				if err := _ERC20Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
 13765  					return err
 13766  				}
 13767  				event.Raw = log
 13768  
 13769  				select {
 13770  				case sink <- event:
 13771  				case err := <-sub.Err():
 13772  					return err
 13773  				case <-quit:
 13774  					return nil
 13775  				}
 13776  			case err := <-sub.Err():
 13777  				return err
 13778  			case <-quit:
 13779  				return nil
 13780  			}
 13781  		}
 13782  	}), nil
 13783  }
 13784  
 13785  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13786  //
 13787  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 13788  func (_ERC20Mintable *ERC20MintableFilterer) ParseApproval(log types.Log) (*ERC20MintableApproval, error) {
 13789  	event := new(ERC20MintableApproval)
 13790  	if err := _ERC20Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
 13791  		return nil, err
 13792  	}
 13793  	return event, nil
 13794  }
 13795  
 13796  // ERC20MintableMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ERC20Mintable contract.
 13797  type ERC20MintableMinterAddedIterator struct {
 13798  	Event *ERC20MintableMinterAdded // Event containing the contract specifics and raw log
 13799  
 13800  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13801  	event    string              // Event name to use for unpacking event data
 13802  
 13803  	logs chan types.Log      // Log channel receiving the found contract events
 13804  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13805  	done bool                // Whether the subscription completed delivering logs
 13806  	fail error               // Occurred error to stop iteration
 13807  }
 13808  
 13809  // Next advances the iterator to the subsequent event, returning whether there
 13810  // are any more events found. In case of a retrieval or parsing error, false is
 13811  // returned and Error() can be queried for the exact failure.
 13812  func (it *ERC20MintableMinterAddedIterator) Next() bool {
 13813  	// If the iterator failed, stop iterating
 13814  	if it.fail != nil {
 13815  		return false
 13816  	}
 13817  	// If the iterator completed, deliver directly whatever's available
 13818  	if it.done {
 13819  		select {
 13820  		case log := <-it.logs:
 13821  			it.Event = new(ERC20MintableMinterAdded)
 13822  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13823  				it.fail = err
 13824  				return false
 13825  			}
 13826  			it.Event.Raw = log
 13827  			return true
 13828  
 13829  		default:
 13830  			return false
 13831  		}
 13832  	}
 13833  	// Iterator still in progress, wait for either a data or an error event
 13834  	select {
 13835  	case log := <-it.logs:
 13836  		it.Event = new(ERC20MintableMinterAdded)
 13837  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13838  			it.fail = err
 13839  			return false
 13840  		}
 13841  		it.Event.Raw = log
 13842  		return true
 13843  
 13844  	case err := <-it.sub.Err():
 13845  		it.done = true
 13846  		it.fail = err
 13847  		return it.Next()
 13848  	}
 13849  }
 13850  
 13851  // Error returns any retrieval or parsing error occurred during filtering.
 13852  func (it *ERC20MintableMinterAddedIterator) Error() error {
 13853  	return it.fail
 13854  }
 13855  
 13856  // Close terminates the iteration process, releasing any pending underlying
 13857  // resources.
 13858  func (it *ERC20MintableMinterAddedIterator) Close() error {
 13859  	it.sub.Unsubscribe()
 13860  	return nil
 13861  }
 13862  
 13863  // ERC20MintableMinterAdded represents a MinterAdded event raised by the ERC20Mintable contract.
 13864  type ERC20MintableMinterAdded struct {
 13865  	Account common.Address
 13866  	Raw     types.Log // Blockchain specific contextual infos
 13867  }
 13868  
 13869  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 13870  //
 13871  // Solidity: event MinterAdded(address indexed account)
 13872  func (_ERC20Mintable *ERC20MintableFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ERC20MintableMinterAddedIterator, error) {
 13873  
 13874  	var accountRule []interface{}
 13875  	for _, accountItem := range account {
 13876  		accountRule = append(accountRule, accountItem)
 13877  	}
 13878  
 13879  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "MinterAdded", accountRule)
 13880  	if err != nil {
 13881  		return nil, err
 13882  	}
 13883  	return &ERC20MintableMinterAddedIterator{contract: _ERC20Mintable.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 13884  }
 13885  
 13886  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 13887  //
 13888  // Solidity: event MinterAdded(address indexed account)
 13889  func (_ERC20Mintable *ERC20MintableFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ERC20MintableMinterAdded, account []common.Address) (event.Subscription, error) {
 13890  
 13891  	var accountRule []interface{}
 13892  	for _, accountItem := range account {
 13893  		accountRule = append(accountRule, accountItem)
 13894  	}
 13895  
 13896  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "MinterAdded", accountRule)
 13897  	if err != nil {
 13898  		return nil, err
 13899  	}
 13900  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13901  		defer sub.Unsubscribe()
 13902  		for {
 13903  			select {
 13904  			case log := <-logs:
 13905  				// New log arrived, parse the event and forward to the user
 13906  				event := new(ERC20MintableMinterAdded)
 13907  				if err := _ERC20Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 13908  					return err
 13909  				}
 13910  				event.Raw = log
 13911  
 13912  				select {
 13913  				case sink <- event:
 13914  				case err := <-sub.Err():
 13915  					return err
 13916  				case <-quit:
 13917  					return nil
 13918  				}
 13919  			case err := <-sub.Err():
 13920  				return err
 13921  			case <-quit:
 13922  				return nil
 13923  			}
 13924  		}
 13925  	}), nil
 13926  }
 13927  
 13928  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 13929  //
 13930  // Solidity: event MinterAdded(address indexed account)
 13931  func (_ERC20Mintable *ERC20MintableFilterer) ParseMinterAdded(log types.Log) (*ERC20MintableMinterAdded, error) {
 13932  	event := new(ERC20MintableMinterAdded)
 13933  	if err := _ERC20Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 13934  		return nil, err
 13935  	}
 13936  	return event, nil
 13937  }
 13938  
 13939  // ERC20MintableMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ERC20Mintable contract.
 13940  type ERC20MintableMinterRemovedIterator struct {
 13941  	Event *ERC20MintableMinterRemoved // Event containing the contract specifics and raw log
 13942  
 13943  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13944  	event    string              // Event name to use for unpacking event data
 13945  
 13946  	logs chan types.Log      // Log channel receiving the found contract events
 13947  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13948  	done bool                // Whether the subscription completed delivering logs
 13949  	fail error               // Occurred error to stop iteration
 13950  }
 13951  
 13952  // Next advances the iterator to the subsequent event, returning whether there
 13953  // are any more events found. In case of a retrieval or parsing error, false is
 13954  // returned and Error() can be queried for the exact failure.
 13955  func (it *ERC20MintableMinterRemovedIterator) Next() bool {
 13956  	// If the iterator failed, stop iterating
 13957  	if it.fail != nil {
 13958  		return false
 13959  	}
 13960  	// If the iterator completed, deliver directly whatever's available
 13961  	if it.done {
 13962  		select {
 13963  		case log := <-it.logs:
 13964  			it.Event = new(ERC20MintableMinterRemoved)
 13965  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13966  				it.fail = err
 13967  				return false
 13968  			}
 13969  			it.Event.Raw = log
 13970  			return true
 13971  
 13972  		default:
 13973  			return false
 13974  		}
 13975  	}
 13976  	// Iterator still in progress, wait for either a data or an error event
 13977  	select {
 13978  	case log := <-it.logs:
 13979  		it.Event = new(ERC20MintableMinterRemoved)
 13980  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13981  			it.fail = err
 13982  			return false
 13983  		}
 13984  		it.Event.Raw = log
 13985  		return true
 13986  
 13987  	case err := <-it.sub.Err():
 13988  		it.done = true
 13989  		it.fail = err
 13990  		return it.Next()
 13991  	}
 13992  }
 13993  
 13994  // Error returns any retrieval or parsing error occurred during filtering.
 13995  func (it *ERC20MintableMinterRemovedIterator) Error() error {
 13996  	return it.fail
 13997  }
 13998  
 13999  // Close terminates the iteration process, releasing any pending underlying
 14000  // resources.
 14001  func (it *ERC20MintableMinterRemovedIterator) Close() error {
 14002  	it.sub.Unsubscribe()
 14003  	return nil
 14004  }
 14005  
 14006  // ERC20MintableMinterRemoved represents a MinterRemoved event raised by the ERC20Mintable contract.
 14007  type ERC20MintableMinterRemoved struct {
 14008  	Account common.Address
 14009  	Raw     types.Log // Blockchain specific contextual infos
 14010  }
 14011  
 14012  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 14013  //
 14014  // Solidity: event MinterRemoved(address indexed account)
 14015  func (_ERC20Mintable *ERC20MintableFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ERC20MintableMinterRemovedIterator, error) {
 14016  
 14017  	var accountRule []interface{}
 14018  	for _, accountItem := range account {
 14019  		accountRule = append(accountRule, accountItem)
 14020  	}
 14021  
 14022  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 14023  	if err != nil {
 14024  		return nil, err
 14025  	}
 14026  	return &ERC20MintableMinterRemovedIterator{contract: _ERC20Mintable.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 14027  }
 14028  
 14029  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 14030  //
 14031  // Solidity: event MinterRemoved(address indexed account)
 14032  func (_ERC20Mintable *ERC20MintableFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ERC20MintableMinterRemoved, account []common.Address) (event.Subscription, error) {
 14033  
 14034  	var accountRule []interface{}
 14035  	for _, accountItem := range account {
 14036  		accountRule = append(accountRule, accountItem)
 14037  	}
 14038  
 14039  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 14040  	if err != nil {
 14041  		return nil, err
 14042  	}
 14043  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14044  		defer sub.Unsubscribe()
 14045  		for {
 14046  			select {
 14047  			case log := <-logs:
 14048  				// New log arrived, parse the event and forward to the user
 14049  				event := new(ERC20MintableMinterRemoved)
 14050  				if err := _ERC20Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 14051  					return err
 14052  				}
 14053  				event.Raw = log
 14054  
 14055  				select {
 14056  				case sink <- event:
 14057  				case err := <-sub.Err():
 14058  					return err
 14059  				case <-quit:
 14060  					return nil
 14061  				}
 14062  			case err := <-sub.Err():
 14063  				return err
 14064  			case <-quit:
 14065  				return nil
 14066  			}
 14067  		}
 14068  	}), nil
 14069  }
 14070  
 14071  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 14072  //
 14073  // Solidity: event MinterRemoved(address indexed account)
 14074  func (_ERC20Mintable *ERC20MintableFilterer) ParseMinterRemoved(log types.Log) (*ERC20MintableMinterRemoved, error) {
 14075  	event := new(ERC20MintableMinterRemoved)
 14076  	if err := _ERC20Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 14077  		return nil, err
 14078  	}
 14079  	return event, nil
 14080  }
 14081  
 14082  // ERC20MintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Mintable contract.
 14083  type ERC20MintableTransferIterator struct {
 14084  	Event *ERC20MintableTransfer // Event containing the contract specifics and raw log
 14085  
 14086  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14087  	event    string              // Event name to use for unpacking event data
 14088  
 14089  	logs chan types.Log      // Log channel receiving the found contract events
 14090  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14091  	done bool                // Whether the subscription completed delivering logs
 14092  	fail error               // Occurred error to stop iteration
 14093  }
 14094  
 14095  // Next advances the iterator to the subsequent event, returning whether there
 14096  // are any more events found. In case of a retrieval or parsing error, false is
 14097  // returned and Error() can be queried for the exact failure.
 14098  func (it *ERC20MintableTransferIterator) Next() bool {
 14099  	// If the iterator failed, stop iterating
 14100  	if it.fail != nil {
 14101  		return false
 14102  	}
 14103  	// If the iterator completed, deliver directly whatever's available
 14104  	if it.done {
 14105  		select {
 14106  		case log := <-it.logs:
 14107  			it.Event = new(ERC20MintableTransfer)
 14108  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14109  				it.fail = err
 14110  				return false
 14111  			}
 14112  			it.Event.Raw = log
 14113  			return true
 14114  
 14115  		default:
 14116  			return false
 14117  		}
 14118  	}
 14119  	// Iterator still in progress, wait for either a data or an error event
 14120  	select {
 14121  	case log := <-it.logs:
 14122  		it.Event = new(ERC20MintableTransfer)
 14123  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14124  			it.fail = err
 14125  			return false
 14126  		}
 14127  		it.Event.Raw = log
 14128  		return true
 14129  
 14130  	case err := <-it.sub.Err():
 14131  		it.done = true
 14132  		it.fail = err
 14133  		return it.Next()
 14134  	}
 14135  }
 14136  
 14137  // Error returns any retrieval or parsing error occurred during filtering.
 14138  func (it *ERC20MintableTransferIterator) Error() error {
 14139  	return it.fail
 14140  }
 14141  
 14142  // Close terminates the iteration process, releasing any pending underlying
 14143  // resources.
 14144  func (it *ERC20MintableTransferIterator) Close() error {
 14145  	it.sub.Unsubscribe()
 14146  	return nil
 14147  }
 14148  
 14149  // ERC20MintableTransfer represents a Transfer event raised by the ERC20Mintable contract.
 14150  type ERC20MintableTransfer struct {
 14151  	From  common.Address
 14152  	To    common.Address
 14153  	Value *big.Int
 14154  	Raw   types.Log // Blockchain specific contextual infos
 14155  }
 14156  
 14157  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 14158  //
 14159  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 14160  func (_ERC20Mintable *ERC20MintableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20MintableTransferIterator, error) {
 14161  
 14162  	var fromRule []interface{}
 14163  	for _, fromItem := range from {
 14164  		fromRule = append(fromRule, fromItem)
 14165  	}
 14166  	var toRule []interface{}
 14167  	for _, toItem := range to {
 14168  		toRule = append(toRule, toItem)
 14169  	}
 14170  
 14171  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 14172  	if err != nil {
 14173  		return nil, err
 14174  	}
 14175  	return &ERC20MintableTransferIterator{contract: _ERC20Mintable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 14176  }
 14177  
 14178  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 14179  //
 14180  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 14181  func (_ERC20Mintable *ERC20MintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20MintableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 14182  
 14183  	var fromRule []interface{}
 14184  	for _, fromItem := range from {
 14185  		fromRule = append(fromRule, fromItem)
 14186  	}
 14187  	var toRule []interface{}
 14188  	for _, toItem := range to {
 14189  		toRule = append(toRule, toItem)
 14190  	}
 14191  
 14192  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 14193  	if err != nil {
 14194  		return nil, err
 14195  	}
 14196  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14197  		defer sub.Unsubscribe()
 14198  		for {
 14199  			select {
 14200  			case log := <-logs:
 14201  				// New log arrived, parse the event and forward to the user
 14202  				event := new(ERC20MintableTransfer)
 14203  				if err := _ERC20Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 14204  					return err
 14205  				}
 14206  				event.Raw = log
 14207  
 14208  				select {
 14209  				case sink <- event:
 14210  				case err := <-sub.Err():
 14211  					return err
 14212  				case <-quit:
 14213  					return nil
 14214  				}
 14215  			case err := <-sub.Err():
 14216  				return err
 14217  			case <-quit:
 14218  				return nil
 14219  			}
 14220  		}
 14221  	}), nil
 14222  }
 14223  
 14224  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 14225  //
 14226  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 14227  func (_ERC20Mintable *ERC20MintableFilterer) ParseTransfer(log types.Log) (*ERC20MintableTransfer, error) {
 14228  	event := new(ERC20MintableTransfer)
 14229  	if err := _ERC20Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 14230  		return nil, err
 14231  	}
 14232  	return event, nil
 14233  }
 14234  
 14235  // ERC721MetaData contains all meta data concerning the ERC721 contract.
 14236  var ERC721MetaData = &bind.MetaData{
 14237  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 14238  	Sigs: map[string]string{
 14239  		"095ea7b3": "approve(address,uint256)",
 14240  		"70a08231": "balanceOf(address)",
 14241  		"081812fc": "getApproved(uint256)",
 14242  		"e985e9c5": "isApprovedForAll(address,address)",
 14243  		"6352211e": "ownerOf(uint256)",
 14244  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 14245  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 14246  		"a22cb465": "setApprovalForAll(address,bool)",
 14247  		"01ffc9a7": "supportsInterface(bytes4)",
 14248  		"23b872dd": "transferFrom(address,address,uint256)",
 14249  	},
 14250  	Bin: "0x608060405234801561001057600080fd5b506100276301ffc9a760e01b61004260201b60201c565b61003d6380ac58cd60e01b61004260201b60201c565b610110565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610d448061011f6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80636352211e116100665780636352211e146101b157806370a08231146101ce578063a22cb46514610206578063b88d4fde14610234578063e985e9c5146102fa5761009e565b806301ffc9a7146100a3578063081812fc146100de578063095ea7b31461011757806323b872dd1461014557806342842e0e1461017b575b600080fd5b6100ca600480360360208110156100b957600080fd5b50356001600160e01b031916610328565b604080519115158252519081900360200190f35b6100fb600480360360208110156100f457600080fd5b5035610347565b604080516001600160a01b039092168252519081900360200190f35b6101436004803603604081101561012d57600080fd5b506001600160a01b0381351690602001356103ac565b005b6101436004803603606081101561015b57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b6101436004803603606081101561019157600080fd5b506001600160a01b0381358116916020810135909116906040013561051b565b6100fb600480360360208110156101c757600080fd5b5035610536565b6101f4600480360360208110156101e457600080fd5b50356001600160a01b0316610593565b60408051918252519081900360200190f35b6101436004803603604081101561021c57600080fd5b506001600160a01b03813516906020013515156105fe565b6101436004803603608081101561024a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106cd945050505050565b6100ca6004803603604081101561031057600080fd5b506001600160a01b0381358116916020013516610728565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061035282610756565b61039057604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610c72602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103b782610536565b9050806001600160a01b0316836001600160a01b0316141561040d57604051600160e51b62461bcd028152600401808060200182810382526021815260200180610cc76021913960400191505060405180910390fd5b336001600160a01b038216148061042957506104298133610728565b61046757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610be76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104cd3382610773565b61050b57604051600160e51b62461bcd028152600401808060200182810382526031815260200180610ce86031913960400191505060405180910390fd5b61051683838361081a565b505050565b610516838383604051806020016040528060008152506106cd565b6000818152600160205260408120546001600160a01b03168061058d57604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c496029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166105dd57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610c1f602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061058d90610964565b6001600160a01b03821633141561065f5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d88484846104c3565b6106e484848484610968565b61072257604051600160e51b62461bcd028152600401808060200182810382526032815260200180610b656032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061077e82610756565b6107bc57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bbb602c913960400191505060405180910390fd5b60006107c783610536565b9050806001600160a01b0316846001600160a01b031614806108025750836001600160a01b03166107f784610347565b6001600160a01b0316145b8061081257506108128185610728565b949350505050565b826001600160a01b031661082d82610536565b6001600160a01b03161461087557604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c9e6029913960400191505060405180910390fd5b6001600160a01b0382166108bd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b976024913960400191505060405180910390fd5b6108c681610aa1565b6001600160a01b03831660009081526003602052604090206108e790610ade565b6001600160a01b038216600090815260036020526040902061090890610af5565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b600061097c846001600160a01b0316610afe565b61098857506001610812565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a055781810151838201526020016109ed565b50505050905090810190601f168015610a325780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a5457600080fd5b505af1158015610a68573d6000803e3d6000fd5b505050506040513d6020811015610a7e57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610adb57600081815260026020526040902080546001600160a01b03191690555b50565b8054610af190600163ffffffff610b0416565b9055565b80546001019055565b3b151590565b600082821115610b5e5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820ed0176cdf6bb84bc2e81a19dd4f43f70a184a383de47142e2b45467f824b179b0029",
 14251  }
 14252  
 14253  // ERC721ABI is the input ABI used to generate the binding from.
 14254  // Deprecated: Use ERC721MetaData.ABI instead.
 14255  var ERC721ABI = ERC721MetaData.ABI
 14256  
 14257  // ERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 14258  const ERC721BinRuntime = `608060405234801561001057600080fd5b506004361061009e5760003560e01c80636352211e116100665780636352211e146101b157806370a08231146101ce578063a22cb46514610206578063b88d4fde14610234578063e985e9c5146102fa5761009e565b806301ffc9a7146100a3578063081812fc146100de578063095ea7b31461011757806323b872dd1461014557806342842e0e1461017b575b600080fd5b6100ca600480360360208110156100b957600080fd5b50356001600160e01b031916610328565b604080519115158252519081900360200190f35b6100fb600480360360208110156100f457600080fd5b5035610347565b604080516001600160a01b039092168252519081900360200190f35b6101436004803603604081101561012d57600080fd5b506001600160a01b0381351690602001356103ac565b005b6101436004803603606081101561015b57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b6101436004803603606081101561019157600080fd5b506001600160a01b0381358116916020810135909116906040013561051b565b6100fb600480360360208110156101c757600080fd5b5035610536565b6101f4600480360360208110156101e457600080fd5b50356001600160a01b0316610593565b60408051918252519081900360200190f35b6101436004803603604081101561021c57600080fd5b506001600160a01b03813516906020013515156105fe565b6101436004803603608081101561024a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106cd945050505050565b6100ca6004803603604081101561031057600080fd5b506001600160a01b0381358116916020013516610728565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061035282610756565b61039057604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610c72602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103b782610536565b9050806001600160a01b0316836001600160a01b0316141561040d57604051600160e51b62461bcd028152600401808060200182810382526021815260200180610cc76021913960400191505060405180910390fd5b336001600160a01b038216148061042957506104298133610728565b61046757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610be76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104cd3382610773565b61050b57604051600160e51b62461bcd028152600401808060200182810382526031815260200180610ce86031913960400191505060405180910390fd5b61051683838361081a565b505050565b610516838383604051806020016040528060008152506106cd565b6000818152600160205260408120546001600160a01b03168061058d57604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c496029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166105dd57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610c1f602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061058d90610964565b6001600160a01b03821633141561065f5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d88484846104c3565b6106e484848484610968565b61072257604051600160e51b62461bcd028152600401808060200182810382526032815260200180610b656032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061077e82610756565b6107bc57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bbb602c913960400191505060405180910390fd5b60006107c783610536565b9050806001600160a01b0316846001600160a01b031614806108025750836001600160a01b03166107f784610347565b6001600160a01b0316145b8061081257506108128185610728565b949350505050565b826001600160a01b031661082d82610536565b6001600160a01b03161461087557604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c9e6029913960400191505060405180910390fd5b6001600160a01b0382166108bd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b976024913960400191505060405180910390fd5b6108c681610aa1565b6001600160a01b03831660009081526003602052604090206108e790610ade565b6001600160a01b038216600090815260036020526040902061090890610af5565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b600061097c846001600160a01b0316610afe565b61098857506001610812565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a055781810151838201526020016109ed565b50505050905090810190601f168015610a325780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a5457600080fd5b505af1158015610a68573d6000803e3d6000fd5b505050506040513d6020811015610a7e57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610adb57600081815260026020526040902080546001600160a01b03191690555b50565b8054610af190600163ffffffff610b0416565b9055565b80546001019055565b3b151590565b600082821115610b5e5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820ed0176cdf6bb84bc2e81a19dd4f43f70a184a383de47142e2b45467f824b179b0029`
 14259  
 14260  // ERC721FuncSigs maps the 4-byte function signature to its string representation.
 14261  // Deprecated: Use ERC721MetaData.Sigs instead.
 14262  var ERC721FuncSigs = ERC721MetaData.Sigs
 14263  
 14264  // ERC721Bin is the compiled bytecode used for deploying new contracts.
 14265  // Deprecated: Use ERC721MetaData.Bin instead.
 14266  var ERC721Bin = ERC721MetaData.Bin
 14267  
 14268  // DeployERC721 deploys a new Klaytn contract, binding an instance of ERC721 to it.
 14269  func DeployERC721(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721, error) {
 14270  	parsed, err := ERC721MetaData.GetAbi()
 14271  	if err != nil {
 14272  		return common.Address{}, nil, nil, err
 14273  	}
 14274  	if parsed == nil {
 14275  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 14276  	}
 14277  
 14278  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721Bin), backend)
 14279  	if err != nil {
 14280  		return common.Address{}, nil, nil, err
 14281  	}
 14282  	return address, tx, &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
 14283  }
 14284  
 14285  // ERC721 is an auto generated Go binding around a Klaytn contract.
 14286  type ERC721 struct {
 14287  	ERC721Caller     // Read-only binding to the contract
 14288  	ERC721Transactor // Write-only binding to the contract
 14289  	ERC721Filterer   // Log filterer for contract events
 14290  }
 14291  
 14292  // ERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
 14293  type ERC721Caller struct {
 14294  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 14295  }
 14296  
 14297  // ERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
 14298  type ERC721Transactor struct {
 14299  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 14300  }
 14301  
 14302  // ERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 14303  type ERC721Filterer struct {
 14304  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 14305  }
 14306  
 14307  // ERC721Session is an auto generated Go binding around a Klaytn contract,
 14308  // with pre-set call and transact options.
 14309  type ERC721Session struct {
 14310  	Contract     *ERC721           // Generic contract binding to set the session for
 14311  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 14312  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 14313  }
 14314  
 14315  // ERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 14316  // with pre-set call options.
 14317  type ERC721CallerSession struct {
 14318  	Contract *ERC721Caller // Generic contract caller binding to set the session for
 14319  	CallOpts bind.CallOpts // Call options to use throughout this session
 14320  }
 14321  
 14322  // ERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 14323  // with pre-set transact options.
 14324  type ERC721TransactorSession struct {
 14325  	Contract     *ERC721Transactor // Generic contract transactor binding to set the session for
 14326  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 14327  }
 14328  
 14329  // ERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
 14330  type ERC721Raw struct {
 14331  	Contract *ERC721 // Generic contract binding to access the raw methods on
 14332  }
 14333  
 14334  // ERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 14335  type ERC721CallerRaw struct {
 14336  	Contract *ERC721Caller // Generic read-only contract binding to access the raw methods on
 14337  }
 14338  
 14339  // ERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 14340  type ERC721TransactorRaw struct {
 14341  	Contract *ERC721Transactor // Generic write-only contract binding to access the raw methods on
 14342  }
 14343  
 14344  // NewERC721 creates a new instance of ERC721, bound to a specific deployed contract.
 14345  func NewERC721(address common.Address, backend bind.ContractBackend) (*ERC721, error) {
 14346  	contract, err := bindERC721(address, backend, backend, backend)
 14347  	if err != nil {
 14348  		return nil, err
 14349  	}
 14350  	return &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
 14351  }
 14352  
 14353  // NewERC721Caller creates a new read-only instance of ERC721, bound to a specific deployed contract.
 14354  func NewERC721Caller(address common.Address, caller bind.ContractCaller) (*ERC721Caller, error) {
 14355  	contract, err := bindERC721(address, caller, nil, nil)
 14356  	if err != nil {
 14357  		return nil, err
 14358  	}
 14359  	return &ERC721Caller{contract: contract}, nil
 14360  }
 14361  
 14362  // NewERC721Transactor creates a new write-only instance of ERC721, bound to a specific deployed contract.
 14363  func NewERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC721Transactor, error) {
 14364  	contract, err := bindERC721(address, nil, transactor, nil)
 14365  	if err != nil {
 14366  		return nil, err
 14367  	}
 14368  	return &ERC721Transactor{contract: contract}, nil
 14369  }
 14370  
 14371  // NewERC721Filterer creates a new log filterer instance of ERC721, bound to a specific deployed contract.
 14372  func NewERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC721Filterer, error) {
 14373  	contract, err := bindERC721(address, nil, nil, filterer)
 14374  	if err != nil {
 14375  		return nil, err
 14376  	}
 14377  	return &ERC721Filterer{contract: contract}, nil
 14378  }
 14379  
 14380  // bindERC721 binds a generic wrapper to an already deployed contract.
 14381  func bindERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 14382  	parsed, err := ERC721MetaData.GetAbi()
 14383  	if err != nil {
 14384  		return nil, err
 14385  	}
 14386  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 14387  }
 14388  
 14389  // Call invokes the (constant) contract method with params as input values and
 14390  // sets the output to result. The result type might be a single field for simple
 14391  // returns, a slice of interfaces for anonymous returns and a struct for named
 14392  // returns.
 14393  func (_ERC721 *ERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 14394  	return _ERC721.Contract.ERC721Caller.contract.Call(opts, result, method, params...)
 14395  }
 14396  
 14397  // Transfer initiates a plain transaction to move funds to the contract, calling
 14398  // its default method if one is available.
 14399  func (_ERC721 *ERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 14400  	return _ERC721.Contract.ERC721Transactor.contract.Transfer(opts)
 14401  }
 14402  
 14403  // Transact invokes the (paid) contract method with params as input values.
 14404  func (_ERC721 *ERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 14405  	return _ERC721.Contract.ERC721Transactor.contract.Transact(opts, method, params...)
 14406  }
 14407  
 14408  // Call invokes the (constant) contract method with params as input values and
 14409  // sets the output to result. The result type might be a single field for simple
 14410  // returns, a slice of interfaces for anonymous returns and a struct for named
 14411  // returns.
 14412  func (_ERC721 *ERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 14413  	return _ERC721.Contract.contract.Call(opts, result, method, params...)
 14414  }
 14415  
 14416  // Transfer initiates a plain transaction to move funds to the contract, calling
 14417  // its default method if one is available.
 14418  func (_ERC721 *ERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 14419  	return _ERC721.Contract.contract.Transfer(opts)
 14420  }
 14421  
 14422  // Transact invokes the (paid) contract method with params as input values.
 14423  func (_ERC721 *ERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 14424  	return _ERC721.Contract.contract.Transact(opts, method, params...)
 14425  }
 14426  
 14427  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 14428  //
 14429  // Solidity: function balanceOf(address owner) view returns(uint256)
 14430  func (_ERC721 *ERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 14431  	var out []interface{}
 14432  	err := _ERC721.contract.Call(opts, &out, "balanceOf", owner)
 14433  
 14434  	if err != nil {
 14435  		return *new(*big.Int), err
 14436  	}
 14437  
 14438  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 14439  
 14440  	return out0, err
 14441  
 14442  }
 14443  
 14444  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 14445  //
 14446  // Solidity: function balanceOf(address owner) view returns(uint256)
 14447  func (_ERC721 *ERC721Session) BalanceOf(owner common.Address) (*big.Int, error) {
 14448  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner)
 14449  }
 14450  
 14451  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 14452  //
 14453  // Solidity: function balanceOf(address owner) view returns(uint256)
 14454  func (_ERC721 *ERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 14455  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner)
 14456  }
 14457  
 14458  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 14459  //
 14460  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 14461  func (_ERC721 *ERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 14462  	var out []interface{}
 14463  	err := _ERC721.contract.Call(opts, &out, "getApproved", tokenId)
 14464  
 14465  	if err != nil {
 14466  		return *new(common.Address), err
 14467  	}
 14468  
 14469  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14470  
 14471  	return out0, err
 14472  
 14473  }
 14474  
 14475  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 14476  //
 14477  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 14478  func (_ERC721 *ERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
 14479  	return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId)
 14480  }
 14481  
 14482  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 14483  //
 14484  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 14485  func (_ERC721 *ERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 14486  	return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId)
 14487  }
 14488  
 14489  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 14490  //
 14491  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 14492  func (_ERC721 *ERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 14493  	var out []interface{}
 14494  	err := _ERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 14495  
 14496  	if err != nil {
 14497  		return *new(bool), err
 14498  	}
 14499  
 14500  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 14501  
 14502  	return out0, err
 14503  
 14504  }
 14505  
 14506  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 14507  //
 14508  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 14509  func (_ERC721 *ERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 14510  	return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator)
 14511  }
 14512  
 14513  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 14514  //
 14515  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 14516  func (_ERC721 *ERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 14517  	return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator)
 14518  }
 14519  
 14520  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 14521  //
 14522  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 14523  func (_ERC721 *ERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 14524  	var out []interface{}
 14525  	err := _ERC721.contract.Call(opts, &out, "ownerOf", tokenId)
 14526  
 14527  	if err != nil {
 14528  		return *new(common.Address), err
 14529  	}
 14530  
 14531  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14532  
 14533  	return out0, err
 14534  
 14535  }
 14536  
 14537  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 14538  //
 14539  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 14540  func (_ERC721 *ERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
 14541  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId)
 14542  }
 14543  
 14544  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 14545  //
 14546  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 14547  func (_ERC721 *ERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 14548  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId)
 14549  }
 14550  
 14551  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 14552  //
 14553  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 14554  func (_ERC721 *ERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 14555  	var out []interface{}
 14556  	err := _ERC721.contract.Call(opts, &out, "supportsInterface", interfaceId)
 14557  
 14558  	if err != nil {
 14559  		return *new(bool), err
 14560  	}
 14561  
 14562  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 14563  
 14564  	return out0, err
 14565  
 14566  }
 14567  
 14568  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 14569  //
 14570  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 14571  func (_ERC721 *ERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 14572  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId)
 14573  }
 14574  
 14575  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 14576  //
 14577  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 14578  func (_ERC721 *ERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 14579  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId)
 14580  }
 14581  
 14582  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14583  //
 14584  // Solidity: function approve(address to, uint256 tokenId) returns()
 14585  func (_ERC721 *ERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14586  	return _ERC721.contract.Transact(opts, "approve", to, tokenId)
 14587  }
 14588  
 14589  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14590  //
 14591  // Solidity: function approve(address to, uint256 tokenId) returns()
 14592  func (_ERC721 *ERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14593  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId)
 14594  }
 14595  
 14596  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14597  //
 14598  // Solidity: function approve(address to, uint256 tokenId) returns()
 14599  func (_ERC721 *ERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14600  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId)
 14601  }
 14602  
 14603  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 14604  //
 14605  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 14606  func (_ERC721 *ERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14607  	return _ERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 14608  }
 14609  
 14610  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 14611  //
 14612  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 14613  func (_ERC721 *ERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14614  	return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 14615  }
 14616  
 14617  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 14618  //
 14619  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 14620  func (_ERC721 *ERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14621  	return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 14622  }
 14623  
 14624  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 14625  //
 14626  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 14627  func (_ERC721 *ERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 14628  	return _ERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 14629  }
 14630  
 14631  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 14632  //
 14633  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 14634  func (_ERC721 *ERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 14635  	return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data)
 14636  }
 14637  
 14638  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 14639  //
 14640  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 14641  func (_ERC721 *ERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 14642  	return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data)
 14643  }
 14644  
 14645  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 14646  //
 14647  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 14648  func (_ERC721 *ERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 14649  	return _ERC721.contract.Transact(opts, "setApprovalForAll", to, approved)
 14650  }
 14651  
 14652  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 14653  //
 14654  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 14655  func (_ERC721 *ERC721Session) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 14656  	return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, to, approved)
 14657  }
 14658  
 14659  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 14660  //
 14661  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 14662  func (_ERC721 *ERC721TransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 14663  	return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, to, approved)
 14664  }
 14665  
 14666  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14667  //
 14668  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 14669  func (_ERC721 *ERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14670  	return _ERC721.contract.Transact(opts, "transferFrom", from, to, tokenId)
 14671  }
 14672  
 14673  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14674  //
 14675  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 14676  func (_ERC721 *ERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14677  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 14678  }
 14679  
 14680  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14681  //
 14682  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 14683  func (_ERC721 *ERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 14684  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 14685  }
 14686  
 14687  // ERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721 contract.
 14688  type ERC721ApprovalIterator struct {
 14689  	Event *ERC721Approval // Event containing the contract specifics and raw log
 14690  
 14691  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14692  	event    string              // Event name to use for unpacking event data
 14693  
 14694  	logs chan types.Log      // Log channel receiving the found contract events
 14695  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14696  	done bool                // Whether the subscription completed delivering logs
 14697  	fail error               // Occurred error to stop iteration
 14698  }
 14699  
 14700  // Next advances the iterator to the subsequent event, returning whether there
 14701  // are any more events found. In case of a retrieval or parsing error, false is
 14702  // returned and Error() can be queried for the exact failure.
 14703  func (it *ERC721ApprovalIterator) Next() bool {
 14704  	// If the iterator failed, stop iterating
 14705  	if it.fail != nil {
 14706  		return false
 14707  	}
 14708  	// If the iterator completed, deliver directly whatever's available
 14709  	if it.done {
 14710  		select {
 14711  		case log := <-it.logs:
 14712  			it.Event = new(ERC721Approval)
 14713  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14714  				it.fail = err
 14715  				return false
 14716  			}
 14717  			it.Event.Raw = log
 14718  			return true
 14719  
 14720  		default:
 14721  			return false
 14722  		}
 14723  	}
 14724  	// Iterator still in progress, wait for either a data or an error event
 14725  	select {
 14726  	case log := <-it.logs:
 14727  		it.Event = new(ERC721Approval)
 14728  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14729  			it.fail = err
 14730  			return false
 14731  		}
 14732  		it.Event.Raw = log
 14733  		return true
 14734  
 14735  	case err := <-it.sub.Err():
 14736  		it.done = true
 14737  		it.fail = err
 14738  		return it.Next()
 14739  	}
 14740  }
 14741  
 14742  // Error returns any retrieval or parsing error occurred during filtering.
 14743  func (it *ERC721ApprovalIterator) Error() error {
 14744  	return it.fail
 14745  }
 14746  
 14747  // Close terminates the iteration process, releasing any pending underlying
 14748  // resources.
 14749  func (it *ERC721ApprovalIterator) Close() error {
 14750  	it.sub.Unsubscribe()
 14751  	return nil
 14752  }
 14753  
 14754  // ERC721Approval represents a Approval event raised by the ERC721 contract.
 14755  type ERC721Approval struct {
 14756  	Owner    common.Address
 14757  	Approved common.Address
 14758  	TokenId  *big.Int
 14759  	Raw      types.Log // Blockchain specific contextual infos
 14760  }
 14761  
 14762  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14763  //
 14764  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 14765  func (_ERC721 *ERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721ApprovalIterator, error) {
 14766  
 14767  	var ownerRule []interface{}
 14768  	for _, ownerItem := range owner {
 14769  		ownerRule = append(ownerRule, ownerItem)
 14770  	}
 14771  	var approvedRule []interface{}
 14772  	for _, approvedItem := range approved {
 14773  		approvedRule = append(approvedRule, approvedItem)
 14774  	}
 14775  	var tokenIdRule []interface{}
 14776  	for _, tokenIdItem := range tokenId {
 14777  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 14778  	}
 14779  
 14780  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 14781  	if err != nil {
 14782  		return nil, err
 14783  	}
 14784  	return &ERC721ApprovalIterator{contract: _ERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
 14785  }
 14786  
 14787  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14788  //
 14789  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 14790  func (_ERC721 *ERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 14791  
 14792  	var ownerRule []interface{}
 14793  	for _, ownerItem := range owner {
 14794  		ownerRule = append(ownerRule, ownerItem)
 14795  	}
 14796  	var approvedRule []interface{}
 14797  	for _, approvedItem := range approved {
 14798  		approvedRule = append(approvedRule, approvedItem)
 14799  	}
 14800  	var tokenIdRule []interface{}
 14801  	for _, tokenIdItem := range tokenId {
 14802  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 14803  	}
 14804  
 14805  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 14806  	if err != nil {
 14807  		return nil, err
 14808  	}
 14809  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14810  		defer sub.Unsubscribe()
 14811  		for {
 14812  			select {
 14813  			case log := <-logs:
 14814  				// New log arrived, parse the event and forward to the user
 14815  				event := new(ERC721Approval)
 14816  				if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 14817  					return err
 14818  				}
 14819  				event.Raw = log
 14820  
 14821  				select {
 14822  				case sink <- event:
 14823  				case err := <-sub.Err():
 14824  					return err
 14825  				case <-quit:
 14826  					return nil
 14827  				}
 14828  			case err := <-sub.Err():
 14829  				return err
 14830  			case <-quit:
 14831  				return nil
 14832  			}
 14833  		}
 14834  	}), nil
 14835  }
 14836  
 14837  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14838  //
 14839  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 14840  func (_ERC721 *ERC721Filterer) ParseApproval(log types.Log) (*ERC721Approval, error) {
 14841  	event := new(ERC721Approval)
 14842  	if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 14843  		return nil, err
 14844  	}
 14845  	return event, nil
 14846  }
 14847  
 14848  // ERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721 contract.
 14849  type ERC721ApprovalForAllIterator struct {
 14850  	Event *ERC721ApprovalForAll // Event containing the contract specifics and raw log
 14851  
 14852  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14853  	event    string              // Event name to use for unpacking event data
 14854  
 14855  	logs chan types.Log      // Log channel receiving the found contract events
 14856  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14857  	done bool                // Whether the subscription completed delivering logs
 14858  	fail error               // Occurred error to stop iteration
 14859  }
 14860  
 14861  // Next advances the iterator to the subsequent event, returning whether there
 14862  // are any more events found. In case of a retrieval or parsing error, false is
 14863  // returned and Error() can be queried for the exact failure.
 14864  func (it *ERC721ApprovalForAllIterator) Next() bool {
 14865  	// If the iterator failed, stop iterating
 14866  	if it.fail != nil {
 14867  		return false
 14868  	}
 14869  	// If the iterator completed, deliver directly whatever's available
 14870  	if it.done {
 14871  		select {
 14872  		case log := <-it.logs:
 14873  			it.Event = new(ERC721ApprovalForAll)
 14874  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14875  				it.fail = err
 14876  				return false
 14877  			}
 14878  			it.Event.Raw = log
 14879  			return true
 14880  
 14881  		default:
 14882  			return false
 14883  		}
 14884  	}
 14885  	// Iterator still in progress, wait for either a data or an error event
 14886  	select {
 14887  	case log := <-it.logs:
 14888  		it.Event = new(ERC721ApprovalForAll)
 14889  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14890  			it.fail = err
 14891  			return false
 14892  		}
 14893  		it.Event.Raw = log
 14894  		return true
 14895  
 14896  	case err := <-it.sub.Err():
 14897  		it.done = true
 14898  		it.fail = err
 14899  		return it.Next()
 14900  	}
 14901  }
 14902  
 14903  // Error returns any retrieval or parsing error occurred during filtering.
 14904  func (it *ERC721ApprovalForAllIterator) Error() error {
 14905  	return it.fail
 14906  }
 14907  
 14908  // Close terminates the iteration process, releasing any pending underlying
 14909  // resources.
 14910  func (it *ERC721ApprovalForAllIterator) Close() error {
 14911  	it.sub.Unsubscribe()
 14912  	return nil
 14913  }
 14914  
 14915  // ERC721ApprovalForAll represents a ApprovalForAll event raised by the ERC721 contract.
 14916  type ERC721ApprovalForAll struct {
 14917  	Owner    common.Address
 14918  	Operator common.Address
 14919  	Approved bool
 14920  	Raw      types.Log // Blockchain specific contextual infos
 14921  }
 14922  
 14923  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 14924  //
 14925  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 14926  func (_ERC721 *ERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721ApprovalForAllIterator, error) {
 14927  
 14928  	var ownerRule []interface{}
 14929  	for _, ownerItem := range owner {
 14930  		ownerRule = append(ownerRule, ownerItem)
 14931  	}
 14932  	var operatorRule []interface{}
 14933  	for _, operatorItem := range operator {
 14934  		operatorRule = append(operatorRule, operatorItem)
 14935  	}
 14936  
 14937  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 14938  	if err != nil {
 14939  		return nil, err
 14940  	}
 14941  	return &ERC721ApprovalForAllIterator{contract: _ERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 14942  }
 14943  
 14944  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 14945  //
 14946  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 14947  func (_ERC721 *ERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 14948  
 14949  	var ownerRule []interface{}
 14950  	for _, ownerItem := range owner {
 14951  		ownerRule = append(ownerRule, ownerItem)
 14952  	}
 14953  	var operatorRule []interface{}
 14954  	for _, operatorItem := range operator {
 14955  		operatorRule = append(operatorRule, operatorItem)
 14956  	}
 14957  
 14958  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 14959  	if err != nil {
 14960  		return nil, err
 14961  	}
 14962  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14963  		defer sub.Unsubscribe()
 14964  		for {
 14965  			select {
 14966  			case log := <-logs:
 14967  				// New log arrived, parse the event and forward to the user
 14968  				event := new(ERC721ApprovalForAll)
 14969  				if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 14970  					return err
 14971  				}
 14972  				event.Raw = log
 14973  
 14974  				select {
 14975  				case sink <- event:
 14976  				case err := <-sub.Err():
 14977  					return err
 14978  				case <-quit:
 14979  					return nil
 14980  				}
 14981  			case err := <-sub.Err():
 14982  				return err
 14983  			case <-quit:
 14984  				return nil
 14985  			}
 14986  		}
 14987  	}), nil
 14988  }
 14989  
 14990  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 14991  //
 14992  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 14993  func (_ERC721 *ERC721Filterer) ParseApprovalForAll(log types.Log) (*ERC721ApprovalForAll, error) {
 14994  	event := new(ERC721ApprovalForAll)
 14995  	if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 14996  		return nil, err
 14997  	}
 14998  	return event, nil
 14999  }
 15000  
 15001  // ERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721 contract.
 15002  type ERC721TransferIterator struct {
 15003  	Event *ERC721Transfer // Event containing the contract specifics and raw log
 15004  
 15005  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15006  	event    string              // Event name to use for unpacking event data
 15007  
 15008  	logs chan types.Log      // Log channel receiving the found contract events
 15009  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 15010  	done bool                // Whether the subscription completed delivering logs
 15011  	fail error               // Occurred error to stop iteration
 15012  }
 15013  
 15014  // Next advances the iterator to the subsequent event, returning whether there
 15015  // are any more events found. In case of a retrieval or parsing error, false is
 15016  // returned and Error() can be queried for the exact failure.
 15017  func (it *ERC721TransferIterator) Next() bool {
 15018  	// If the iterator failed, stop iterating
 15019  	if it.fail != nil {
 15020  		return false
 15021  	}
 15022  	// If the iterator completed, deliver directly whatever's available
 15023  	if it.done {
 15024  		select {
 15025  		case log := <-it.logs:
 15026  			it.Event = new(ERC721Transfer)
 15027  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15028  				it.fail = err
 15029  				return false
 15030  			}
 15031  			it.Event.Raw = log
 15032  			return true
 15033  
 15034  		default:
 15035  			return false
 15036  		}
 15037  	}
 15038  	// Iterator still in progress, wait for either a data or an error event
 15039  	select {
 15040  	case log := <-it.logs:
 15041  		it.Event = new(ERC721Transfer)
 15042  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15043  			it.fail = err
 15044  			return false
 15045  		}
 15046  		it.Event.Raw = log
 15047  		return true
 15048  
 15049  	case err := <-it.sub.Err():
 15050  		it.done = true
 15051  		it.fail = err
 15052  		return it.Next()
 15053  	}
 15054  }
 15055  
 15056  // Error returns any retrieval or parsing error occurred during filtering.
 15057  func (it *ERC721TransferIterator) Error() error {
 15058  	return it.fail
 15059  }
 15060  
 15061  // Close terminates the iteration process, releasing any pending underlying
 15062  // resources.
 15063  func (it *ERC721TransferIterator) Close() error {
 15064  	it.sub.Unsubscribe()
 15065  	return nil
 15066  }
 15067  
 15068  // ERC721Transfer represents a Transfer event raised by the ERC721 contract.
 15069  type ERC721Transfer struct {
 15070  	From    common.Address
 15071  	To      common.Address
 15072  	TokenId *big.Int
 15073  	Raw     types.Log // Blockchain specific contextual infos
 15074  }
 15075  
 15076  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15077  //
 15078  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 15079  func (_ERC721 *ERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721TransferIterator, error) {
 15080  
 15081  	var fromRule []interface{}
 15082  	for _, fromItem := range from {
 15083  		fromRule = append(fromRule, fromItem)
 15084  	}
 15085  	var toRule []interface{}
 15086  	for _, toItem := range to {
 15087  		toRule = append(toRule, toItem)
 15088  	}
 15089  	var tokenIdRule []interface{}
 15090  	for _, tokenIdItem := range tokenId {
 15091  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 15092  	}
 15093  
 15094  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 15095  	if err != nil {
 15096  		return nil, err
 15097  	}
 15098  	return &ERC721TransferIterator{contract: _ERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
 15099  }
 15100  
 15101  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15102  //
 15103  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 15104  func (_ERC721 *ERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 15105  
 15106  	var fromRule []interface{}
 15107  	for _, fromItem := range from {
 15108  		fromRule = append(fromRule, fromItem)
 15109  	}
 15110  	var toRule []interface{}
 15111  	for _, toItem := range to {
 15112  		toRule = append(toRule, toItem)
 15113  	}
 15114  	var tokenIdRule []interface{}
 15115  	for _, tokenIdItem := range tokenId {
 15116  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 15117  	}
 15118  
 15119  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 15120  	if err != nil {
 15121  		return nil, err
 15122  	}
 15123  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15124  		defer sub.Unsubscribe()
 15125  		for {
 15126  			select {
 15127  			case log := <-logs:
 15128  				// New log arrived, parse the event and forward to the user
 15129  				event := new(ERC721Transfer)
 15130  				if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 15131  					return err
 15132  				}
 15133  				event.Raw = log
 15134  
 15135  				select {
 15136  				case sink <- event:
 15137  				case err := <-sub.Err():
 15138  					return err
 15139  				case <-quit:
 15140  					return nil
 15141  				}
 15142  			case err := <-sub.Err():
 15143  				return err
 15144  			case <-quit:
 15145  				return nil
 15146  			}
 15147  		}
 15148  	}), nil
 15149  }
 15150  
 15151  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15152  //
 15153  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 15154  func (_ERC721 *ERC721Filterer) ParseTransfer(log types.Log) (*ERC721Transfer, error) {
 15155  	event := new(ERC721Transfer)
 15156  	if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 15157  		return nil, err
 15158  	}
 15159  	return event, nil
 15160  }
 15161  
 15162  // ERC721BurnableMetaData contains all meta data concerning the ERC721Burnable contract.
 15163  var ERC721BurnableMetaData = &bind.MetaData{
 15164  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 15165  	Sigs: map[string]string{
 15166  		"095ea7b3": "approve(address,uint256)",
 15167  		"70a08231": "balanceOf(address)",
 15168  		"42966c68": "burn(uint256)",
 15169  		"081812fc": "getApproved(uint256)",
 15170  		"e985e9c5": "isApprovedForAll(address,address)",
 15171  		"6352211e": "ownerOf(uint256)",
 15172  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 15173  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 15174  		"a22cb465": "setApprovalForAll(address,bool)",
 15175  		"01ffc9a7": "supportsInterface(bytes4)",
 15176  		"23b872dd": "transferFrom(address,address,uint256)",
 15177  	},
 15178  	Bin: "0x608060405261001a6301ffc9a760e01b61003560201b60201c565b6100306380ac58cd60e01b61003560201b60201c565b610103565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610eff806101126000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c68146101bc5780636352211e146101d957806370a08231146101f6578063a22cb4651461022e578063b88d4fde1461025c578063e985e9c514610322576100a9565b806301ffc9a7146100ae578063081812fc146100e9578063095ea7b31461012257806323b872dd1461015057806342842e0e14610186575b600080fd5b6100d5600480360360208110156100c457600080fd5b50356001600160e01b031916610350565b604080519115158252519081900360200190f35b610106600480360360208110156100ff57600080fd5b503561036f565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603604081101561013857600080fd5b506001600160a01b0381351690602001356103d4565b005b61014e6004803603606081101561016657600080fd5b506001600160a01b038135811691602081013590911690604001356104eb565b61014e6004803603606081101561019c57600080fd5b506001600160a01b03813581169160208101359091169060400135610543565b61014e600480360360208110156101d257600080fd5b503561055e565b610106600480360360208110156101ef57600080fd5b50356105b2565b61021c6004803603602081101561020c57600080fd5b50356001600160a01b031661060f565b60408051918252519081900360200190f35b61014e6004803603604081101561024457600080fd5b506001600160a01b038135169060200135151561067a565b61014e6004803603608081101561027257600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610749945050505050565b6100d56004803603604081101561033857600080fd5b506001600160a01b03813581169160200135166107a4565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061037a826107d2565b6103b857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610dd8602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103df826105b2565b9050806001600160a01b0316836001600160a01b0316141561043557604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e2d6021913960400191505060405180910390fd5b336001600160a01b0382161480610451575061045181336107a4565b61048f57604051600160e51b62461bcd028152600401808060200182810382526038815260200180610d4d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104f533826107ef565b61053357604051600160e51b62461bcd028152600401808060200182810382526031815260200180610e4e6031913960400191505060405180910390fd5b61053e838383610896565b505050565b61053e83838360405180602001604052806000815250610749565b61056833826107ef565b6105a657604051600160e51b62461bcd028152600401808060200182810382526030815260200180610ea46030913960400191505060405180910390fd5b6105af816109e0565b50565b6000818152600160205260408120546001600160a01b03168061060957604051600160e51b62461bcd028152600401808060200182810382526029815260200180610daf6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661065957604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610d85602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610609906109f2565b6001600160a01b0382163314156106db5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6107548484846104eb565b610760848484846109f6565b61079e57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610ccb6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b60006107fa826107d2565b61083857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610d21602c913960400191505060405180910390fd5b6000610843836105b2565b9050806001600160a01b0316846001600160a01b0316148061087e5750836001600160a01b03166108738461036f565b6001600160a01b0316145b8061088e575061088e81856107a4565b949350505050565b826001600160a01b03166108a9826105b2565b6001600160a01b0316146108f157604051600160e51b62461bcd028152600401808060200182810382526029815260200180610e046029913960400191505060405180910390fd5b6001600160a01b03821661093957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610cfd6024913960400191505060405180910390fd5b61094281610b2f565b6001600160a01b038316600090815260036020526040902061096390610b6a565b6001600160a01b038216600090815260036020526040902061098490610b81565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105af6109ec826105b2565b82610b8a565b5490565b6000610a0a846001600160a01b0316610c64565b610a165750600161088e565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a93578181015183820152602001610a7b565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b0316156105af57600090815260026020526040902080546001600160a01b0319169055565b8054610b7d90600163ffffffff610c6a16565b9055565b80546001019055565b816001600160a01b0316610b9d826105b2565b6001600160a01b031614610be557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e7f6025913960400191505060405180910390fd5b610bee81610b2f565b6001600160a01b0382166000908152600360205260409020610c0f90610b6a565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b3b151590565b600082821115610cc45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200b2831a1feaad2f1c210200377a7ea891524c8e08250cec47ef805ccf70f5f8c0029",
 15179  }
 15180  
 15181  // ERC721BurnableABI is the input ABI used to generate the binding from.
 15182  // Deprecated: Use ERC721BurnableMetaData.ABI instead.
 15183  var ERC721BurnableABI = ERC721BurnableMetaData.ABI
 15184  
 15185  // ERC721BurnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 15186  const ERC721BurnableBinRuntime = `608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c68146101bc5780636352211e146101d957806370a08231146101f6578063a22cb4651461022e578063b88d4fde1461025c578063e985e9c514610322576100a9565b806301ffc9a7146100ae578063081812fc146100e9578063095ea7b31461012257806323b872dd1461015057806342842e0e14610186575b600080fd5b6100d5600480360360208110156100c457600080fd5b50356001600160e01b031916610350565b604080519115158252519081900360200190f35b610106600480360360208110156100ff57600080fd5b503561036f565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603604081101561013857600080fd5b506001600160a01b0381351690602001356103d4565b005b61014e6004803603606081101561016657600080fd5b506001600160a01b038135811691602081013590911690604001356104eb565b61014e6004803603606081101561019c57600080fd5b506001600160a01b03813581169160208101359091169060400135610543565b61014e600480360360208110156101d257600080fd5b503561055e565b610106600480360360208110156101ef57600080fd5b50356105b2565b61021c6004803603602081101561020c57600080fd5b50356001600160a01b031661060f565b60408051918252519081900360200190f35b61014e6004803603604081101561024457600080fd5b506001600160a01b038135169060200135151561067a565b61014e6004803603608081101561027257600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610749945050505050565b6100d56004803603604081101561033857600080fd5b506001600160a01b03813581169160200135166107a4565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061037a826107d2565b6103b857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610dd8602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103df826105b2565b9050806001600160a01b0316836001600160a01b0316141561043557604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e2d6021913960400191505060405180910390fd5b336001600160a01b0382161480610451575061045181336107a4565b61048f57604051600160e51b62461bcd028152600401808060200182810382526038815260200180610d4d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104f533826107ef565b61053357604051600160e51b62461bcd028152600401808060200182810382526031815260200180610e4e6031913960400191505060405180910390fd5b61053e838383610896565b505050565b61053e83838360405180602001604052806000815250610749565b61056833826107ef565b6105a657604051600160e51b62461bcd028152600401808060200182810382526030815260200180610ea46030913960400191505060405180910390fd5b6105af816109e0565b50565b6000818152600160205260408120546001600160a01b03168061060957604051600160e51b62461bcd028152600401808060200182810382526029815260200180610daf6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661065957604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610d85602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610609906109f2565b6001600160a01b0382163314156106db5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6107548484846104eb565b610760848484846109f6565b61079e57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610ccb6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b60006107fa826107d2565b61083857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610d21602c913960400191505060405180910390fd5b6000610843836105b2565b9050806001600160a01b0316846001600160a01b0316148061087e5750836001600160a01b03166108738461036f565b6001600160a01b0316145b8061088e575061088e81856107a4565b949350505050565b826001600160a01b03166108a9826105b2565b6001600160a01b0316146108f157604051600160e51b62461bcd028152600401808060200182810382526029815260200180610e046029913960400191505060405180910390fd5b6001600160a01b03821661093957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610cfd6024913960400191505060405180910390fd5b61094281610b2f565b6001600160a01b038316600090815260036020526040902061096390610b6a565b6001600160a01b038216600090815260036020526040902061098490610b81565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105af6109ec826105b2565b82610b8a565b5490565b6000610a0a846001600160a01b0316610c64565b610a165750600161088e565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a93578181015183820152602001610a7b565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b0316156105af57600090815260026020526040902080546001600160a01b0319169055565b8054610b7d90600163ffffffff610c6a16565b9055565b80546001019055565b816001600160a01b0316610b9d826105b2565b6001600160a01b031614610be557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e7f6025913960400191505060405180910390fd5b610bee81610b2f565b6001600160a01b0382166000908152600360205260409020610c0f90610b6a565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b3b151590565b600082821115610cc45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200b2831a1feaad2f1c210200377a7ea891524c8e08250cec47ef805ccf70f5f8c0029`
 15187  
 15188  // ERC721BurnableFuncSigs maps the 4-byte function signature to its string representation.
 15189  // Deprecated: Use ERC721BurnableMetaData.Sigs instead.
 15190  var ERC721BurnableFuncSigs = ERC721BurnableMetaData.Sigs
 15191  
 15192  // ERC721BurnableBin is the compiled bytecode used for deploying new contracts.
 15193  // Deprecated: Use ERC721BurnableMetaData.Bin instead.
 15194  var ERC721BurnableBin = ERC721BurnableMetaData.Bin
 15195  
 15196  // DeployERC721Burnable deploys a new Klaytn contract, binding an instance of ERC721Burnable to it.
 15197  func DeployERC721Burnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721Burnable, error) {
 15198  	parsed, err := ERC721BurnableMetaData.GetAbi()
 15199  	if err != nil {
 15200  		return common.Address{}, nil, nil, err
 15201  	}
 15202  	if parsed == nil {
 15203  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 15204  	}
 15205  
 15206  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721BurnableBin), backend)
 15207  	if err != nil {
 15208  		return common.Address{}, nil, nil, err
 15209  	}
 15210  	return address, tx, &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil
 15211  }
 15212  
 15213  // ERC721Burnable is an auto generated Go binding around a Klaytn contract.
 15214  type ERC721Burnable struct {
 15215  	ERC721BurnableCaller     // Read-only binding to the contract
 15216  	ERC721BurnableTransactor // Write-only binding to the contract
 15217  	ERC721BurnableFilterer   // Log filterer for contract events
 15218  }
 15219  
 15220  // ERC721BurnableCaller is an auto generated read-only Go binding around a Klaytn contract.
 15221  type ERC721BurnableCaller struct {
 15222  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15223  }
 15224  
 15225  // ERC721BurnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 15226  type ERC721BurnableTransactor struct {
 15227  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15228  }
 15229  
 15230  // ERC721BurnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 15231  type ERC721BurnableFilterer struct {
 15232  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15233  }
 15234  
 15235  // ERC721BurnableSession is an auto generated Go binding around a Klaytn contract,
 15236  // with pre-set call and transact options.
 15237  type ERC721BurnableSession struct {
 15238  	Contract     *ERC721Burnable   // Generic contract binding to set the session for
 15239  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 15240  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 15241  }
 15242  
 15243  // ERC721BurnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 15244  // with pre-set call options.
 15245  type ERC721BurnableCallerSession struct {
 15246  	Contract *ERC721BurnableCaller // Generic contract caller binding to set the session for
 15247  	CallOpts bind.CallOpts         // Call options to use throughout this session
 15248  }
 15249  
 15250  // ERC721BurnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 15251  // with pre-set transact options.
 15252  type ERC721BurnableTransactorSession struct {
 15253  	Contract     *ERC721BurnableTransactor // Generic contract transactor binding to set the session for
 15254  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 15255  }
 15256  
 15257  // ERC721BurnableRaw is an auto generated low-level Go binding around a Klaytn contract.
 15258  type ERC721BurnableRaw struct {
 15259  	Contract *ERC721Burnable // Generic contract binding to access the raw methods on
 15260  }
 15261  
 15262  // ERC721BurnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 15263  type ERC721BurnableCallerRaw struct {
 15264  	Contract *ERC721BurnableCaller // Generic read-only contract binding to access the raw methods on
 15265  }
 15266  
 15267  // ERC721BurnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 15268  type ERC721BurnableTransactorRaw struct {
 15269  	Contract *ERC721BurnableTransactor // Generic write-only contract binding to access the raw methods on
 15270  }
 15271  
 15272  // NewERC721Burnable creates a new instance of ERC721Burnable, bound to a specific deployed contract.
 15273  func NewERC721Burnable(address common.Address, backend bind.ContractBackend) (*ERC721Burnable, error) {
 15274  	contract, err := bindERC721Burnable(address, backend, backend, backend)
 15275  	if err != nil {
 15276  		return nil, err
 15277  	}
 15278  	return &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil
 15279  }
 15280  
 15281  // NewERC721BurnableCaller creates a new read-only instance of ERC721Burnable, bound to a specific deployed contract.
 15282  func NewERC721BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC721BurnableCaller, error) {
 15283  	contract, err := bindERC721Burnable(address, caller, nil, nil)
 15284  	if err != nil {
 15285  		return nil, err
 15286  	}
 15287  	return &ERC721BurnableCaller{contract: contract}, nil
 15288  }
 15289  
 15290  // NewERC721BurnableTransactor creates a new write-only instance of ERC721Burnable, bound to a specific deployed contract.
 15291  func NewERC721BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721BurnableTransactor, error) {
 15292  	contract, err := bindERC721Burnable(address, nil, transactor, nil)
 15293  	if err != nil {
 15294  		return nil, err
 15295  	}
 15296  	return &ERC721BurnableTransactor{contract: contract}, nil
 15297  }
 15298  
 15299  // NewERC721BurnableFilterer creates a new log filterer instance of ERC721Burnable, bound to a specific deployed contract.
 15300  func NewERC721BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721BurnableFilterer, error) {
 15301  	contract, err := bindERC721Burnable(address, nil, nil, filterer)
 15302  	if err != nil {
 15303  		return nil, err
 15304  	}
 15305  	return &ERC721BurnableFilterer{contract: contract}, nil
 15306  }
 15307  
 15308  // bindERC721Burnable binds a generic wrapper to an already deployed contract.
 15309  func bindERC721Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 15310  	parsed, err := ERC721BurnableMetaData.GetAbi()
 15311  	if err != nil {
 15312  		return nil, err
 15313  	}
 15314  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 15315  }
 15316  
 15317  // Call invokes the (constant) contract method with params as input values and
 15318  // sets the output to result. The result type might be a single field for simple
 15319  // returns, a slice of interfaces for anonymous returns and a struct for named
 15320  // returns.
 15321  func (_ERC721Burnable *ERC721BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15322  	return _ERC721Burnable.Contract.ERC721BurnableCaller.contract.Call(opts, result, method, params...)
 15323  }
 15324  
 15325  // Transfer initiates a plain transaction to move funds to the contract, calling
 15326  // its default method if one is available.
 15327  func (_ERC721Burnable *ERC721BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15328  	return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transfer(opts)
 15329  }
 15330  
 15331  // Transact invokes the (paid) contract method with params as input values.
 15332  func (_ERC721Burnable *ERC721BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15333  	return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transact(opts, method, params...)
 15334  }
 15335  
 15336  // Call invokes the (constant) contract method with params as input values and
 15337  // sets the output to result. The result type might be a single field for simple
 15338  // returns, a slice of interfaces for anonymous returns and a struct for named
 15339  // returns.
 15340  func (_ERC721Burnable *ERC721BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15341  	return _ERC721Burnable.Contract.contract.Call(opts, result, method, params...)
 15342  }
 15343  
 15344  // Transfer initiates a plain transaction to move funds to the contract, calling
 15345  // its default method if one is available.
 15346  func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15347  	return _ERC721Burnable.Contract.contract.Transfer(opts)
 15348  }
 15349  
 15350  // Transact invokes the (paid) contract method with params as input values.
 15351  func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15352  	return _ERC721Burnable.Contract.contract.Transact(opts, method, params...)
 15353  }
 15354  
 15355  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 15356  //
 15357  // Solidity: function balanceOf(address owner) view returns(uint256)
 15358  func (_ERC721Burnable *ERC721BurnableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 15359  	var out []interface{}
 15360  	err := _ERC721Burnable.contract.Call(opts, &out, "balanceOf", owner)
 15361  
 15362  	if err != nil {
 15363  		return *new(*big.Int), err
 15364  	}
 15365  
 15366  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 15367  
 15368  	return out0, err
 15369  
 15370  }
 15371  
 15372  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 15373  //
 15374  // Solidity: function balanceOf(address owner) view returns(uint256)
 15375  func (_ERC721Burnable *ERC721BurnableSession) BalanceOf(owner common.Address) (*big.Int, error) {
 15376  	return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner)
 15377  }
 15378  
 15379  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 15380  //
 15381  // Solidity: function balanceOf(address owner) view returns(uint256)
 15382  func (_ERC721Burnable *ERC721BurnableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 15383  	return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner)
 15384  }
 15385  
 15386  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 15387  //
 15388  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 15389  func (_ERC721Burnable *ERC721BurnableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 15390  	var out []interface{}
 15391  	err := _ERC721Burnable.contract.Call(opts, &out, "getApproved", tokenId)
 15392  
 15393  	if err != nil {
 15394  		return *new(common.Address), err
 15395  	}
 15396  
 15397  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15398  
 15399  	return out0, err
 15400  
 15401  }
 15402  
 15403  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 15404  //
 15405  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 15406  func (_ERC721Burnable *ERC721BurnableSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 15407  	return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId)
 15408  }
 15409  
 15410  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 15411  //
 15412  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 15413  func (_ERC721Burnable *ERC721BurnableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 15414  	return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId)
 15415  }
 15416  
 15417  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 15418  //
 15419  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 15420  func (_ERC721Burnable *ERC721BurnableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 15421  	var out []interface{}
 15422  	err := _ERC721Burnable.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 15423  
 15424  	if err != nil {
 15425  		return *new(bool), err
 15426  	}
 15427  
 15428  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15429  
 15430  	return out0, err
 15431  
 15432  }
 15433  
 15434  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 15435  //
 15436  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 15437  func (_ERC721Burnable *ERC721BurnableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 15438  	return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator)
 15439  }
 15440  
 15441  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 15442  //
 15443  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 15444  func (_ERC721Burnable *ERC721BurnableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 15445  	return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator)
 15446  }
 15447  
 15448  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 15449  //
 15450  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 15451  func (_ERC721Burnable *ERC721BurnableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 15452  	var out []interface{}
 15453  	err := _ERC721Burnable.contract.Call(opts, &out, "ownerOf", tokenId)
 15454  
 15455  	if err != nil {
 15456  		return *new(common.Address), err
 15457  	}
 15458  
 15459  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15460  
 15461  	return out0, err
 15462  
 15463  }
 15464  
 15465  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 15466  //
 15467  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 15468  func (_ERC721Burnable *ERC721BurnableSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 15469  	return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId)
 15470  }
 15471  
 15472  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 15473  //
 15474  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 15475  func (_ERC721Burnable *ERC721BurnableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 15476  	return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId)
 15477  }
 15478  
 15479  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 15480  //
 15481  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 15482  func (_ERC721Burnable *ERC721BurnableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 15483  	var out []interface{}
 15484  	err := _ERC721Burnable.contract.Call(opts, &out, "supportsInterface", interfaceId)
 15485  
 15486  	if err != nil {
 15487  		return *new(bool), err
 15488  	}
 15489  
 15490  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15491  
 15492  	return out0, err
 15493  
 15494  }
 15495  
 15496  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 15497  //
 15498  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 15499  func (_ERC721Burnable *ERC721BurnableSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 15500  	return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId)
 15501  }
 15502  
 15503  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 15504  //
 15505  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 15506  func (_ERC721Burnable *ERC721BurnableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 15507  	return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId)
 15508  }
 15509  
 15510  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 15511  //
 15512  // Solidity: function approve(address to, uint256 tokenId) returns()
 15513  func (_ERC721Burnable *ERC721BurnableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15514  	return _ERC721Burnable.contract.Transact(opts, "approve", to, tokenId)
 15515  }
 15516  
 15517  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 15518  //
 15519  // Solidity: function approve(address to, uint256 tokenId) returns()
 15520  func (_ERC721Burnable *ERC721BurnableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15521  	return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId)
 15522  }
 15523  
 15524  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 15525  //
 15526  // Solidity: function approve(address to, uint256 tokenId) returns()
 15527  func (_ERC721Burnable *ERC721BurnableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15528  	return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId)
 15529  }
 15530  
 15531  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 15532  //
 15533  // Solidity: function burn(uint256 tokenId) returns()
 15534  func (_ERC721Burnable *ERC721BurnableTransactor) Burn(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) {
 15535  	return _ERC721Burnable.contract.Transact(opts, "burn", tokenId)
 15536  }
 15537  
 15538  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 15539  //
 15540  // Solidity: function burn(uint256 tokenId) returns()
 15541  func (_ERC721Burnable *ERC721BurnableSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
 15542  	return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId)
 15543  }
 15544  
 15545  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 15546  //
 15547  // Solidity: function burn(uint256 tokenId) returns()
 15548  func (_ERC721Burnable *ERC721BurnableTransactorSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
 15549  	return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId)
 15550  }
 15551  
 15552  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 15553  //
 15554  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 15555  func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15556  	return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 15557  }
 15558  
 15559  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 15560  //
 15561  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 15562  func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15563  	return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 15564  }
 15565  
 15566  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 15567  //
 15568  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 15569  func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15570  	return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 15571  }
 15572  
 15573  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 15574  //
 15575  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 15576  func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 15577  	return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 15578  }
 15579  
 15580  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 15581  //
 15582  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 15583  func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 15584  	return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data)
 15585  }
 15586  
 15587  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 15588  //
 15589  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 15590  func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 15591  	return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data)
 15592  }
 15593  
 15594  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 15595  //
 15596  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 15597  func (_ERC721Burnable *ERC721BurnableTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 15598  	return _ERC721Burnable.contract.Transact(opts, "setApprovalForAll", to, approved)
 15599  }
 15600  
 15601  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 15602  //
 15603  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 15604  func (_ERC721Burnable *ERC721BurnableSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 15605  	return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, to, approved)
 15606  }
 15607  
 15608  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 15609  //
 15610  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 15611  func (_ERC721Burnable *ERC721BurnableTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 15612  	return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, to, approved)
 15613  }
 15614  
 15615  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 15616  //
 15617  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 15618  func (_ERC721Burnable *ERC721BurnableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15619  	return _ERC721Burnable.contract.Transact(opts, "transferFrom", from, to, tokenId)
 15620  }
 15621  
 15622  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 15623  //
 15624  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 15625  func (_ERC721Burnable *ERC721BurnableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15626  	return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 15627  }
 15628  
 15629  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 15630  //
 15631  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 15632  func (_ERC721Burnable *ERC721BurnableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 15633  	return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 15634  }
 15635  
 15636  // ERC721BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721Burnable contract.
 15637  type ERC721BurnableApprovalIterator struct {
 15638  	Event *ERC721BurnableApproval // Event containing the contract specifics and raw log
 15639  
 15640  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15641  	event    string              // Event name to use for unpacking event data
 15642  
 15643  	logs chan types.Log      // Log channel receiving the found contract events
 15644  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 15645  	done bool                // Whether the subscription completed delivering logs
 15646  	fail error               // Occurred error to stop iteration
 15647  }
 15648  
 15649  // Next advances the iterator to the subsequent event, returning whether there
 15650  // are any more events found. In case of a retrieval or parsing error, false is
 15651  // returned and Error() can be queried for the exact failure.
 15652  func (it *ERC721BurnableApprovalIterator) Next() bool {
 15653  	// If the iterator failed, stop iterating
 15654  	if it.fail != nil {
 15655  		return false
 15656  	}
 15657  	// If the iterator completed, deliver directly whatever's available
 15658  	if it.done {
 15659  		select {
 15660  		case log := <-it.logs:
 15661  			it.Event = new(ERC721BurnableApproval)
 15662  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15663  				it.fail = err
 15664  				return false
 15665  			}
 15666  			it.Event.Raw = log
 15667  			return true
 15668  
 15669  		default:
 15670  			return false
 15671  		}
 15672  	}
 15673  	// Iterator still in progress, wait for either a data or an error event
 15674  	select {
 15675  	case log := <-it.logs:
 15676  		it.Event = new(ERC721BurnableApproval)
 15677  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15678  			it.fail = err
 15679  			return false
 15680  		}
 15681  		it.Event.Raw = log
 15682  		return true
 15683  
 15684  	case err := <-it.sub.Err():
 15685  		it.done = true
 15686  		it.fail = err
 15687  		return it.Next()
 15688  	}
 15689  }
 15690  
 15691  // Error returns any retrieval or parsing error occurred during filtering.
 15692  func (it *ERC721BurnableApprovalIterator) Error() error {
 15693  	return it.fail
 15694  }
 15695  
 15696  // Close terminates the iteration process, releasing any pending underlying
 15697  // resources.
 15698  func (it *ERC721BurnableApprovalIterator) Close() error {
 15699  	it.sub.Unsubscribe()
 15700  	return nil
 15701  }
 15702  
 15703  // ERC721BurnableApproval represents a Approval event raised by the ERC721Burnable contract.
 15704  type ERC721BurnableApproval struct {
 15705  	Owner    common.Address
 15706  	Approved common.Address
 15707  	TokenId  *big.Int
 15708  	Raw      types.Log // Blockchain specific contextual infos
 15709  }
 15710  
 15711  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 15712  //
 15713  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 15714  func (_ERC721Burnable *ERC721BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721BurnableApprovalIterator, error) {
 15715  
 15716  	var ownerRule []interface{}
 15717  	for _, ownerItem := range owner {
 15718  		ownerRule = append(ownerRule, ownerItem)
 15719  	}
 15720  	var approvedRule []interface{}
 15721  	for _, approvedItem := range approved {
 15722  		approvedRule = append(approvedRule, approvedItem)
 15723  	}
 15724  	var tokenIdRule []interface{}
 15725  	for _, tokenIdItem := range tokenId {
 15726  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 15727  	}
 15728  
 15729  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 15730  	if err != nil {
 15731  		return nil, err
 15732  	}
 15733  	return &ERC721BurnableApprovalIterator{contract: _ERC721Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil
 15734  }
 15735  
 15736  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 15737  //
 15738  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 15739  func (_ERC721Burnable *ERC721BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 15740  
 15741  	var ownerRule []interface{}
 15742  	for _, ownerItem := range owner {
 15743  		ownerRule = append(ownerRule, ownerItem)
 15744  	}
 15745  	var approvedRule []interface{}
 15746  	for _, approvedItem := range approved {
 15747  		approvedRule = append(approvedRule, approvedItem)
 15748  	}
 15749  	var tokenIdRule []interface{}
 15750  	for _, tokenIdItem := range tokenId {
 15751  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 15752  	}
 15753  
 15754  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 15755  	if err != nil {
 15756  		return nil, err
 15757  	}
 15758  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15759  		defer sub.Unsubscribe()
 15760  		for {
 15761  			select {
 15762  			case log := <-logs:
 15763  				// New log arrived, parse the event and forward to the user
 15764  				event := new(ERC721BurnableApproval)
 15765  				if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 15766  					return err
 15767  				}
 15768  				event.Raw = log
 15769  
 15770  				select {
 15771  				case sink <- event:
 15772  				case err := <-sub.Err():
 15773  					return err
 15774  				case <-quit:
 15775  					return nil
 15776  				}
 15777  			case err := <-sub.Err():
 15778  				return err
 15779  			case <-quit:
 15780  				return nil
 15781  			}
 15782  		}
 15783  	}), nil
 15784  }
 15785  
 15786  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 15787  //
 15788  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 15789  func (_ERC721Burnable *ERC721BurnableFilterer) ParseApproval(log types.Log) (*ERC721BurnableApproval, error) {
 15790  	event := new(ERC721BurnableApproval)
 15791  	if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 15792  		return nil, err
 15793  	}
 15794  	return event, nil
 15795  }
 15796  
 15797  // ERC721BurnableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721Burnable contract.
 15798  type ERC721BurnableApprovalForAllIterator struct {
 15799  	Event *ERC721BurnableApprovalForAll // Event containing the contract specifics and raw log
 15800  
 15801  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15802  	event    string              // Event name to use for unpacking event data
 15803  
 15804  	logs chan types.Log      // Log channel receiving the found contract events
 15805  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 15806  	done bool                // Whether the subscription completed delivering logs
 15807  	fail error               // Occurred error to stop iteration
 15808  }
 15809  
 15810  // Next advances the iterator to the subsequent event, returning whether there
 15811  // are any more events found. In case of a retrieval or parsing error, false is
 15812  // returned and Error() can be queried for the exact failure.
 15813  func (it *ERC721BurnableApprovalForAllIterator) Next() bool {
 15814  	// If the iterator failed, stop iterating
 15815  	if it.fail != nil {
 15816  		return false
 15817  	}
 15818  	// If the iterator completed, deliver directly whatever's available
 15819  	if it.done {
 15820  		select {
 15821  		case log := <-it.logs:
 15822  			it.Event = new(ERC721BurnableApprovalForAll)
 15823  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15824  				it.fail = err
 15825  				return false
 15826  			}
 15827  			it.Event.Raw = log
 15828  			return true
 15829  
 15830  		default:
 15831  			return false
 15832  		}
 15833  	}
 15834  	// Iterator still in progress, wait for either a data or an error event
 15835  	select {
 15836  	case log := <-it.logs:
 15837  		it.Event = new(ERC721BurnableApprovalForAll)
 15838  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15839  			it.fail = err
 15840  			return false
 15841  		}
 15842  		it.Event.Raw = log
 15843  		return true
 15844  
 15845  	case err := <-it.sub.Err():
 15846  		it.done = true
 15847  		it.fail = err
 15848  		return it.Next()
 15849  	}
 15850  }
 15851  
 15852  // Error returns any retrieval or parsing error occurred during filtering.
 15853  func (it *ERC721BurnableApprovalForAllIterator) Error() error {
 15854  	return it.fail
 15855  }
 15856  
 15857  // Close terminates the iteration process, releasing any pending underlying
 15858  // resources.
 15859  func (it *ERC721BurnableApprovalForAllIterator) Close() error {
 15860  	it.sub.Unsubscribe()
 15861  	return nil
 15862  }
 15863  
 15864  // ERC721BurnableApprovalForAll represents a ApprovalForAll event raised by the ERC721Burnable contract.
 15865  type ERC721BurnableApprovalForAll struct {
 15866  	Owner    common.Address
 15867  	Operator common.Address
 15868  	Approved bool
 15869  	Raw      types.Log // Blockchain specific contextual infos
 15870  }
 15871  
 15872  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 15873  //
 15874  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 15875  func (_ERC721Burnable *ERC721BurnableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721BurnableApprovalForAllIterator, error) {
 15876  
 15877  	var ownerRule []interface{}
 15878  	for _, ownerItem := range owner {
 15879  		ownerRule = append(ownerRule, ownerItem)
 15880  	}
 15881  	var operatorRule []interface{}
 15882  	for _, operatorItem := range operator {
 15883  		operatorRule = append(operatorRule, operatorItem)
 15884  	}
 15885  
 15886  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 15887  	if err != nil {
 15888  		return nil, err
 15889  	}
 15890  	return &ERC721BurnableApprovalForAllIterator{contract: _ERC721Burnable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 15891  }
 15892  
 15893  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 15894  //
 15895  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 15896  func (_ERC721Burnable *ERC721BurnableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 15897  
 15898  	var ownerRule []interface{}
 15899  	for _, ownerItem := range owner {
 15900  		ownerRule = append(ownerRule, ownerItem)
 15901  	}
 15902  	var operatorRule []interface{}
 15903  	for _, operatorItem := range operator {
 15904  		operatorRule = append(operatorRule, operatorItem)
 15905  	}
 15906  
 15907  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 15908  	if err != nil {
 15909  		return nil, err
 15910  	}
 15911  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15912  		defer sub.Unsubscribe()
 15913  		for {
 15914  			select {
 15915  			case log := <-logs:
 15916  				// New log arrived, parse the event and forward to the user
 15917  				event := new(ERC721BurnableApprovalForAll)
 15918  				if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 15919  					return err
 15920  				}
 15921  				event.Raw = log
 15922  
 15923  				select {
 15924  				case sink <- event:
 15925  				case err := <-sub.Err():
 15926  					return err
 15927  				case <-quit:
 15928  					return nil
 15929  				}
 15930  			case err := <-sub.Err():
 15931  				return err
 15932  			case <-quit:
 15933  				return nil
 15934  			}
 15935  		}
 15936  	}), nil
 15937  }
 15938  
 15939  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 15940  //
 15941  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 15942  func (_ERC721Burnable *ERC721BurnableFilterer) ParseApprovalForAll(log types.Log) (*ERC721BurnableApprovalForAll, error) {
 15943  	event := new(ERC721BurnableApprovalForAll)
 15944  	if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 15945  		return nil, err
 15946  	}
 15947  	return event, nil
 15948  }
 15949  
 15950  // ERC721BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721Burnable contract.
 15951  type ERC721BurnableTransferIterator struct {
 15952  	Event *ERC721BurnableTransfer // Event containing the contract specifics and raw log
 15953  
 15954  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15955  	event    string              // Event name to use for unpacking event data
 15956  
 15957  	logs chan types.Log      // Log channel receiving the found contract events
 15958  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 15959  	done bool                // Whether the subscription completed delivering logs
 15960  	fail error               // Occurred error to stop iteration
 15961  }
 15962  
 15963  // Next advances the iterator to the subsequent event, returning whether there
 15964  // are any more events found. In case of a retrieval or parsing error, false is
 15965  // returned and Error() can be queried for the exact failure.
 15966  func (it *ERC721BurnableTransferIterator) Next() bool {
 15967  	// If the iterator failed, stop iterating
 15968  	if it.fail != nil {
 15969  		return false
 15970  	}
 15971  	// If the iterator completed, deliver directly whatever's available
 15972  	if it.done {
 15973  		select {
 15974  		case log := <-it.logs:
 15975  			it.Event = new(ERC721BurnableTransfer)
 15976  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15977  				it.fail = err
 15978  				return false
 15979  			}
 15980  			it.Event.Raw = log
 15981  			return true
 15982  
 15983  		default:
 15984  			return false
 15985  		}
 15986  	}
 15987  	// Iterator still in progress, wait for either a data or an error event
 15988  	select {
 15989  	case log := <-it.logs:
 15990  		it.Event = new(ERC721BurnableTransfer)
 15991  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15992  			it.fail = err
 15993  			return false
 15994  		}
 15995  		it.Event.Raw = log
 15996  		return true
 15997  
 15998  	case err := <-it.sub.Err():
 15999  		it.done = true
 16000  		it.fail = err
 16001  		return it.Next()
 16002  	}
 16003  }
 16004  
 16005  // Error returns any retrieval or parsing error occurred during filtering.
 16006  func (it *ERC721BurnableTransferIterator) Error() error {
 16007  	return it.fail
 16008  }
 16009  
 16010  // Close terminates the iteration process, releasing any pending underlying
 16011  // resources.
 16012  func (it *ERC721BurnableTransferIterator) Close() error {
 16013  	it.sub.Unsubscribe()
 16014  	return nil
 16015  }
 16016  
 16017  // ERC721BurnableTransfer represents a Transfer event raised by the ERC721Burnable contract.
 16018  type ERC721BurnableTransfer struct {
 16019  	From    common.Address
 16020  	To      common.Address
 16021  	TokenId *big.Int
 16022  	Raw     types.Log // Blockchain specific contextual infos
 16023  }
 16024  
 16025  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 16026  //
 16027  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 16028  func (_ERC721Burnable *ERC721BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721BurnableTransferIterator, error) {
 16029  
 16030  	var fromRule []interface{}
 16031  	for _, fromItem := range from {
 16032  		fromRule = append(fromRule, fromItem)
 16033  	}
 16034  	var toRule []interface{}
 16035  	for _, toItem := range to {
 16036  		toRule = append(toRule, toItem)
 16037  	}
 16038  	var tokenIdRule []interface{}
 16039  	for _, tokenIdItem := range tokenId {
 16040  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 16041  	}
 16042  
 16043  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 16044  	if err != nil {
 16045  		return nil, err
 16046  	}
 16047  	return &ERC721BurnableTransferIterator{contract: _ERC721Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 16048  }
 16049  
 16050  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 16051  //
 16052  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 16053  func (_ERC721Burnable *ERC721BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721BurnableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 16054  
 16055  	var fromRule []interface{}
 16056  	for _, fromItem := range from {
 16057  		fromRule = append(fromRule, fromItem)
 16058  	}
 16059  	var toRule []interface{}
 16060  	for _, toItem := range to {
 16061  		toRule = append(toRule, toItem)
 16062  	}
 16063  	var tokenIdRule []interface{}
 16064  	for _, tokenIdItem := range tokenId {
 16065  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 16066  	}
 16067  
 16068  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 16069  	if err != nil {
 16070  		return nil, err
 16071  	}
 16072  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16073  		defer sub.Unsubscribe()
 16074  		for {
 16075  			select {
 16076  			case log := <-logs:
 16077  				// New log arrived, parse the event and forward to the user
 16078  				event := new(ERC721BurnableTransfer)
 16079  				if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 16080  					return err
 16081  				}
 16082  				event.Raw = log
 16083  
 16084  				select {
 16085  				case sink <- event:
 16086  				case err := <-sub.Err():
 16087  					return err
 16088  				case <-quit:
 16089  					return nil
 16090  				}
 16091  			case err := <-sub.Err():
 16092  				return err
 16093  			case <-quit:
 16094  				return nil
 16095  			}
 16096  		}
 16097  	}), nil
 16098  }
 16099  
 16100  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 16101  //
 16102  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 16103  func (_ERC721Burnable *ERC721BurnableFilterer) ParseTransfer(log types.Log) (*ERC721BurnableTransfer, error) {
 16104  	event := new(ERC721BurnableTransfer)
 16105  	if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 16106  		return nil, err
 16107  	}
 16108  	return event, nil
 16109  }
 16110  
 16111  // ERC721MetadataMetaData contains all meta data concerning the ERC721Metadata contract.
 16112  var ERC721MetadataMetaData = &bind.MetaData{
 16113  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 16114  	Sigs: map[string]string{
 16115  		"095ea7b3": "approve(address,uint256)",
 16116  		"70a08231": "balanceOf(address)",
 16117  		"081812fc": "getApproved(uint256)",
 16118  		"e985e9c5": "isApprovedForAll(address,address)",
 16119  		"06fdde03": "name()",
 16120  		"6352211e": "ownerOf(uint256)",
 16121  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 16122  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 16123  		"a22cb465": "setApprovalForAll(address,bool)",
 16124  		"01ffc9a7": "supportsInterface(bytes4)",
 16125  		"95d89b41": "symbol()",
 16126  		"c87b56dd": "tokenURI(uint256)",
 16127  		"23b872dd": "transferFrom(address,address,uint256)",
 16128  	},
 16129  	Bin: "0x60806040523480156200001157600080fd5b50604051620012f8380380620012f8833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505092919060200180516401000000008111156200009c57600080fd5b82016020810184811115620000b057600080fd5b8151640100000000811182820187101715620000cb57600080fd5b5050929190505050620000eb6301ffc9a760e01b6200014f60201b60201c565b620001036380ac58cd60e01b6200014f60201b60201c565b8151620001189060059060208501906200021e565b5080516200012e9060069060208401906200021e565b5062000147635b5e139f60e01b6200014f60201b60201c565b5050620002c3565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026157805160ff191683800117855562000291565b8280016001018555821562000291579182015b828111156200029157825182559160200191906001019062000274565b506200029f929150620002a3565b5090565b620002c091905b808211156200029f5760008155600101620002aa565b90565b61102580620002d36000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146102bc578063b88d4fde146102ea578063c87b56dd146103b0578063e985e9c5146103cd576100cf565b80636352211e1461025f57806370a082311461027c57806395d89b41146102b4576100cf565b806301ffc9a7146100d457806306fdde031461010f578063081812fc1461018c578063095ea7b3146101c557806323b872dd146101f357806342842e0e14610229575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103fb565b604080519115158252519081900360200190f35b61011761041a565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a9600480360360208110156101a257600080fd5b50356104b0565b604080516001600160a01b039092168252519081900360200190f35b6101f1600480360360408110156101db57600080fd5b506001600160a01b038135169060200135610515565b005b6101f16004803603606081101561020957600080fd5b506001600160a01b0381358116916020810135909116906040013561062c565b6101f16004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610684565b6101a96004803603602081101561027557600080fd5b503561069f565b6102a26004803603602081101561029257600080fd5b50356001600160a01b03166106fc565b60408051918252519081900360200190f35b610117610767565b6101f1600480360360408110156102d257600080fd5b506001600160a01b03813516906020013515156107c8565b6101f16004803603608081101561030057600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561033b57600080fd5b82018360208201111561034d57600080fd5b8035906020019184600183028401116401000000008311171561036f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610897945050505050565b610117600480360360208110156103c657600080fd5b50356108f2565b6100fb600480360360408110156103e357600080fd5b506001600160a01b03813581169160200135166109da565b6001600160e01b03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b60006104bb82610a08565b6104f957604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610f24602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006105208261069f565b9050806001600160a01b0316836001600160a01b0316141561057657604051600160e51b62461bcd028152600401808060200182810382526021815260200180610fa86021913960400191505060405180910390fd5b336001600160a01b0382161480610592575061059281336109da565b6105d057604051600160e51b62461bcd028152600401808060200182810382526038815260200180610e996038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6106363382610a25565b61067457604051600160e51b62461bcd028152600401808060200182810382526031815260200180610fc96031913960400191505060405180910390fd5b61067f838383610acc565b505050565b61067f83838360405180602001604052806000815250610897565b6000818152600160205260408120546001600160a01b0316806106f657604051600160e51b62461bcd028152600401808060200182810382526029815260200180610efb6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661074657604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610ed1602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206106f690610c16565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b6001600160a01b0382163314156108295760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6108a284848461062c565b6108ae84848484610c1a565b6108ec57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610e176032913960400191505060405180910390fd5b50505050565b60606108fd82610a08565b61093b57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180610f79602f913960400191505060405180910390fd5b60008281526007602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109ce5780601f106109a3576101008083540402835291602001916109ce565b820191906000526020600020905b8154815290600101906020018083116109b157829003601f168201915b50505050509050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b6000610a3082610a08565b610a6e57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610e6d602c913960400191505060405180910390fd5b6000610a798361069f565b9050806001600160a01b0316846001600160a01b03161480610ab45750836001600160a01b0316610aa9846104b0565b6001600160a01b0316145b80610ac45750610ac481856109da565b949350505050565b826001600160a01b0316610adf8261069f565b6001600160a01b031614610b2757604051600160e51b62461bcd028152600401808060200182810382526029815260200180610f506029913960400191505060405180910390fd5b6001600160a01b038216610b6f57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e496024913960400191505060405180910390fd5b610b7881610d53565b6001600160a01b0383166000908152600360205260409020610b9990610d90565b6001600160a01b0382166000908152600360205260409020610bba90610da7565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b6000610c2e846001600160a01b0316610db0565b610c3a57506001610ac4565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610cb7578181015183820152602001610c9f565b50505050905090810190601f168015610ce45780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610d8d57600081815260026020526040902080546001600160a01b03191690555b50565b8054610da390600163ffffffff610db616565b9055565b80546001019055565b3b151590565b600082821115610e105760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058209631ba5ee0489ecf58b1ed6edf174b73a3e5afd9e09cd92d7c38448a275e41090029",
 16130  }
 16131  
 16132  // ERC721MetadataABI is the input ABI used to generate the binding from.
 16133  // Deprecated: Use ERC721MetadataMetaData.ABI instead.
 16134  var ERC721MetadataABI = ERC721MetadataMetaData.ABI
 16135  
 16136  // ERC721MetadataBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 16137  const ERC721MetadataBinRuntime = `608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146102bc578063b88d4fde146102ea578063c87b56dd146103b0578063e985e9c5146103cd576100cf565b80636352211e1461025f57806370a082311461027c57806395d89b41146102b4576100cf565b806301ffc9a7146100d457806306fdde031461010f578063081812fc1461018c578063095ea7b3146101c557806323b872dd146101f357806342842e0e14610229575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103fb565b604080519115158252519081900360200190f35b61011761041a565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a9600480360360208110156101a257600080fd5b50356104b0565b604080516001600160a01b039092168252519081900360200190f35b6101f1600480360360408110156101db57600080fd5b506001600160a01b038135169060200135610515565b005b6101f16004803603606081101561020957600080fd5b506001600160a01b0381358116916020810135909116906040013561062c565b6101f16004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610684565b6101a96004803603602081101561027557600080fd5b503561069f565b6102a26004803603602081101561029257600080fd5b50356001600160a01b03166106fc565b60408051918252519081900360200190f35b610117610767565b6101f1600480360360408110156102d257600080fd5b506001600160a01b03813516906020013515156107c8565b6101f16004803603608081101561030057600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561033b57600080fd5b82018360208201111561034d57600080fd5b8035906020019184600183028401116401000000008311171561036f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610897945050505050565b610117600480360360208110156103c657600080fd5b50356108f2565b6100fb600480360360408110156103e357600080fd5b506001600160a01b03813581169160200135166109da565b6001600160e01b03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b60006104bb82610a08565b6104f957604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610f24602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006105208261069f565b9050806001600160a01b0316836001600160a01b0316141561057657604051600160e51b62461bcd028152600401808060200182810382526021815260200180610fa86021913960400191505060405180910390fd5b336001600160a01b0382161480610592575061059281336109da565b6105d057604051600160e51b62461bcd028152600401808060200182810382526038815260200180610e996038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6106363382610a25565b61067457604051600160e51b62461bcd028152600401808060200182810382526031815260200180610fc96031913960400191505060405180910390fd5b61067f838383610acc565b505050565b61067f83838360405180602001604052806000815250610897565b6000818152600160205260408120546001600160a01b0316806106f657604051600160e51b62461bcd028152600401808060200182810382526029815260200180610efb6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661074657604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610ed1602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206106f690610c16565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b6001600160a01b0382163314156108295760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6108a284848461062c565b6108ae84848484610c1a565b6108ec57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610e176032913960400191505060405180910390fd5b50505050565b60606108fd82610a08565b61093b57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180610f79602f913960400191505060405180910390fd5b60008281526007602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109ce5780601f106109a3576101008083540402835291602001916109ce565b820191906000526020600020905b8154815290600101906020018083116109b157829003601f168201915b50505050509050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b6000610a3082610a08565b610a6e57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610e6d602c913960400191505060405180910390fd5b6000610a798361069f565b9050806001600160a01b0316846001600160a01b03161480610ab45750836001600160a01b0316610aa9846104b0565b6001600160a01b0316145b80610ac45750610ac481856109da565b949350505050565b826001600160a01b0316610adf8261069f565b6001600160a01b031614610b2757604051600160e51b62461bcd028152600401808060200182810382526029815260200180610f506029913960400191505060405180910390fd5b6001600160a01b038216610b6f57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e496024913960400191505060405180910390fd5b610b7881610d53565b6001600160a01b0383166000908152600360205260409020610b9990610d90565b6001600160a01b0382166000908152600360205260409020610bba90610da7565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b6000610c2e846001600160a01b0316610db0565b610c3a57506001610ac4565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610cb7578181015183820152602001610c9f565b50505050905090810190601f168015610ce45780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610d8d57600081815260026020526040902080546001600160a01b03191690555b50565b8054610da390600163ffffffff610db616565b9055565b80546001019055565b3b151590565b600082821115610e105760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058209631ba5ee0489ecf58b1ed6edf174b73a3e5afd9e09cd92d7c38448a275e41090029`
 16138  
 16139  // ERC721MetadataFuncSigs maps the 4-byte function signature to its string representation.
 16140  // Deprecated: Use ERC721MetadataMetaData.Sigs instead.
 16141  var ERC721MetadataFuncSigs = ERC721MetadataMetaData.Sigs
 16142  
 16143  // ERC721MetadataBin is the compiled bytecode used for deploying new contracts.
 16144  // Deprecated: Use ERC721MetadataMetaData.Bin instead.
 16145  var ERC721MetadataBin = ERC721MetadataMetaData.Bin
 16146  
 16147  // DeployERC721Metadata deploys a new Klaytn contract, binding an instance of ERC721Metadata to it.
 16148  func DeployERC721Metadata(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string) (common.Address, *types.Transaction, *ERC721Metadata, error) {
 16149  	parsed, err := ERC721MetadataMetaData.GetAbi()
 16150  	if err != nil {
 16151  		return common.Address{}, nil, nil, err
 16152  	}
 16153  	if parsed == nil {
 16154  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 16155  	}
 16156  
 16157  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721MetadataBin), backend, name, symbol)
 16158  	if err != nil {
 16159  		return common.Address{}, nil, nil, err
 16160  	}
 16161  	return address, tx, &ERC721Metadata{ERC721MetadataCaller: ERC721MetadataCaller{contract: contract}, ERC721MetadataTransactor: ERC721MetadataTransactor{contract: contract}, ERC721MetadataFilterer: ERC721MetadataFilterer{contract: contract}}, nil
 16162  }
 16163  
 16164  // ERC721Metadata is an auto generated Go binding around a Klaytn contract.
 16165  type ERC721Metadata struct {
 16166  	ERC721MetadataCaller     // Read-only binding to the contract
 16167  	ERC721MetadataTransactor // Write-only binding to the contract
 16168  	ERC721MetadataFilterer   // Log filterer for contract events
 16169  }
 16170  
 16171  // ERC721MetadataCaller is an auto generated read-only Go binding around a Klaytn contract.
 16172  type ERC721MetadataCaller struct {
 16173  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16174  }
 16175  
 16176  // ERC721MetadataTransactor is an auto generated write-only Go binding around a Klaytn contract.
 16177  type ERC721MetadataTransactor struct {
 16178  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16179  }
 16180  
 16181  // ERC721MetadataFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 16182  type ERC721MetadataFilterer struct {
 16183  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16184  }
 16185  
 16186  // ERC721MetadataSession is an auto generated Go binding around a Klaytn contract,
 16187  // with pre-set call and transact options.
 16188  type ERC721MetadataSession struct {
 16189  	Contract     *ERC721Metadata   // Generic contract binding to set the session for
 16190  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 16191  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 16192  }
 16193  
 16194  // ERC721MetadataCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 16195  // with pre-set call options.
 16196  type ERC721MetadataCallerSession struct {
 16197  	Contract *ERC721MetadataCaller // Generic contract caller binding to set the session for
 16198  	CallOpts bind.CallOpts         // Call options to use throughout this session
 16199  }
 16200  
 16201  // ERC721MetadataTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 16202  // with pre-set transact options.
 16203  type ERC721MetadataTransactorSession struct {
 16204  	Contract     *ERC721MetadataTransactor // Generic contract transactor binding to set the session for
 16205  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 16206  }
 16207  
 16208  // ERC721MetadataRaw is an auto generated low-level Go binding around a Klaytn contract.
 16209  type ERC721MetadataRaw struct {
 16210  	Contract *ERC721Metadata // Generic contract binding to access the raw methods on
 16211  }
 16212  
 16213  // ERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 16214  type ERC721MetadataCallerRaw struct {
 16215  	Contract *ERC721MetadataCaller // Generic read-only contract binding to access the raw methods on
 16216  }
 16217  
 16218  // ERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 16219  type ERC721MetadataTransactorRaw struct {
 16220  	Contract *ERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on
 16221  }
 16222  
 16223  // NewERC721Metadata creates a new instance of ERC721Metadata, bound to a specific deployed contract.
 16224  func NewERC721Metadata(address common.Address, backend bind.ContractBackend) (*ERC721Metadata, error) {
 16225  	contract, err := bindERC721Metadata(address, backend, backend, backend)
 16226  	if err != nil {
 16227  		return nil, err
 16228  	}
 16229  	return &ERC721Metadata{ERC721MetadataCaller: ERC721MetadataCaller{contract: contract}, ERC721MetadataTransactor: ERC721MetadataTransactor{contract: contract}, ERC721MetadataFilterer: ERC721MetadataFilterer{contract: contract}}, nil
 16230  }
 16231  
 16232  // NewERC721MetadataCaller creates a new read-only instance of ERC721Metadata, bound to a specific deployed contract.
 16233  func NewERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*ERC721MetadataCaller, error) {
 16234  	contract, err := bindERC721Metadata(address, caller, nil, nil)
 16235  	if err != nil {
 16236  		return nil, err
 16237  	}
 16238  	return &ERC721MetadataCaller{contract: contract}, nil
 16239  }
 16240  
 16241  // NewERC721MetadataTransactor creates a new write-only instance of ERC721Metadata, bound to a specific deployed contract.
 16242  func NewERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721MetadataTransactor, error) {
 16243  	contract, err := bindERC721Metadata(address, nil, transactor, nil)
 16244  	if err != nil {
 16245  		return nil, err
 16246  	}
 16247  	return &ERC721MetadataTransactor{contract: contract}, nil
 16248  }
 16249  
 16250  // NewERC721MetadataFilterer creates a new log filterer instance of ERC721Metadata, bound to a specific deployed contract.
 16251  func NewERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721MetadataFilterer, error) {
 16252  	contract, err := bindERC721Metadata(address, nil, nil, filterer)
 16253  	if err != nil {
 16254  		return nil, err
 16255  	}
 16256  	return &ERC721MetadataFilterer{contract: contract}, nil
 16257  }
 16258  
 16259  // bindERC721Metadata binds a generic wrapper to an already deployed contract.
 16260  func bindERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 16261  	parsed, err := ERC721MetadataMetaData.GetAbi()
 16262  	if err != nil {
 16263  		return nil, err
 16264  	}
 16265  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 16266  }
 16267  
 16268  // Call invokes the (constant) contract method with params as input values and
 16269  // sets the output to result. The result type might be a single field for simple
 16270  // returns, a slice of interfaces for anonymous returns and a struct for named
 16271  // returns.
 16272  func (_ERC721Metadata *ERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 16273  	return _ERC721Metadata.Contract.ERC721MetadataCaller.contract.Call(opts, result, method, params...)
 16274  }
 16275  
 16276  // Transfer initiates a plain transaction to move funds to the contract, calling
 16277  // its default method if one is available.
 16278  func (_ERC721Metadata *ERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 16279  	return _ERC721Metadata.Contract.ERC721MetadataTransactor.contract.Transfer(opts)
 16280  }
 16281  
 16282  // Transact invokes the (paid) contract method with params as input values.
 16283  func (_ERC721Metadata *ERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 16284  	return _ERC721Metadata.Contract.ERC721MetadataTransactor.contract.Transact(opts, method, params...)
 16285  }
 16286  
 16287  // Call invokes the (constant) contract method with params as input values and
 16288  // sets the output to result. The result type might be a single field for simple
 16289  // returns, a slice of interfaces for anonymous returns and a struct for named
 16290  // returns.
 16291  func (_ERC721Metadata *ERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 16292  	return _ERC721Metadata.Contract.contract.Call(opts, result, method, params...)
 16293  }
 16294  
 16295  // Transfer initiates a plain transaction to move funds to the contract, calling
 16296  // its default method if one is available.
 16297  func (_ERC721Metadata *ERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 16298  	return _ERC721Metadata.Contract.contract.Transfer(opts)
 16299  }
 16300  
 16301  // Transact invokes the (paid) contract method with params as input values.
 16302  func (_ERC721Metadata *ERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 16303  	return _ERC721Metadata.Contract.contract.Transact(opts, method, params...)
 16304  }
 16305  
 16306  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 16307  //
 16308  // Solidity: function balanceOf(address owner) view returns(uint256)
 16309  func (_ERC721Metadata *ERC721MetadataCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 16310  	var out []interface{}
 16311  	err := _ERC721Metadata.contract.Call(opts, &out, "balanceOf", owner)
 16312  
 16313  	if err != nil {
 16314  		return *new(*big.Int), err
 16315  	}
 16316  
 16317  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 16318  
 16319  	return out0, err
 16320  
 16321  }
 16322  
 16323  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 16324  //
 16325  // Solidity: function balanceOf(address owner) view returns(uint256)
 16326  func (_ERC721Metadata *ERC721MetadataSession) BalanceOf(owner common.Address) (*big.Int, error) {
 16327  	return _ERC721Metadata.Contract.BalanceOf(&_ERC721Metadata.CallOpts, owner)
 16328  }
 16329  
 16330  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 16331  //
 16332  // Solidity: function balanceOf(address owner) view returns(uint256)
 16333  func (_ERC721Metadata *ERC721MetadataCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 16334  	return _ERC721Metadata.Contract.BalanceOf(&_ERC721Metadata.CallOpts, owner)
 16335  }
 16336  
 16337  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 16338  //
 16339  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 16340  func (_ERC721Metadata *ERC721MetadataCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 16341  	var out []interface{}
 16342  	err := _ERC721Metadata.contract.Call(opts, &out, "getApproved", tokenId)
 16343  
 16344  	if err != nil {
 16345  		return *new(common.Address), err
 16346  	}
 16347  
 16348  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 16349  
 16350  	return out0, err
 16351  
 16352  }
 16353  
 16354  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 16355  //
 16356  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 16357  func (_ERC721Metadata *ERC721MetadataSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 16358  	return _ERC721Metadata.Contract.GetApproved(&_ERC721Metadata.CallOpts, tokenId)
 16359  }
 16360  
 16361  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 16362  //
 16363  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 16364  func (_ERC721Metadata *ERC721MetadataCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 16365  	return _ERC721Metadata.Contract.GetApproved(&_ERC721Metadata.CallOpts, tokenId)
 16366  }
 16367  
 16368  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 16369  //
 16370  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 16371  func (_ERC721Metadata *ERC721MetadataCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 16372  	var out []interface{}
 16373  	err := _ERC721Metadata.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 16374  
 16375  	if err != nil {
 16376  		return *new(bool), err
 16377  	}
 16378  
 16379  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 16380  
 16381  	return out0, err
 16382  
 16383  }
 16384  
 16385  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 16386  //
 16387  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 16388  func (_ERC721Metadata *ERC721MetadataSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 16389  	return _ERC721Metadata.Contract.IsApprovedForAll(&_ERC721Metadata.CallOpts, owner, operator)
 16390  }
 16391  
 16392  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 16393  //
 16394  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 16395  func (_ERC721Metadata *ERC721MetadataCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 16396  	return _ERC721Metadata.Contract.IsApprovedForAll(&_ERC721Metadata.CallOpts, owner, operator)
 16397  }
 16398  
 16399  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 16400  //
 16401  // Solidity: function name() view returns(string)
 16402  func (_ERC721Metadata *ERC721MetadataCaller) Name(opts *bind.CallOpts) (string, error) {
 16403  	var out []interface{}
 16404  	err := _ERC721Metadata.contract.Call(opts, &out, "name")
 16405  
 16406  	if err != nil {
 16407  		return *new(string), err
 16408  	}
 16409  
 16410  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 16411  
 16412  	return out0, err
 16413  
 16414  }
 16415  
 16416  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 16417  //
 16418  // Solidity: function name() view returns(string)
 16419  func (_ERC721Metadata *ERC721MetadataSession) Name() (string, error) {
 16420  	return _ERC721Metadata.Contract.Name(&_ERC721Metadata.CallOpts)
 16421  }
 16422  
 16423  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 16424  //
 16425  // Solidity: function name() view returns(string)
 16426  func (_ERC721Metadata *ERC721MetadataCallerSession) Name() (string, error) {
 16427  	return _ERC721Metadata.Contract.Name(&_ERC721Metadata.CallOpts)
 16428  }
 16429  
 16430  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 16431  //
 16432  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 16433  func (_ERC721Metadata *ERC721MetadataCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 16434  	var out []interface{}
 16435  	err := _ERC721Metadata.contract.Call(opts, &out, "ownerOf", tokenId)
 16436  
 16437  	if err != nil {
 16438  		return *new(common.Address), err
 16439  	}
 16440  
 16441  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 16442  
 16443  	return out0, err
 16444  
 16445  }
 16446  
 16447  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 16448  //
 16449  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 16450  func (_ERC721Metadata *ERC721MetadataSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 16451  	return _ERC721Metadata.Contract.OwnerOf(&_ERC721Metadata.CallOpts, tokenId)
 16452  }
 16453  
 16454  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 16455  //
 16456  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 16457  func (_ERC721Metadata *ERC721MetadataCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 16458  	return _ERC721Metadata.Contract.OwnerOf(&_ERC721Metadata.CallOpts, tokenId)
 16459  }
 16460  
 16461  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 16462  //
 16463  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 16464  func (_ERC721Metadata *ERC721MetadataCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 16465  	var out []interface{}
 16466  	err := _ERC721Metadata.contract.Call(opts, &out, "supportsInterface", interfaceId)
 16467  
 16468  	if err != nil {
 16469  		return *new(bool), err
 16470  	}
 16471  
 16472  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 16473  
 16474  	return out0, err
 16475  
 16476  }
 16477  
 16478  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 16479  //
 16480  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 16481  func (_ERC721Metadata *ERC721MetadataSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 16482  	return _ERC721Metadata.Contract.SupportsInterface(&_ERC721Metadata.CallOpts, interfaceId)
 16483  }
 16484  
 16485  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 16486  //
 16487  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 16488  func (_ERC721Metadata *ERC721MetadataCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 16489  	return _ERC721Metadata.Contract.SupportsInterface(&_ERC721Metadata.CallOpts, interfaceId)
 16490  }
 16491  
 16492  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 16493  //
 16494  // Solidity: function symbol() view returns(string)
 16495  func (_ERC721Metadata *ERC721MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) {
 16496  	var out []interface{}
 16497  	err := _ERC721Metadata.contract.Call(opts, &out, "symbol")
 16498  
 16499  	if err != nil {
 16500  		return *new(string), err
 16501  	}
 16502  
 16503  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 16504  
 16505  	return out0, err
 16506  
 16507  }
 16508  
 16509  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 16510  //
 16511  // Solidity: function symbol() view returns(string)
 16512  func (_ERC721Metadata *ERC721MetadataSession) Symbol() (string, error) {
 16513  	return _ERC721Metadata.Contract.Symbol(&_ERC721Metadata.CallOpts)
 16514  }
 16515  
 16516  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 16517  //
 16518  // Solidity: function symbol() view returns(string)
 16519  func (_ERC721Metadata *ERC721MetadataCallerSession) Symbol() (string, error) {
 16520  	return _ERC721Metadata.Contract.Symbol(&_ERC721Metadata.CallOpts)
 16521  }
 16522  
 16523  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 16524  //
 16525  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 16526  func (_ERC721Metadata *ERC721MetadataCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
 16527  	var out []interface{}
 16528  	err := _ERC721Metadata.contract.Call(opts, &out, "tokenURI", tokenId)
 16529  
 16530  	if err != nil {
 16531  		return *new(string), err
 16532  	}
 16533  
 16534  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 16535  
 16536  	return out0, err
 16537  
 16538  }
 16539  
 16540  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 16541  //
 16542  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 16543  func (_ERC721Metadata *ERC721MetadataSession) TokenURI(tokenId *big.Int) (string, error) {
 16544  	return _ERC721Metadata.Contract.TokenURI(&_ERC721Metadata.CallOpts, tokenId)
 16545  }
 16546  
 16547  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 16548  //
 16549  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 16550  func (_ERC721Metadata *ERC721MetadataCallerSession) TokenURI(tokenId *big.Int) (string, error) {
 16551  	return _ERC721Metadata.Contract.TokenURI(&_ERC721Metadata.CallOpts, tokenId)
 16552  }
 16553  
 16554  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 16555  //
 16556  // Solidity: function approve(address to, uint256 tokenId) returns()
 16557  func (_ERC721Metadata *ERC721MetadataTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16558  	return _ERC721Metadata.contract.Transact(opts, "approve", to, tokenId)
 16559  }
 16560  
 16561  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 16562  //
 16563  // Solidity: function approve(address to, uint256 tokenId) returns()
 16564  func (_ERC721Metadata *ERC721MetadataSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16565  	return _ERC721Metadata.Contract.Approve(&_ERC721Metadata.TransactOpts, to, tokenId)
 16566  }
 16567  
 16568  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 16569  //
 16570  // Solidity: function approve(address to, uint256 tokenId) returns()
 16571  func (_ERC721Metadata *ERC721MetadataTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16572  	return _ERC721Metadata.Contract.Approve(&_ERC721Metadata.TransactOpts, to, tokenId)
 16573  }
 16574  
 16575  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 16576  //
 16577  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 16578  func (_ERC721Metadata *ERC721MetadataTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16579  	return _ERC721Metadata.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 16580  }
 16581  
 16582  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 16583  //
 16584  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 16585  func (_ERC721Metadata *ERC721MetadataSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16586  	return _ERC721Metadata.Contract.SafeTransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 16587  }
 16588  
 16589  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 16590  //
 16591  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 16592  func (_ERC721Metadata *ERC721MetadataTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16593  	return _ERC721Metadata.Contract.SafeTransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 16594  }
 16595  
 16596  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 16597  //
 16598  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 16599  func (_ERC721Metadata *ERC721MetadataTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 16600  	return _ERC721Metadata.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 16601  }
 16602  
 16603  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 16604  //
 16605  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 16606  func (_ERC721Metadata *ERC721MetadataSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 16607  	return _ERC721Metadata.Contract.SafeTransferFrom0(&_ERC721Metadata.TransactOpts, from, to, tokenId, _data)
 16608  }
 16609  
 16610  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 16611  //
 16612  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 16613  func (_ERC721Metadata *ERC721MetadataTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 16614  	return _ERC721Metadata.Contract.SafeTransferFrom0(&_ERC721Metadata.TransactOpts, from, to, tokenId, _data)
 16615  }
 16616  
 16617  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 16618  //
 16619  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 16620  func (_ERC721Metadata *ERC721MetadataTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 16621  	return _ERC721Metadata.contract.Transact(opts, "setApprovalForAll", to, approved)
 16622  }
 16623  
 16624  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 16625  //
 16626  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 16627  func (_ERC721Metadata *ERC721MetadataSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 16628  	return _ERC721Metadata.Contract.SetApprovalForAll(&_ERC721Metadata.TransactOpts, to, approved)
 16629  }
 16630  
 16631  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 16632  //
 16633  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 16634  func (_ERC721Metadata *ERC721MetadataTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 16635  	return _ERC721Metadata.Contract.SetApprovalForAll(&_ERC721Metadata.TransactOpts, to, approved)
 16636  }
 16637  
 16638  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 16639  //
 16640  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 16641  func (_ERC721Metadata *ERC721MetadataTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16642  	return _ERC721Metadata.contract.Transact(opts, "transferFrom", from, to, tokenId)
 16643  }
 16644  
 16645  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 16646  //
 16647  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 16648  func (_ERC721Metadata *ERC721MetadataSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16649  	return _ERC721Metadata.Contract.TransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 16650  }
 16651  
 16652  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 16653  //
 16654  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 16655  func (_ERC721Metadata *ERC721MetadataTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 16656  	return _ERC721Metadata.Contract.TransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 16657  }
 16658  
 16659  // ERC721MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721Metadata contract.
 16660  type ERC721MetadataApprovalIterator struct {
 16661  	Event *ERC721MetadataApproval // Event containing the contract specifics and raw log
 16662  
 16663  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16664  	event    string              // Event name to use for unpacking event data
 16665  
 16666  	logs chan types.Log      // Log channel receiving the found contract events
 16667  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16668  	done bool                // Whether the subscription completed delivering logs
 16669  	fail error               // Occurred error to stop iteration
 16670  }
 16671  
 16672  // Next advances the iterator to the subsequent event, returning whether there
 16673  // are any more events found. In case of a retrieval or parsing error, false is
 16674  // returned and Error() can be queried for the exact failure.
 16675  func (it *ERC721MetadataApprovalIterator) Next() bool {
 16676  	// If the iterator failed, stop iterating
 16677  	if it.fail != nil {
 16678  		return false
 16679  	}
 16680  	// If the iterator completed, deliver directly whatever's available
 16681  	if it.done {
 16682  		select {
 16683  		case log := <-it.logs:
 16684  			it.Event = new(ERC721MetadataApproval)
 16685  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16686  				it.fail = err
 16687  				return false
 16688  			}
 16689  			it.Event.Raw = log
 16690  			return true
 16691  
 16692  		default:
 16693  			return false
 16694  		}
 16695  	}
 16696  	// Iterator still in progress, wait for either a data or an error event
 16697  	select {
 16698  	case log := <-it.logs:
 16699  		it.Event = new(ERC721MetadataApproval)
 16700  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16701  			it.fail = err
 16702  			return false
 16703  		}
 16704  		it.Event.Raw = log
 16705  		return true
 16706  
 16707  	case err := <-it.sub.Err():
 16708  		it.done = true
 16709  		it.fail = err
 16710  		return it.Next()
 16711  	}
 16712  }
 16713  
 16714  // Error returns any retrieval or parsing error occurred during filtering.
 16715  func (it *ERC721MetadataApprovalIterator) Error() error {
 16716  	return it.fail
 16717  }
 16718  
 16719  // Close terminates the iteration process, releasing any pending underlying
 16720  // resources.
 16721  func (it *ERC721MetadataApprovalIterator) Close() error {
 16722  	it.sub.Unsubscribe()
 16723  	return nil
 16724  }
 16725  
 16726  // ERC721MetadataApproval represents a Approval event raised by the ERC721Metadata contract.
 16727  type ERC721MetadataApproval struct {
 16728  	Owner    common.Address
 16729  	Approved common.Address
 16730  	TokenId  *big.Int
 16731  	Raw      types.Log // Blockchain specific contextual infos
 16732  }
 16733  
 16734  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 16735  //
 16736  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 16737  func (_ERC721Metadata *ERC721MetadataFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721MetadataApprovalIterator, error) {
 16738  
 16739  	var ownerRule []interface{}
 16740  	for _, ownerItem := range owner {
 16741  		ownerRule = append(ownerRule, ownerItem)
 16742  	}
 16743  	var approvedRule []interface{}
 16744  	for _, approvedItem := range approved {
 16745  		approvedRule = append(approvedRule, approvedItem)
 16746  	}
 16747  	var tokenIdRule []interface{}
 16748  	for _, tokenIdItem := range tokenId {
 16749  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 16750  	}
 16751  
 16752  	logs, sub, err := _ERC721Metadata.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 16753  	if err != nil {
 16754  		return nil, err
 16755  	}
 16756  	return &ERC721MetadataApprovalIterator{contract: _ERC721Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil
 16757  }
 16758  
 16759  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 16760  //
 16761  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 16762  func (_ERC721Metadata *ERC721MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721MetadataApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 16763  
 16764  	var ownerRule []interface{}
 16765  	for _, ownerItem := range owner {
 16766  		ownerRule = append(ownerRule, ownerItem)
 16767  	}
 16768  	var approvedRule []interface{}
 16769  	for _, approvedItem := range approved {
 16770  		approvedRule = append(approvedRule, approvedItem)
 16771  	}
 16772  	var tokenIdRule []interface{}
 16773  	for _, tokenIdItem := range tokenId {
 16774  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 16775  	}
 16776  
 16777  	logs, sub, err := _ERC721Metadata.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 16778  	if err != nil {
 16779  		return nil, err
 16780  	}
 16781  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16782  		defer sub.Unsubscribe()
 16783  		for {
 16784  			select {
 16785  			case log := <-logs:
 16786  				// New log arrived, parse the event and forward to the user
 16787  				event := new(ERC721MetadataApproval)
 16788  				if err := _ERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 16789  					return err
 16790  				}
 16791  				event.Raw = log
 16792  
 16793  				select {
 16794  				case sink <- event:
 16795  				case err := <-sub.Err():
 16796  					return err
 16797  				case <-quit:
 16798  					return nil
 16799  				}
 16800  			case err := <-sub.Err():
 16801  				return err
 16802  			case <-quit:
 16803  				return nil
 16804  			}
 16805  		}
 16806  	}), nil
 16807  }
 16808  
 16809  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 16810  //
 16811  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 16812  func (_ERC721Metadata *ERC721MetadataFilterer) ParseApproval(log types.Log) (*ERC721MetadataApproval, error) {
 16813  	event := new(ERC721MetadataApproval)
 16814  	if err := _ERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 16815  		return nil, err
 16816  	}
 16817  	return event, nil
 16818  }
 16819  
 16820  // ERC721MetadataApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721Metadata contract.
 16821  type ERC721MetadataApprovalForAllIterator struct {
 16822  	Event *ERC721MetadataApprovalForAll // Event containing the contract specifics and raw log
 16823  
 16824  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16825  	event    string              // Event name to use for unpacking event data
 16826  
 16827  	logs chan types.Log      // Log channel receiving the found contract events
 16828  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16829  	done bool                // Whether the subscription completed delivering logs
 16830  	fail error               // Occurred error to stop iteration
 16831  }
 16832  
 16833  // Next advances the iterator to the subsequent event, returning whether there
 16834  // are any more events found. In case of a retrieval or parsing error, false is
 16835  // returned and Error() can be queried for the exact failure.
 16836  func (it *ERC721MetadataApprovalForAllIterator) Next() bool {
 16837  	// If the iterator failed, stop iterating
 16838  	if it.fail != nil {
 16839  		return false
 16840  	}
 16841  	// If the iterator completed, deliver directly whatever's available
 16842  	if it.done {
 16843  		select {
 16844  		case log := <-it.logs:
 16845  			it.Event = new(ERC721MetadataApprovalForAll)
 16846  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16847  				it.fail = err
 16848  				return false
 16849  			}
 16850  			it.Event.Raw = log
 16851  			return true
 16852  
 16853  		default:
 16854  			return false
 16855  		}
 16856  	}
 16857  	// Iterator still in progress, wait for either a data or an error event
 16858  	select {
 16859  	case log := <-it.logs:
 16860  		it.Event = new(ERC721MetadataApprovalForAll)
 16861  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16862  			it.fail = err
 16863  			return false
 16864  		}
 16865  		it.Event.Raw = log
 16866  		return true
 16867  
 16868  	case err := <-it.sub.Err():
 16869  		it.done = true
 16870  		it.fail = err
 16871  		return it.Next()
 16872  	}
 16873  }
 16874  
 16875  // Error returns any retrieval or parsing error occurred during filtering.
 16876  func (it *ERC721MetadataApprovalForAllIterator) Error() error {
 16877  	return it.fail
 16878  }
 16879  
 16880  // Close terminates the iteration process, releasing any pending underlying
 16881  // resources.
 16882  func (it *ERC721MetadataApprovalForAllIterator) Close() error {
 16883  	it.sub.Unsubscribe()
 16884  	return nil
 16885  }
 16886  
 16887  // ERC721MetadataApprovalForAll represents a ApprovalForAll event raised by the ERC721Metadata contract.
 16888  type ERC721MetadataApprovalForAll struct {
 16889  	Owner    common.Address
 16890  	Operator common.Address
 16891  	Approved bool
 16892  	Raw      types.Log // Blockchain specific contextual infos
 16893  }
 16894  
 16895  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 16896  //
 16897  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 16898  func (_ERC721Metadata *ERC721MetadataFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721MetadataApprovalForAllIterator, error) {
 16899  
 16900  	var ownerRule []interface{}
 16901  	for _, ownerItem := range owner {
 16902  		ownerRule = append(ownerRule, ownerItem)
 16903  	}
 16904  	var operatorRule []interface{}
 16905  	for _, operatorItem := range operator {
 16906  		operatorRule = append(operatorRule, operatorItem)
 16907  	}
 16908  
 16909  	logs, sub, err := _ERC721Metadata.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 16910  	if err != nil {
 16911  		return nil, err
 16912  	}
 16913  	return &ERC721MetadataApprovalForAllIterator{contract: _ERC721Metadata.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 16914  }
 16915  
 16916  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 16917  //
 16918  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 16919  func (_ERC721Metadata *ERC721MetadataFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721MetadataApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 16920  
 16921  	var ownerRule []interface{}
 16922  	for _, ownerItem := range owner {
 16923  		ownerRule = append(ownerRule, ownerItem)
 16924  	}
 16925  	var operatorRule []interface{}
 16926  	for _, operatorItem := range operator {
 16927  		operatorRule = append(operatorRule, operatorItem)
 16928  	}
 16929  
 16930  	logs, sub, err := _ERC721Metadata.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 16931  	if err != nil {
 16932  		return nil, err
 16933  	}
 16934  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16935  		defer sub.Unsubscribe()
 16936  		for {
 16937  			select {
 16938  			case log := <-logs:
 16939  				// New log arrived, parse the event and forward to the user
 16940  				event := new(ERC721MetadataApprovalForAll)
 16941  				if err := _ERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 16942  					return err
 16943  				}
 16944  				event.Raw = log
 16945  
 16946  				select {
 16947  				case sink <- event:
 16948  				case err := <-sub.Err():
 16949  					return err
 16950  				case <-quit:
 16951  					return nil
 16952  				}
 16953  			case err := <-sub.Err():
 16954  				return err
 16955  			case <-quit:
 16956  				return nil
 16957  			}
 16958  		}
 16959  	}), nil
 16960  }
 16961  
 16962  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 16963  //
 16964  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 16965  func (_ERC721Metadata *ERC721MetadataFilterer) ParseApprovalForAll(log types.Log) (*ERC721MetadataApprovalForAll, error) {
 16966  	event := new(ERC721MetadataApprovalForAll)
 16967  	if err := _ERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 16968  		return nil, err
 16969  	}
 16970  	return event, nil
 16971  }
 16972  
 16973  // ERC721MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721Metadata contract.
 16974  type ERC721MetadataTransferIterator struct {
 16975  	Event *ERC721MetadataTransfer // Event containing the contract specifics and raw log
 16976  
 16977  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16978  	event    string              // Event name to use for unpacking event data
 16979  
 16980  	logs chan types.Log      // Log channel receiving the found contract events
 16981  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16982  	done bool                // Whether the subscription completed delivering logs
 16983  	fail error               // Occurred error to stop iteration
 16984  }
 16985  
 16986  // Next advances the iterator to the subsequent event, returning whether there
 16987  // are any more events found. In case of a retrieval or parsing error, false is
 16988  // returned and Error() can be queried for the exact failure.
 16989  func (it *ERC721MetadataTransferIterator) Next() bool {
 16990  	// If the iterator failed, stop iterating
 16991  	if it.fail != nil {
 16992  		return false
 16993  	}
 16994  	// If the iterator completed, deliver directly whatever's available
 16995  	if it.done {
 16996  		select {
 16997  		case log := <-it.logs:
 16998  			it.Event = new(ERC721MetadataTransfer)
 16999  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17000  				it.fail = err
 17001  				return false
 17002  			}
 17003  			it.Event.Raw = log
 17004  			return true
 17005  
 17006  		default:
 17007  			return false
 17008  		}
 17009  	}
 17010  	// Iterator still in progress, wait for either a data or an error event
 17011  	select {
 17012  	case log := <-it.logs:
 17013  		it.Event = new(ERC721MetadataTransfer)
 17014  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17015  			it.fail = err
 17016  			return false
 17017  		}
 17018  		it.Event.Raw = log
 17019  		return true
 17020  
 17021  	case err := <-it.sub.Err():
 17022  		it.done = true
 17023  		it.fail = err
 17024  		return it.Next()
 17025  	}
 17026  }
 17027  
 17028  // Error returns any retrieval or parsing error occurred during filtering.
 17029  func (it *ERC721MetadataTransferIterator) Error() error {
 17030  	return it.fail
 17031  }
 17032  
 17033  // Close terminates the iteration process, releasing any pending underlying
 17034  // resources.
 17035  func (it *ERC721MetadataTransferIterator) Close() error {
 17036  	it.sub.Unsubscribe()
 17037  	return nil
 17038  }
 17039  
 17040  // ERC721MetadataTransfer represents a Transfer event raised by the ERC721Metadata contract.
 17041  type ERC721MetadataTransfer struct {
 17042  	From    common.Address
 17043  	To      common.Address
 17044  	TokenId *big.Int
 17045  	Raw     types.Log // Blockchain specific contextual infos
 17046  }
 17047  
 17048  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 17049  //
 17050  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 17051  func (_ERC721Metadata *ERC721MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721MetadataTransferIterator, error) {
 17052  
 17053  	var fromRule []interface{}
 17054  	for _, fromItem := range from {
 17055  		fromRule = append(fromRule, fromItem)
 17056  	}
 17057  	var toRule []interface{}
 17058  	for _, toItem := range to {
 17059  		toRule = append(toRule, toItem)
 17060  	}
 17061  	var tokenIdRule []interface{}
 17062  	for _, tokenIdItem := range tokenId {
 17063  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 17064  	}
 17065  
 17066  	logs, sub, err := _ERC721Metadata.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 17067  	if err != nil {
 17068  		return nil, err
 17069  	}
 17070  	return &ERC721MetadataTransferIterator{contract: _ERC721Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil
 17071  }
 17072  
 17073  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 17074  //
 17075  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 17076  func (_ERC721Metadata *ERC721MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721MetadataTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 17077  
 17078  	var fromRule []interface{}
 17079  	for _, fromItem := range from {
 17080  		fromRule = append(fromRule, fromItem)
 17081  	}
 17082  	var toRule []interface{}
 17083  	for _, toItem := range to {
 17084  		toRule = append(toRule, toItem)
 17085  	}
 17086  	var tokenIdRule []interface{}
 17087  	for _, tokenIdItem := range tokenId {
 17088  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 17089  	}
 17090  
 17091  	logs, sub, err := _ERC721Metadata.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 17092  	if err != nil {
 17093  		return nil, err
 17094  	}
 17095  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17096  		defer sub.Unsubscribe()
 17097  		for {
 17098  			select {
 17099  			case log := <-logs:
 17100  				// New log arrived, parse the event and forward to the user
 17101  				event := new(ERC721MetadataTransfer)
 17102  				if err := _ERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 17103  					return err
 17104  				}
 17105  				event.Raw = log
 17106  
 17107  				select {
 17108  				case sink <- event:
 17109  				case err := <-sub.Err():
 17110  					return err
 17111  				case <-quit:
 17112  					return nil
 17113  				}
 17114  			case err := <-sub.Err():
 17115  				return err
 17116  			case <-quit:
 17117  				return nil
 17118  			}
 17119  		}
 17120  	}), nil
 17121  }
 17122  
 17123  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 17124  //
 17125  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 17126  func (_ERC721Metadata *ERC721MetadataFilterer) ParseTransfer(log types.Log) (*ERC721MetadataTransfer, error) {
 17127  	event := new(ERC721MetadataTransfer)
 17128  	if err := _ERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 17129  		return nil, err
 17130  	}
 17131  	return event, nil
 17132  }
 17133  
 17134  // ERC721MetadataMintableMetaData contains all meta data concerning the ERC721MetadataMintable contract.
 17135  var ERC721MetadataMintableMetaData = &bind.MetaData{
 17136  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"mintWithTokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 17137  	Sigs: map[string]string{
 17138  		"983b2d56": "addMinter(address)",
 17139  		"095ea7b3": "approve(address,uint256)",
 17140  		"70a08231": "balanceOf(address)",
 17141  		"081812fc": "getApproved(uint256)",
 17142  		"e985e9c5": "isApprovedForAll(address,address)",
 17143  		"aa271e1a": "isMinter(address)",
 17144  		"50bb4e7f": "mintWithTokenURI(address,uint256,string)",
 17145  		"06fdde03": "name()",
 17146  		"6352211e": "ownerOf(uint256)",
 17147  		"98650275": "renounceMinter()",
 17148  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 17149  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 17150  		"a22cb465": "setApprovalForAll(address,bool)",
 17151  		"01ffc9a7": "supportsInterface(bytes4)",
 17152  		"95d89b41": "symbol()",
 17153  		"c87b56dd": "tokenURI(uint256)",
 17154  		"23b872dd": "transferFrom(address,address,uint256)",
 17155  	},
 17156  }
 17157  
 17158  // ERC721MetadataMintableABI is the input ABI used to generate the binding from.
 17159  // Deprecated: Use ERC721MetadataMintableMetaData.ABI instead.
 17160  var ERC721MetadataMintableABI = ERC721MetadataMintableMetaData.ABI
 17161  
 17162  // ERC721MetadataMintableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 17163  const ERC721MetadataMintableBinRuntime = ``
 17164  
 17165  // ERC721MetadataMintableFuncSigs maps the 4-byte function signature to its string representation.
 17166  // Deprecated: Use ERC721MetadataMintableMetaData.Sigs instead.
 17167  var ERC721MetadataMintableFuncSigs = ERC721MetadataMintableMetaData.Sigs
 17168  
 17169  // ERC721MetadataMintable is an auto generated Go binding around a Klaytn contract.
 17170  type ERC721MetadataMintable struct {
 17171  	ERC721MetadataMintableCaller     // Read-only binding to the contract
 17172  	ERC721MetadataMintableTransactor // Write-only binding to the contract
 17173  	ERC721MetadataMintableFilterer   // Log filterer for contract events
 17174  }
 17175  
 17176  // ERC721MetadataMintableCaller is an auto generated read-only Go binding around a Klaytn contract.
 17177  type ERC721MetadataMintableCaller struct {
 17178  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17179  }
 17180  
 17181  // ERC721MetadataMintableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 17182  type ERC721MetadataMintableTransactor struct {
 17183  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17184  }
 17185  
 17186  // ERC721MetadataMintableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 17187  type ERC721MetadataMintableFilterer struct {
 17188  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17189  }
 17190  
 17191  // ERC721MetadataMintableSession is an auto generated Go binding around a Klaytn contract,
 17192  // with pre-set call and transact options.
 17193  type ERC721MetadataMintableSession struct {
 17194  	Contract     *ERC721MetadataMintable // Generic contract binding to set the session for
 17195  	CallOpts     bind.CallOpts           // Call options to use throughout this session
 17196  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
 17197  }
 17198  
 17199  // ERC721MetadataMintableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 17200  // with pre-set call options.
 17201  type ERC721MetadataMintableCallerSession struct {
 17202  	Contract *ERC721MetadataMintableCaller // Generic contract caller binding to set the session for
 17203  	CallOpts bind.CallOpts                 // Call options to use throughout this session
 17204  }
 17205  
 17206  // ERC721MetadataMintableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 17207  // with pre-set transact options.
 17208  type ERC721MetadataMintableTransactorSession struct {
 17209  	Contract     *ERC721MetadataMintableTransactor // Generic contract transactor binding to set the session for
 17210  	TransactOpts bind.TransactOpts                 // Transaction auth options to use throughout this session
 17211  }
 17212  
 17213  // ERC721MetadataMintableRaw is an auto generated low-level Go binding around a Klaytn contract.
 17214  type ERC721MetadataMintableRaw struct {
 17215  	Contract *ERC721MetadataMintable // Generic contract binding to access the raw methods on
 17216  }
 17217  
 17218  // ERC721MetadataMintableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 17219  type ERC721MetadataMintableCallerRaw struct {
 17220  	Contract *ERC721MetadataMintableCaller // Generic read-only contract binding to access the raw methods on
 17221  }
 17222  
 17223  // ERC721MetadataMintableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 17224  type ERC721MetadataMintableTransactorRaw struct {
 17225  	Contract *ERC721MetadataMintableTransactor // Generic write-only contract binding to access the raw methods on
 17226  }
 17227  
 17228  // NewERC721MetadataMintable creates a new instance of ERC721MetadataMintable, bound to a specific deployed contract.
 17229  func NewERC721MetadataMintable(address common.Address, backend bind.ContractBackend) (*ERC721MetadataMintable, error) {
 17230  	contract, err := bindERC721MetadataMintable(address, backend, backend, backend)
 17231  	if err != nil {
 17232  		return nil, err
 17233  	}
 17234  	return &ERC721MetadataMintable{ERC721MetadataMintableCaller: ERC721MetadataMintableCaller{contract: contract}, ERC721MetadataMintableTransactor: ERC721MetadataMintableTransactor{contract: contract}, ERC721MetadataMintableFilterer: ERC721MetadataMintableFilterer{contract: contract}}, nil
 17235  }
 17236  
 17237  // NewERC721MetadataMintableCaller creates a new read-only instance of ERC721MetadataMintable, bound to a specific deployed contract.
 17238  func NewERC721MetadataMintableCaller(address common.Address, caller bind.ContractCaller) (*ERC721MetadataMintableCaller, error) {
 17239  	contract, err := bindERC721MetadataMintable(address, caller, nil, nil)
 17240  	if err != nil {
 17241  		return nil, err
 17242  	}
 17243  	return &ERC721MetadataMintableCaller{contract: contract}, nil
 17244  }
 17245  
 17246  // NewERC721MetadataMintableTransactor creates a new write-only instance of ERC721MetadataMintable, bound to a specific deployed contract.
 17247  func NewERC721MetadataMintableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721MetadataMintableTransactor, error) {
 17248  	contract, err := bindERC721MetadataMintable(address, nil, transactor, nil)
 17249  	if err != nil {
 17250  		return nil, err
 17251  	}
 17252  	return &ERC721MetadataMintableTransactor{contract: contract}, nil
 17253  }
 17254  
 17255  // NewERC721MetadataMintableFilterer creates a new log filterer instance of ERC721MetadataMintable, bound to a specific deployed contract.
 17256  func NewERC721MetadataMintableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721MetadataMintableFilterer, error) {
 17257  	contract, err := bindERC721MetadataMintable(address, nil, nil, filterer)
 17258  	if err != nil {
 17259  		return nil, err
 17260  	}
 17261  	return &ERC721MetadataMintableFilterer{contract: contract}, nil
 17262  }
 17263  
 17264  // bindERC721MetadataMintable binds a generic wrapper to an already deployed contract.
 17265  func bindERC721MetadataMintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17266  	parsed, err := ERC721MetadataMintableMetaData.GetAbi()
 17267  	if err != nil {
 17268  		return nil, err
 17269  	}
 17270  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 17271  }
 17272  
 17273  // Call invokes the (constant) contract method with params as input values and
 17274  // sets the output to result. The result type might be a single field for simple
 17275  // returns, a slice of interfaces for anonymous returns and a struct for named
 17276  // returns.
 17277  func (_ERC721MetadataMintable *ERC721MetadataMintableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17278  	return _ERC721MetadataMintable.Contract.ERC721MetadataMintableCaller.contract.Call(opts, result, method, params...)
 17279  }
 17280  
 17281  // Transfer initiates a plain transaction to move funds to the contract, calling
 17282  // its default method if one is available.
 17283  func (_ERC721MetadataMintable *ERC721MetadataMintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17284  	return _ERC721MetadataMintable.Contract.ERC721MetadataMintableTransactor.contract.Transfer(opts)
 17285  }
 17286  
 17287  // Transact invokes the (paid) contract method with params as input values.
 17288  func (_ERC721MetadataMintable *ERC721MetadataMintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17289  	return _ERC721MetadataMintable.Contract.ERC721MetadataMintableTransactor.contract.Transact(opts, method, params...)
 17290  }
 17291  
 17292  // Call invokes the (constant) contract method with params as input values and
 17293  // sets the output to result. The result type might be a single field for simple
 17294  // returns, a slice of interfaces for anonymous returns and a struct for named
 17295  // returns.
 17296  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17297  	return _ERC721MetadataMintable.Contract.contract.Call(opts, result, method, params...)
 17298  }
 17299  
 17300  // Transfer initiates a plain transaction to move funds to the contract, calling
 17301  // its default method if one is available.
 17302  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17303  	return _ERC721MetadataMintable.Contract.contract.Transfer(opts)
 17304  }
 17305  
 17306  // Transact invokes the (paid) contract method with params as input values.
 17307  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17308  	return _ERC721MetadataMintable.Contract.contract.Transact(opts, method, params...)
 17309  }
 17310  
 17311  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 17312  //
 17313  // Solidity: function balanceOf(address owner) view returns(uint256)
 17314  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 17315  	var out []interface{}
 17316  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "balanceOf", owner)
 17317  
 17318  	if err != nil {
 17319  		return *new(*big.Int), err
 17320  	}
 17321  
 17322  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 17323  
 17324  	return out0, err
 17325  
 17326  }
 17327  
 17328  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 17329  //
 17330  // Solidity: function balanceOf(address owner) view returns(uint256)
 17331  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) BalanceOf(owner common.Address) (*big.Int, error) {
 17332  	return _ERC721MetadataMintable.Contract.BalanceOf(&_ERC721MetadataMintable.CallOpts, owner)
 17333  }
 17334  
 17335  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 17336  //
 17337  // Solidity: function balanceOf(address owner) view returns(uint256)
 17338  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 17339  	return _ERC721MetadataMintable.Contract.BalanceOf(&_ERC721MetadataMintable.CallOpts, owner)
 17340  }
 17341  
 17342  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 17343  //
 17344  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 17345  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 17346  	var out []interface{}
 17347  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "getApproved", tokenId)
 17348  
 17349  	if err != nil {
 17350  		return *new(common.Address), err
 17351  	}
 17352  
 17353  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 17354  
 17355  	return out0, err
 17356  
 17357  }
 17358  
 17359  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 17360  //
 17361  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 17362  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 17363  	return _ERC721MetadataMintable.Contract.GetApproved(&_ERC721MetadataMintable.CallOpts, tokenId)
 17364  }
 17365  
 17366  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 17367  //
 17368  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 17369  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 17370  	return _ERC721MetadataMintable.Contract.GetApproved(&_ERC721MetadataMintable.CallOpts, tokenId)
 17371  }
 17372  
 17373  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 17374  //
 17375  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 17376  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 17377  	var out []interface{}
 17378  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 17379  
 17380  	if err != nil {
 17381  		return *new(bool), err
 17382  	}
 17383  
 17384  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 17385  
 17386  	return out0, err
 17387  
 17388  }
 17389  
 17390  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 17391  //
 17392  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 17393  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 17394  	return _ERC721MetadataMintable.Contract.IsApprovedForAll(&_ERC721MetadataMintable.CallOpts, owner, operator)
 17395  }
 17396  
 17397  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 17398  //
 17399  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 17400  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 17401  	return _ERC721MetadataMintable.Contract.IsApprovedForAll(&_ERC721MetadataMintable.CallOpts, owner, operator)
 17402  }
 17403  
 17404  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 17405  //
 17406  // Solidity: function isMinter(address account) view returns(bool)
 17407  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 17408  	var out []interface{}
 17409  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "isMinter", account)
 17410  
 17411  	if err != nil {
 17412  		return *new(bool), err
 17413  	}
 17414  
 17415  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 17416  
 17417  	return out0, err
 17418  
 17419  }
 17420  
 17421  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 17422  //
 17423  // Solidity: function isMinter(address account) view returns(bool)
 17424  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) IsMinter(account common.Address) (bool, error) {
 17425  	return _ERC721MetadataMintable.Contract.IsMinter(&_ERC721MetadataMintable.CallOpts, account)
 17426  }
 17427  
 17428  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 17429  //
 17430  // Solidity: function isMinter(address account) view returns(bool)
 17431  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) IsMinter(account common.Address) (bool, error) {
 17432  	return _ERC721MetadataMintable.Contract.IsMinter(&_ERC721MetadataMintable.CallOpts, account)
 17433  }
 17434  
 17435  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 17436  //
 17437  // Solidity: function name() view returns(string)
 17438  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) Name(opts *bind.CallOpts) (string, error) {
 17439  	var out []interface{}
 17440  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "name")
 17441  
 17442  	if err != nil {
 17443  		return *new(string), err
 17444  	}
 17445  
 17446  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 17447  
 17448  	return out0, err
 17449  
 17450  }
 17451  
 17452  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 17453  //
 17454  // Solidity: function name() view returns(string)
 17455  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) Name() (string, error) {
 17456  	return _ERC721MetadataMintable.Contract.Name(&_ERC721MetadataMintable.CallOpts)
 17457  }
 17458  
 17459  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 17460  //
 17461  // Solidity: function name() view returns(string)
 17462  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) Name() (string, error) {
 17463  	return _ERC721MetadataMintable.Contract.Name(&_ERC721MetadataMintable.CallOpts)
 17464  }
 17465  
 17466  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 17467  //
 17468  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 17469  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 17470  	var out []interface{}
 17471  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "ownerOf", tokenId)
 17472  
 17473  	if err != nil {
 17474  		return *new(common.Address), err
 17475  	}
 17476  
 17477  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 17478  
 17479  	return out0, err
 17480  
 17481  }
 17482  
 17483  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 17484  //
 17485  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 17486  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 17487  	return _ERC721MetadataMintable.Contract.OwnerOf(&_ERC721MetadataMintable.CallOpts, tokenId)
 17488  }
 17489  
 17490  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 17491  //
 17492  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 17493  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 17494  	return _ERC721MetadataMintable.Contract.OwnerOf(&_ERC721MetadataMintable.CallOpts, tokenId)
 17495  }
 17496  
 17497  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 17498  //
 17499  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 17500  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 17501  	var out []interface{}
 17502  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "supportsInterface", interfaceId)
 17503  
 17504  	if err != nil {
 17505  		return *new(bool), err
 17506  	}
 17507  
 17508  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 17509  
 17510  	return out0, err
 17511  
 17512  }
 17513  
 17514  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 17515  //
 17516  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 17517  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 17518  	return _ERC721MetadataMintable.Contract.SupportsInterface(&_ERC721MetadataMintable.CallOpts, interfaceId)
 17519  }
 17520  
 17521  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 17522  //
 17523  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 17524  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 17525  	return _ERC721MetadataMintable.Contract.SupportsInterface(&_ERC721MetadataMintable.CallOpts, interfaceId)
 17526  }
 17527  
 17528  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 17529  //
 17530  // Solidity: function symbol() view returns(string)
 17531  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) Symbol(opts *bind.CallOpts) (string, error) {
 17532  	var out []interface{}
 17533  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "symbol")
 17534  
 17535  	if err != nil {
 17536  		return *new(string), err
 17537  	}
 17538  
 17539  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 17540  
 17541  	return out0, err
 17542  
 17543  }
 17544  
 17545  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 17546  //
 17547  // Solidity: function symbol() view returns(string)
 17548  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) Symbol() (string, error) {
 17549  	return _ERC721MetadataMintable.Contract.Symbol(&_ERC721MetadataMintable.CallOpts)
 17550  }
 17551  
 17552  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 17553  //
 17554  // Solidity: function symbol() view returns(string)
 17555  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) Symbol() (string, error) {
 17556  	return _ERC721MetadataMintable.Contract.Symbol(&_ERC721MetadataMintable.CallOpts)
 17557  }
 17558  
 17559  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 17560  //
 17561  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 17562  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
 17563  	var out []interface{}
 17564  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "tokenURI", tokenId)
 17565  
 17566  	if err != nil {
 17567  		return *new(string), err
 17568  	}
 17569  
 17570  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 17571  
 17572  	return out0, err
 17573  
 17574  }
 17575  
 17576  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 17577  //
 17578  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 17579  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) TokenURI(tokenId *big.Int) (string, error) {
 17580  	return _ERC721MetadataMintable.Contract.TokenURI(&_ERC721MetadataMintable.CallOpts, tokenId)
 17581  }
 17582  
 17583  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 17584  //
 17585  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 17586  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) TokenURI(tokenId *big.Int) (string, error) {
 17587  	return _ERC721MetadataMintable.Contract.TokenURI(&_ERC721MetadataMintable.CallOpts, tokenId)
 17588  }
 17589  
 17590  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 17591  //
 17592  // Solidity: function addMinter(address account) returns()
 17593  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 17594  	return _ERC721MetadataMintable.contract.Transact(opts, "addMinter", account)
 17595  }
 17596  
 17597  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 17598  //
 17599  // Solidity: function addMinter(address account) returns()
 17600  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) AddMinter(account common.Address) (*types.Transaction, error) {
 17601  	return _ERC721MetadataMintable.Contract.AddMinter(&_ERC721MetadataMintable.TransactOpts, account)
 17602  }
 17603  
 17604  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 17605  //
 17606  // Solidity: function addMinter(address account) returns()
 17607  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 17608  	return _ERC721MetadataMintable.Contract.AddMinter(&_ERC721MetadataMintable.TransactOpts, account)
 17609  }
 17610  
 17611  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 17612  //
 17613  // Solidity: function approve(address to, uint256 tokenId) returns()
 17614  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17615  	return _ERC721MetadataMintable.contract.Transact(opts, "approve", to, tokenId)
 17616  }
 17617  
 17618  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 17619  //
 17620  // Solidity: function approve(address to, uint256 tokenId) returns()
 17621  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17622  	return _ERC721MetadataMintable.Contract.Approve(&_ERC721MetadataMintable.TransactOpts, to, tokenId)
 17623  }
 17624  
 17625  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 17626  //
 17627  // Solidity: function approve(address to, uint256 tokenId) returns()
 17628  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17629  	return _ERC721MetadataMintable.Contract.Approve(&_ERC721MetadataMintable.TransactOpts, to, tokenId)
 17630  }
 17631  
 17632  // MintWithTokenURI is a paid mutator transaction binding the contract method 0x50bb4e7f.
 17633  //
 17634  // Solidity: function mintWithTokenURI(address to, uint256 tokenId, string tokenURI) returns(bool)
 17635  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) MintWithTokenURI(opts *bind.TransactOpts, to common.Address, tokenId *big.Int, tokenURI string) (*types.Transaction, error) {
 17636  	return _ERC721MetadataMintable.contract.Transact(opts, "mintWithTokenURI", to, tokenId, tokenURI)
 17637  }
 17638  
 17639  // MintWithTokenURI is a paid mutator transaction binding the contract method 0x50bb4e7f.
 17640  //
 17641  // Solidity: function mintWithTokenURI(address to, uint256 tokenId, string tokenURI) returns(bool)
 17642  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) MintWithTokenURI(to common.Address, tokenId *big.Int, tokenURI string) (*types.Transaction, error) {
 17643  	return _ERC721MetadataMintable.Contract.MintWithTokenURI(&_ERC721MetadataMintable.TransactOpts, to, tokenId, tokenURI)
 17644  }
 17645  
 17646  // MintWithTokenURI is a paid mutator transaction binding the contract method 0x50bb4e7f.
 17647  //
 17648  // Solidity: function mintWithTokenURI(address to, uint256 tokenId, string tokenURI) returns(bool)
 17649  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) MintWithTokenURI(to common.Address, tokenId *big.Int, tokenURI string) (*types.Transaction, error) {
 17650  	return _ERC721MetadataMintable.Contract.MintWithTokenURI(&_ERC721MetadataMintable.TransactOpts, to, tokenId, tokenURI)
 17651  }
 17652  
 17653  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 17654  //
 17655  // Solidity: function renounceMinter() returns()
 17656  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 17657  	return _ERC721MetadataMintable.contract.Transact(opts, "renounceMinter")
 17658  }
 17659  
 17660  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 17661  //
 17662  // Solidity: function renounceMinter() returns()
 17663  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) RenounceMinter() (*types.Transaction, error) {
 17664  	return _ERC721MetadataMintable.Contract.RenounceMinter(&_ERC721MetadataMintable.TransactOpts)
 17665  }
 17666  
 17667  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 17668  //
 17669  // Solidity: function renounceMinter() returns()
 17670  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) RenounceMinter() (*types.Transaction, error) {
 17671  	return _ERC721MetadataMintable.Contract.RenounceMinter(&_ERC721MetadataMintable.TransactOpts)
 17672  }
 17673  
 17674  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 17675  //
 17676  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 17677  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17678  	return _ERC721MetadataMintable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 17679  }
 17680  
 17681  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 17682  //
 17683  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 17684  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17685  	return _ERC721MetadataMintable.Contract.SafeTransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 17686  }
 17687  
 17688  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 17689  //
 17690  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 17691  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17692  	return _ERC721MetadataMintable.Contract.SafeTransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 17693  }
 17694  
 17695  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 17696  //
 17697  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 17698  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 17699  	return _ERC721MetadataMintable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 17700  }
 17701  
 17702  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 17703  //
 17704  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 17705  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 17706  	return _ERC721MetadataMintable.Contract.SafeTransferFrom0(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId, _data)
 17707  }
 17708  
 17709  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 17710  //
 17711  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 17712  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 17713  	return _ERC721MetadataMintable.Contract.SafeTransferFrom0(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId, _data)
 17714  }
 17715  
 17716  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 17717  //
 17718  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 17719  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 17720  	return _ERC721MetadataMintable.contract.Transact(opts, "setApprovalForAll", to, approved)
 17721  }
 17722  
 17723  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 17724  //
 17725  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 17726  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 17727  	return _ERC721MetadataMintable.Contract.SetApprovalForAll(&_ERC721MetadataMintable.TransactOpts, to, approved)
 17728  }
 17729  
 17730  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 17731  //
 17732  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 17733  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 17734  	return _ERC721MetadataMintable.Contract.SetApprovalForAll(&_ERC721MetadataMintable.TransactOpts, to, approved)
 17735  }
 17736  
 17737  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 17738  //
 17739  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 17740  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17741  	return _ERC721MetadataMintable.contract.Transact(opts, "transferFrom", from, to, tokenId)
 17742  }
 17743  
 17744  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 17745  //
 17746  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 17747  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17748  	return _ERC721MetadataMintable.Contract.TransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 17749  }
 17750  
 17751  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 17752  //
 17753  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 17754  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 17755  	return _ERC721MetadataMintable.Contract.TransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 17756  }
 17757  
 17758  // ERC721MetadataMintableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721MetadataMintable contract.
 17759  type ERC721MetadataMintableApprovalIterator struct {
 17760  	Event *ERC721MetadataMintableApproval // Event containing the contract specifics and raw log
 17761  
 17762  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17763  	event    string              // Event name to use for unpacking event data
 17764  
 17765  	logs chan types.Log      // Log channel receiving the found contract events
 17766  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 17767  	done bool                // Whether the subscription completed delivering logs
 17768  	fail error               // Occurred error to stop iteration
 17769  }
 17770  
 17771  // Next advances the iterator to the subsequent event, returning whether there
 17772  // are any more events found. In case of a retrieval or parsing error, false is
 17773  // returned and Error() can be queried for the exact failure.
 17774  func (it *ERC721MetadataMintableApprovalIterator) Next() bool {
 17775  	// If the iterator failed, stop iterating
 17776  	if it.fail != nil {
 17777  		return false
 17778  	}
 17779  	// If the iterator completed, deliver directly whatever's available
 17780  	if it.done {
 17781  		select {
 17782  		case log := <-it.logs:
 17783  			it.Event = new(ERC721MetadataMintableApproval)
 17784  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17785  				it.fail = err
 17786  				return false
 17787  			}
 17788  			it.Event.Raw = log
 17789  			return true
 17790  
 17791  		default:
 17792  			return false
 17793  		}
 17794  	}
 17795  	// Iterator still in progress, wait for either a data or an error event
 17796  	select {
 17797  	case log := <-it.logs:
 17798  		it.Event = new(ERC721MetadataMintableApproval)
 17799  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17800  			it.fail = err
 17801  			return false
 17802  		}
 17803  		it.Event.Raw = log
 17804  		return true
 17805  
 17806  	case err := <-it.sub.Err():
 17807  		it.done = true
 17808  		it.fail = err
 17809  		return it.Next()
 17810  	}
 17811  }
 17812  
 17813  // Error returns any retrieval or parsing error occurred during filtering.
 17814  func (it *ERC721MetadataMintableApprovalIterator) Error() error {
 17815  	return it.fail
 17816  }
 17817  
 17818  // Close terminates the iteration process, releasing any pending underlying
 17819  // resources.
 17820  func (it *ERC721MetadataMintableApprovalIterator) Close() error {
 17821  	it.sub.Unsubscribe()
 17822  	return nil
 17823  }
 17824  
 17825  // ERC721MetadataMintableApproval represents a Approval event raised by the ERC721MetadataMintable contract.
 17826  type ERC721MetadataMintableApproval struct {
 17827  	Owner    common.Address
 17828  	Approved common.Address
 17829  	TokenId  *big.Int
 17830  	Raw      types.Log // Blockchain specific contextual infos
 17831  }
 17832  
 17833  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 17834  //
 17835  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 17836  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721MetadataMintableApprovalIterator, error) {
 17837  
 17838  	var ownerRule []interface{}
 17839  	for _, ownerItem := range owner {
 17840  		ownerRule = append(ownerRule, ownerItem)
 17841  	}
 17842  	var approvedRule []interface{}
 17843  	for _, approvedItem := range approved {
 17844  		approvedRule = append(approvedRule, approvedItem)
 17845  	}
 17846  	var tokenIdRule []interface{}
 17847  	for _, tokenIdItem := range tokenId {
 17848  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 17849  	}
 17850  
 17851  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 17852  	if err != nil {
 17853  		return nil, err
 17854  	}
 17855  	return &ERC721MetadataMintableApprovalIterator{contract: _ERC721MetadataMintable.contract, event: "Approval", logs: logs, sub: sub}, nil
 17856  }
 17857  
 17858  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 17859  //
 17860  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 17861  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 17862  
 17863  	var ownerRule []interface{}
 17864  	for _, ownerItem := range owner {
 17865  		ownerRule = append(ownerRule, ownerItem)
 17866  	}
 17867  	var approvedRule []interface{}
 17868  	for _, approvedItem := range approved {
 17869  		approvedRule = append(approvedRule, approvedItem)
 17870  	}
 17871  	var tokenIdRule []interface{}
 17872  	for _, tokenIdItem := range tokenId {
 17873  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 17874  	}
 17875  
 17876  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 17877  	if err != nil {
 17878  		return nil, err
 17879  	}
 17880  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17881  		defer sub.Unsubscribe()
 17882  		for {
 17883  			select {
 17884  			case log := <-logs:
 17885  				// New log arrived, parse the event and forward to the user
 17886  				event := new(ERC721MetadataMintableApproval)
 17887  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Approval", log); err != nil {
 17888  					return err
 17889  				}
 17890  				event.Raw = log
 17891  
 17892  				select {
 17893  				case sink <- event:
 17894  				case err := <-sub.Err():
 17895  					return err
 17896  				case <-quit:
 17897  					return nil
 17898  				}
 17899  			case err := <-sub.Err():
 17900  				return err
 17901  			case <-quit:
 17902  				return nil
 17903  			}
 17904  		}
 17905  	}), nil
 17906  }
 17907  
 17908  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 17909  //
 17910  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 17911  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseApproval(log types.Log) (*ERC721MetadataMintableApproval, error) {
 17912  	event := new(ERC721MetadataMintableApproval)
 17913  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Approval", log); err != nil {
 17914  		return nil, err
 17915  	}
 17916  	return event, nil
 17917  }
 17918  
 17919  // ERC721MetadataMintableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721MetadataMintable contract.
 17920  type ERC721MetadataMintableApprovalForAllIterator struct {
 17921  	Event *ERC721MetadataMintableApprovalForAll // Event containing the contract specifics and raw log
 17922  
 17923  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17924  	event    string              // Event name to use for unpacking event data
 17925  
 17926  	logs chan types.Log      // Log channel receiving the found contract events
 17927  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 17928  	done bool                // Whether the subscription completed delivering logs
 17929  	fail error               // Occurred error to stop iteration
 17930  }
 17931  
 17932  // Next advances the iterator to the subsequent event, returning whether there
 17933  // are any more events found. In case of a retrieval or parsing error, false is
 17934  // returned and Error() can be queried for the exact failure.
 17935  func (it *ERC721MetadataMintableApprovalForAllIterator) Next() bool {
 17936  	// If the iterator failed, stop iterating
 17937  	if it.fail != nil {
 17938  		return false
 17939  	}
 17940  	// If the iterator completed, deliver directly whatever's available
 17941  	if it.done {
 17942  		select {
 17943  		case log := <-it.logs:
 17944  			it.Event = new(ERC721MetadataMintableApprovalForAll)
 17945  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17946  				it.fail = err
 17947  				return false
 17948  			}
 17949  			it.Event.Raw = log
 17950  			return true
 17951  
 17952  		default:
 17953  			return false
 17954  		}
 17955  	}
 17956  	// Iterator still in progress, wait for either a data or an error event
 17957  	select {
 17958  	case log := <-it.logs:
 17959  		it.Event = new(ERC721MetadataMintableApprovalForAll)
 17960  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17961  			it.fail = err
 17962  			return false
 17963  		}
 17964  		it.Event.Raw = log
 17965  		return true
 17966  
 17967  	case err := <-it.sub.Err():
 17968  		it.done = true
 17969  		it.fail = err
 17970  		return it.Next()
 17971  	}
 17972  }
 17973  
 17974  // Error returns any retrieval or parsing error occurred during filtering.
 17975  func (it *ERC721MetadataMintableApprovalForAllIterator) Error() error {
 17976  	return it.fail
 17977  }
 17978  
 17979  // Close terminates the iteration process, releasing any pending underlying
 17980  // resources.
 17981  func (it *ERC721MetadataMintableApprovalForAllIterator) Close() error {
 17982  	it.sub.Unsubscribe()
 17983  	return nil
 17984  }
 17985  
 17986  // ERC721MetadataMintableApprovalForAll represents a ApprovalForAll event raised by the ERC721MetadataMintable contract.
 17987  type ERC721MetadataMintableApprovalForAll struct {
 17988  	Owner    common.Address
 17989  	Operator common.Address
 17990  	Approved bool
 17991  	Raw      types.Log // Blockchain specific contextual infos
 17992  }
 17993  
 17994  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 17995  //
 17996  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 17997  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721MetadataMintableApprovalForAllIterator, error) {
 17998  
 17999  	var ownerRule []interface{}
 18000  	for _, ownerItem := range owner {
 18001  		ownerRule = append(ownerRule, ownerItem)
 18002  	}
 18003  	var operatorRule []interface{}
 18004  	for _, operatorItem := range operator {
 18005  		operatorRule = append(operatorRule, operatorItem)
 18006  	}
 18007  
 18008  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 18009  	if err != nil {
 18010  		return nil, err
 18011  	}
 18012  	return &ERC721MetadataMintableApprovalForAllIterator{contract: _ERC721MetadataMintable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 18013  }
 18014  
 18015  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 18016  //
 18017  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 18018  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 18019  
 18020  	var ownerRule []interface{}
 18021  	for _, ownerItem := range owner {
 18022  		ownerRule = append(ownerRule, ownerItem)
 18023  	}
 18024  	var operatorRule []interface{}
 18025  	for _, operatorItem := range operator {
 18026  		operatorRule = append(operatorRule, operatorItem)
 18027  	}
 18028  
 18029  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 18030  	if err != nil {
 18031  		return nil, err
 18032  	}
 18033  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18034  		defer sub.Unsubscribe()
 18035  		for {
 18036  			select {
 18037  			case log := <-logs:
 18038  				// New log arrived, parse the event and forward to the user
 18039  				event := new(ERC721MetadataMintableApprovalForAll)
 18040  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 18041  					return err
 18042  				}
 18043  				event.Raw = log
 18044  
 18045  				select {
 18046  				case sink <- event:
 18047  				case err := <-sub.Err():
 18048  					return err
 18049  				case <-quit:
 18050  					return nil
 18051  				}
 18052  			case err := <-sub.Err():
 18053  				return err
 18054  			case <-quit:
 18055  				return nil
 18056  			}
 18057  		}
 18058  	}), nil
 18059  }
 18060  
 18061  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 18062  //
 18063  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 18064  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseApprovalForAll(log types.Log) (*ERC721MetadataMintableApprovalForAll, error) {
 18065  	event := new(ERC721MetadataMintableApprovalForAll)
 18066  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 18067  		return nil, err
 18068  	}
 18069  	return event, nil
 18070  }
 18071  
 18072  // ERC721MetadataMintableMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ERC721MetadataMintable contract.
 18073  type ERC721MetadataMintableMinterAddedIterator struct {
 18074  	Event *ERC721MetadataMintableMinterAdded // Event containing the contract specifics and raw log
 18075  
 18076  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18077  	event    string              // Event name to use for unpacking event data
 18078  
 18079  	logs chan types.Log      // Log channel receiving the found contract events
 18080  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 18081  	done bool                // Whether the subscription completed delivering logs
 18082  	fail error               // Occurred error to stop iteration
 18083  }
 18084  
 18085  // Next advances the iterator to the subsequent event, returning whether there
 18086  // are any more events found. In case of a retrieval or parsing error, false is
 18087  // returned and Error() can be queried for the exact failure.
 18088  func (it *ERC721MetadataMintableMinterAddedIterator) Next() bool {
 18089  	// If the iterator failed, stop iterating
 18090  	if it.fail != nil {
 18091  		return false
 18092  	}
 18093  	// If the iterator completed, deliver directly whatever's available
 18094  	if it.done {
 18095  		select {
 18096  		case log := <-it.logs:
 18097  			it.Event = new(ERC721MetadataMintableMinterAdded)
 18098  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18099  				it.fail = err
 18100  				return false
 18101  			}
 18102  			it.Event.Raw = log
 18103  			return true
 18104  
 18105  		default:
 18106  			return false
 18107  		}
 18108  	}
 18109  	// Iterator still in progress, wait for either a data or an error event
 18110  	select {
 18111  	case log := <-it.logs:
 18112  		it.Event = new(ERC721MetadataMintableMinterAdded)
 18113  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18114  			it.fail = err
 18115  			return false
 18116  		}
 18117  		it.Event.Raw = log
 18118  		return true
 18119  
 18120  	case err := <-it.sub.Err():
 18121  		it.done = true
 18122  		it.fail = err
 18123  		return it.Next()
 18124  	}
 18125  }
 18126  
 18127  // Error returns any retrieval or parsing error occurred during filtering.
 18128  func (it *ERC721MetadataMintableMinterAddedIterator) Error() error {
 18129  	return it.fail
 18130  }
 18131  
 18132  // Close terminates the iteration process, releasing any pending underlying
 18133  // resources.
 18134  func (it *ERC721MetadataMintableMinterAddedIterator) Close() error {
 18135  	it.sub.Unsubscribe()
 18136  	return nil
 18137  }
 18138  
 18139  // ERC721MetadataMintableMinterAdded represents a MinterAdded event raised by the ERC721MetadataMintable contract.
 18140  type ERC721MetadataMintableMinterAdded struct {
 18141  	Account common.Address
 18142  	Raw     types.Log // Blockchain specific contextual infos
 18143  }
 18144  
 18145  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 18146  //
 18147  // Solidity: event MinterAdded(address indexed account)
 18148  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ERC721MetadataMintableMinterAddedIterator, error) {
 18149  
 18150  	var accountRule []interface{}
 18151  	for _, accountItem := range account {
 18152  		accountRule = append(accountRule, accountItem)
 18153  	}
 18154  
 18155  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "MinterAdded", accountRule)
 18156  	if err != nil {
 18157  		return nil, err
 18158  	}
 18159  	return &ERC721MetadataMintableMinterAddedIterator{contract: _ERC721MetadataMintable.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 18160  }
 18161  
 18162  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 18163  //
 18164  // Solidity: event MinterAdded(address indexed account)
 18165  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableMinterAdded, account []common.Address) (event.Subscription, error) {
 18166  
 18167  	var accountRule []interface{}
 18168  	for _, accountItem := range account {
 18169  		accountRule = append(accountRule, accountItem)
 18170  	}
 18171  
 18172  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "MinterAdded", accountRule)
 18173  	if err != nil {
 18174  		return nil, err
 18175  	}
 18176  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18177  		defer sub.Unsubscribe()
 18178  		for {
 18179  			select {
 18180  			case log := <-logs:
 18181  				// New log arrived, parse the event and forward to the user
 18182  				event := new(ERC721MetadataMintableMinterAdded)
 18183  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 18184  					return err
 18185  				}
 18186  				event.Raw = log
 18187  
 18188  				select {
 18189  				case sink <- event:
 18190  				case err := <-sub.Err():
 18191  					return err
 18192  				case <-quit:
 18193  					return nil
 18194  				}
 18195  			case err := <-sub.Err():
 18196  				return err
 18197  			case <-quit:
 18198  				return nil
 18199  			}
 18200  		}
 18201  	}), nil
 18202  }
 18203  
 18204  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 18205  //
 18206  // Solidity: event MinterAdded(address indexed account)
 18207  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseMinterAdded(log types.Log) (*ERC721MetadataMintableMinterAdded, error) {
 18208  	event := new(ERC721MetadataMintableMinterAdded)
 18209  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 18210  		return nil, err
 18211  	}
 18212  	return event, nil
 18213  }
 18214  
 18215  // ERC721MetadataMintableMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ERC721MetadataMintable contract.
 18216  type ERC721MetadataMintableMinterRemovedIterator struct {
 18217  	Event *ERC721MetadataMintableMinterRemoved // Event containing the contract specifics and raw log
 18218  
 18219  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18220  	event    string              // Event name to use for unpacking event data
 18221  
 18222  	logs chan types.Log      // Log channel receiving the found contract events
 18223  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 18224  	done bool                // Whether the subscription completed delivering logs
 18225  	fail error               // Occurred error to stop iteration
 18226  }
 18227  
 18228  // Next advances the iterator to the subsequent event, returning whether there
 18229  // are any more events found. In case of a retrieval or parsing error, false is
 18230  // returned and Error() can be queried for the exact failure.
 18231  func (it *ERC721MetadataMintableMinterRemovedIterator) Next() bool {
 18232  	// If the iterator failed, stop iterating
 18233  	if it.fail != nil {
 18234  		return false
 18235  	}
 18236  	// If the iterator completed, deliver directly whatever's available
 18237  	if it.done {
 18238  		select {
 18239  		case log := <-it.logs:
 18240  			it.Event = new(ERC721MetadataMintableMinterRemoved)
 18241  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18242  				it.fail = err
 18243  				return false
 18244  			}
 18245  			it.Event.Raw = log
 18246  			return true
 18247  
 18248  		default:
 18249  			return false
 18250  		}
 18251  	}
 18252  	// Iterator still in progress, wait for either a data or an error event
 18253  	select {
 18254  	case log := <-it.logs:
 18255  		it.Event = new(ERC721MetadataMintableMinterRemoved)
 18256  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18257  			it.fail = err
 18258  			return false
 18259  		}
 18260  		it.Event.Raw = log
 18261  		return true
 18262  
 18263  	case err := <-it.sub.Err():
 18264  		it.done = true
 18265  		it.fail = err
 18266  		return it.Next()
 18267  	}
 18268  }
 18269  
 18270  // Error returns any retrieval or parsing error occurred during filtering.
 18271  func (it *ERC721MetadataMintableMinterRemovedIterator) Error() error {
 18272  	return it.fail
 18273  }
 18274  
 18275  // Close terminates the iteration process, releasing any pending underlying
 18276  // resources.
 18277  func (it *ERC721MetadataMintableMinterRemovedIterator) Close() error {
 18278  	it.sub.Unsubscribe()
 18279  	return nil
 18280  }
 18281  
 18282  // ERC721MetadataMintableMinterRemoved represents a MinterRemoved event raised by the ERC721MetadataMintable contract.
 18283  type ERC721MetadataMintableMinterRemoved struct {
 18284  	Account common.Address
 18285  	Raw     types.Log // Blockchain specific contextual infos
 18286  }
 18287  
 18288  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 18289  //
 18290  // Solidity: event MinterRemoved(address indexed account)
 18291  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ERC721MetadataMintableMinterRemovedIterator, error) {
 18292  
 18293  	var accountRule []interface{}
 18294  	for _, accountItem := range account {
 18295  		accountRule = append(accountRule, accountItem)
 18296  	}
 18297  
 18298  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 18299  	if err != nil {
 18300  		return nil, err
 18301  	}
 18302  	return &ERC721MetadataMintableMinterRemovedIterator{contract: _ERC721MetadataMintable.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 18303  }
 18304  
 18305  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 18306  //
 18307  // Solidity: event MinterRemoved(address indexed account)
 18308  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableMinterRemoved, account []common.Address) (event.Subscription, error) {
 18309  
 18310  	var accountRule []interface{}
 18311  	for _, accountItem := range account {
 18312  		accountRule = append(accountRule, accountItem)
 18313  	}
 18314  
 18315  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 18316  	if err != nil {
 18317  		return nil, err
 18318  	}
 18319  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18320  		defer sub.Unsubscribe()
 18321  		for {
 18322  			select {
 18323  			case log := <-logs:
 18324  				// New log arrived, parse the event and forward to the user
 18325  				event := new(ERC721MetadataMintableMinterRemoved)
 18326  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 18327  					return err
 18328  				}
 18329  				event.Raw = log
 18330  
 18331  				select {
 18332  				case sink <- event:
 18333  				case err := <-sub.Err():
 18334  					return err
 18335  				case <-quit:
 18336  					return nil
 18337  				}
 18338  			case err := <-sub.Err():
 18339  				return err
 18340  			case <-quit:
 18341  				return nil
 18342  			}
 18343  		}
 18344  	}), nil
 18345  }
 18346  
 18347  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 18348  //
 18349  // Solidity: event MinterRemoved(address indexed account)
 18350  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseMinterRemoved(log types.Log) (*ERC721MetadataMintableMinterRemoved, error) {
 18351  	event := new(ERC721MetadataMintableMinterRemoved)
 18352  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 18353  		return nil, err
 18354  	}
 18355  	return event, nil
 18356  }
 18357  
 18358  // ERC721MetadataMintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721MetadataMintable contract.
 18359  type ERC721MetadataMintableTransferIterator struct {
 18360  	Event *ERC721MetadataMintableTransfer // Event containing the contract specifics and raw log
 18361  
 18362  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18363  	event    string              // Event name to use for unpacking event data
 18364  
 18365  	logs chan types.Log      // Log channel receiving the found contract events
 18366  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 18367  	done bool                // Whether the subscription completed delivering logs
 18368  	fail error               // Occurred error to stop iteration
 18369  }
 18370  
 18371  // Next advances the iterator to the subsequent event, returning whether there
 18372  // are any more events found. In case of a retrieval or parsing error, false is
 18373  // returned and Error() can be queried for the exact failure.
 18374  func (it *ERC721MetadataMintableTransferIterator) Next() bool {
 18375  	// If the iterator failed, stop iterating
 18376  	if it.fail != nil {
 18377  		return false
 18378  	}
 18379  	// If the iterator completed, deliver directly whatever's available
 18380  	if it.done {
 18381  		select {
 18382  		case log := <-it.logs:
 18383  			it.Event = new(ERC721MetadataMintableTransfer)
 18384  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18385  				it.fail = err
 18386  				return false
 18387  			}
 18388  			it.Event.Raw = log
 18389  			return true
 18390  
 18391  		default:
 18392  			return false
 18393  		}
 18394  	}
 18395  	// Iterator still in progress, wait for either a data or an error event
 18396  	select {
 18397  	case log := <-it.logs:
 18398  		it.Event = new(ERC721MetadataMintableTransfer)
 18399  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18400  			it.fail = err
 18401  			return false
 18402  		}
 18403  		it.Event.Raw = log
 18404  		return true
 18405  
 18406  	case err := <-it.sub.Err():
 18407  		it.done = true
 18408  		it.fail = err
 18409  		return it.Next()
 18410  	}
 18411  }
 18412  
 18413  // Error returns any retrieval or parsing error occurred during filtering.
 18414  func (it *ERC721MetadataMintableTransferIterator) Error() error {
 18415  	return it.fail
 18416  }
 18417  
 18418  // Close terminates the iteration process, releasing any pending underlying
 18419  // resources.
 18420  func (it *ERC721MetadataMintableTransferIterator) Close() error {
 18421  	it.sub.Unsubscribe()
 18422  	return nil
 18423  }
 18424  
 18425  // ERC721MetadataMintableTransfer represents a Transfer event raised by the ERC721MetadataMintable contract.
 18426  type ERC721MetadataMintableTransfer struct {
 18427  	From    common.Address
 18428  	To      common.Address
 18429  	TokenId *big.Int
 18430  	Raw     types.Log // Blockchain specific contextual infos
 18431  }
 18432  
 18433  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 18434  //
 18435  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 18436  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721MetadataMintableTransferIterator, error) {
 18437  
 18438  	var fromRule []interface{}
 18439  	for _, fromItem := range from {
 18440  		fromRule = append(fromRule, fromItem)
 18441  	}
 18442  	var toRule []interface{}
 18443  	for _, toItem := range to {
 18444  		toRule = append(toRule, toItem)
 18445  	}
 18446  	var tokenIdRule []interface{}
 18447  	for _, tokenIdItem := range tokenId {
 18448  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 18449  	}
 18450  
 18451  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 18452  	if err != nil {
 18453  		return nil, err
 18454  	}
 18455  	return &ERC721MetadataMintableTransferIterator{contract: _ERC721MetadataMintable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 18456  }
 18457  
 18458  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 18459  //
 18460  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 18461  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 18462  
 18463  	var fromRule []interface{}
 18464  	for _, fromItem := range from {
 18465  		fromRule = append(fromRule, fromItem)
 18466  	}
 18467  	var toRule []interface{}
 18468  	for _, toItem := range to {
 18469  		toRule = append(toRule, toItem)
 18470  	}
 18471  	var tokenIdRule []interface{}
 18472  	for _, tokenIdItem := range tokenId {
 18473  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 18474  	}
 18475  
 18476  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 18477  	if err != nil {
 18478  		return nil, err
 18479  	}
 18480  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18481  		defer sub.Unsubscribe()
 18482  		for {
 18483  			select {
 18484  			case log := <-logs:
 18485  				// New log arrived, parse the event and forward to the user
 18486  				event := new(ERC721MetadataMintableTransfer)
 18487  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 18488  					return err
 18489  				}
 18490  				event.Raw = log
 18491  
 18492  				select {
 18493  				case sink <- event:
 18494  				case err := <-sub.Err():
 18495  					return err
 18496  				case <-quit:
 18497  					return nil
 18498  				}
 18499  			case err := <-sub.Err():
 18500  				return err
 18501  			case <-quit:
 18502  				return nil
 18503  			}
 18504  		}
 18505  	}), nil
 18506  }
 18507  
 18508  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 18509  //
 18510  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 18511  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseTransfer(log types.Log) (*ERC721MetadataMintableTransfer, error) {
 18512  	event := new(ERC721MetadataMintableTransfer)
 18513  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 18514  		return nil, err
 18515  	}
 18516  	return event, nil
 18517  }
 18518  
 18519  // ExtBridgeMetaData contains all meta data concerning the ExtBridge contract.
 18520  var ExtBridgeMetaData = &bind.MetaData{
 18521  	ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"callback\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"}],\"name\":\"setERC20Fee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"},{\"name\":\"_requestBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"requestSellERC721\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"setCallback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"},{\"name\":\"_requestBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_tokenURI\",\"type\":\"string\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"requestSellERC20\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC20Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_modeMintBurn\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
 18522  	Sigs: map[string]string{
 18523  		"3a3099d1": "MAX_OPERATOR()",
 18524  		"083b2732": "callback()",
 18525  		"9832c1d7": "closedValueTransferVotes(uint64)",
 18526  		"ac6fff0b": "configurationNonce()",
 18527  		"d8cf98ca": "deregisterOperator(address)",
 18528  		"bab2af1d": "deregisterToken(address)",
 18529  		"488af871": "feeOfERC20(address)",
 18530  		"c263b5d6": "feeOfKLAY()",
 18531  		"b3f00674": "feeReceiver()",
 18532  		"b2c01030": "getOperatorList()",
 18533  		"ea21eade": "getRegisteredTokenList()",
 18534  		"407e6bae": "handleERC20Transfer(bytes32,address,address,address,uint256,uint64,uint64,bytes)",
 18535  		"afb60223": "handleERC721Transfer(bytes32,address,address,address,uint256,uint64,uint64,string,bytes)",
 18536  		"13a6738a": "handleNoncesToBlockNums(uint64)",
 18537  		"8a75eee2": "handledRequestTx(bytes32)",
 18538  		"48a18a6a": "indexOfTokens(address)",
 18539  		"8f32d59b": "isOwner()",
 18540  		"2014e5d1": "isRunning()",
 18541  		"10693fcd": "lockToken(address)",
 18542  		"5eb7413a": "lockedTokens(address)",
 18543  		"4b40b826": "lowerHandleNonce()",
 18544  		"6e176ec2": "modeMintBurn()",
 18545  		"f1656e53": "onERC20Received(address,address,uint256,uint256,bytes)",
 18546  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
 18547  		"cb38f407": "operatorList(uint256)",
 18548  		"5526f76b": "operatorThresholds(uint8)",
 18549  		"13e7c9d8": "operators(address)",
 18550  		"8da5cb5b": "owner()",
 18551  		"989ba0d3": "recoveryBlockNumber()",
 18552  		"3682a450": "registerOperator(address)",
 18553  		"4739f7e5": "registerToken(address,address)",
 18554  		"3e4fe949": "registeredTokenList(uint256)",
 18555  		"8c0bd916": "registeredTokens(address)",
 18556  		"715018a6": "renounceOwnership()",
 18557  		"26c23b54": "requestERC20Transfer(address,address,uint256,uint256,bytes)",
 18558  		"22604742": "requestERC721Transfer(address,address,uint256,bytes)",
 18559  		"7c1a0302": "requestNonce()",
 18560  		"c5e49073": "requestSellERC20(address,address,uint256,uint256,uint256)",
 18561  		"4c5146f5": "requestSellERC721(address,address,uint256,uint256)",
 18562  		"8daa63ac": "setCallback(address)",
 18563  		"2f88396c": "setERC20Fee(address,uint256,uint64)",
 18564  		"efdcd974": "setFeeReceiver(address)",
 18565  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
 18566  		"c877cf37": "start(bool)",
 18567  		"f2fde38b": "transferOwnership(address)",
 18568  		"9ef2017b": "unlockToken(address)",
 18569  		"54edad72": "upperHandleNonce()",
 18570  	},
 18571  	Bin: "0x60806040819052600180546001600160a01b03199081169091556000600255600e8054600160401b61ffff0219166901000000000000000000179055600f8054600160401b600160801b0319166801000000000000000017905560118054909116905560208062003fb28339810180604052602081101561007f57600080fd5b5051600180546001600160a01b03199081169091556004805490911633179081905560405182916001600160a01b0316906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360005b600260ff8216101561010d5760ff81166000908152600d60205260409020805460ff19166001908117909155016100db565b50336000818152600b60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055600e80549115156801000000000000000002600160401b60ff021990921691909117905550613e13806200019f6000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c80638a75eee211610167578063bab2af1d116100ce578063d8cf98ca11610087578063d8cf98ca14610b56578063ea21eade14610b7c578063ee2aec6514610b84578063efdcd97414610bac578063f1656e5314610bd2578063f2fde38b14610c9b57610295565b8063bab2af1d146109e7578063c263b5d614610a0d578063c5e4907314610a15578063c877cf3714610a57578063cb38f40714610a76578063cf0da29014610a9357610295565b8063989ba0d311610120578063989ba0d3146107e05780639ef2017b146107e8578063ac6fff0b1461080e578063afb6022314610816578063b2c0103014610987578063b3f00674146109df57610295565b80638a75eee2146107415780638c0bd9161461075e5780638da5cb5b146107845780638daa63ac1461078c5780638f32d59b146107b25780639832c1d7146107ba57610295565b8063407e6bae1161020b57806354edad72116101c457806354edad72146106c55780635526f76b146106cd5780635eb7413a146107035780636e176ec214610729578063715018a6146107315780637c1a03021461073957610295565b8063407e6bae146105095780634739f7e5146105f5578063488af8711461062357806348a18a6a1461065b5780634b40b826146106815780634c5146f51461068957610295565b8063226047421161025d578063226047421461036a57806326c23b541461042e5780632f88396c146104835780633682a450146104be5780633a3099d1146104e45780633e4fe949146104ec57610295565b8063083b27321461029a57806310693fcd146102be57806313a6738a146102e657806313e7c9d8146103285780632014e5d114610362575b600080fd5b6102a2610cc1565b604080516001600160a01b039092168252519081900360200190f35b6102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610cd0565b005b61030c600480360360208110156102fc57600080fd5b50356001600160401b0316610e35565b604080516001600160401b039092168252519081900360200190f35b61034e6004803603602081101561033e57600080fd5b50356001600160a01b0316610e50565b604080519115158252519081900360200190f35b61034e610e65565b6102e46004803603608081101561038057600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156103ba57600080fd5b8201836020820111156103cc57600080fd5b803590602001918460018302840111600160201b831117156103ed57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e75945050505050565b6102e4600480360360a081101561044457600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b8111156103ba57600080fd5b6102e46004803603606081101561049957600080fd5b5080356001600160a01b031690602081013590604001356001600160401b0316610eb6565b6102e4600480360360208110156104d457600080fd5b50356001600160a01b0316610f3e565b61030c6110b8565b6102a26004803603602081101561050257600080fd5b50356110bd565b6102e4600480360361010081101561052057600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b81111561058157600080fd5b82018360208201111561059357600080fd5b803590602001918460018302840111600160201b831117156105b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110e4945050505050565b6102e46004803603604081101561060b57600080fd5b506001600160a01b03813581169160200135166112ab565b6106496004803603602081101561063957600080fd5b50356001600160a01b0316611408565b60408051918252519081900360200190f35b6106496004803603602081101561067157600080fd5b50356001600160a01b031661141a565b61030c61142c565b6102e46004803603608081101561069f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611442565b61030c611473565b6106ed600480360360208110156106e357600080fd5b503560ff16611482565b6040805160ff9092168252519081900360200190f35b61034e6004803603602081101561071957600080fd5b50356001600160a01b0316611497565b61034e6114ac565b6102e46114bc565b61030c611550565b61034e6004803603602081101561075757600080fd5b5035611566565b6102a26004803603602081101561077457600080fd5b50356001600160a01b031661157b565b6102a2611596565b6102e4600480360360208110156107a257600080fd5b50356001600160a01b03166115a6565b61034e611612565b61034e600480360360208110156107d057600080fd5b50356001600160401b0316611623565b61030c611638565b6102e4600480360360208110156107fe57600080fd5b50356001600160a01b031661164e565b61030c6117c2565b6102e4600480360361012081101561082d57600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b81111561088e57600080fd5b8201836020820111156108a057600080fd5b803590602001918460018302840111600160201b831117156108c157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561091357600080fd5b82018360208201111561092557600080fd5b803590602001918460018302840111600160201b8311171561094657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117d1945050505050565b61098f61199a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156109cb5781810151838201526020016109b3565b505050509050019250505060405180910390f35b6102a26119fc565b6102e4600480360360208110156109fd57600080fd5b50356001600160a01b0316611a0b565b610649611bfa565b6102e4600480360360a0811015610a2b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135611c00565b6102e460048036036020811015610a6d57600080fd5b50351515611c33565b6102a260048036036020811015610a8c57600080fd5b5035611ca1565b6102e460048036036080811015610aa957600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b811115610ae257600080fd5b820183602082011115610af457600080fd5b803590602001918460018302840111600160201b83111715610b1557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611cae945050505050565b6102e460048036036020811015610b6c57600080fd5b50356001600160a01b0316611cbb565b61098f611e0d565b6102e460048036036040811015610b9a57600080fd5b5060ff81358116916020013516611e6d565b6102e460048036036020811015610bc257600080fd5b50356001600160a01b0316611fa9565b6102e4600480360360a0811015610be857600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610c2757600080fd5b820183602082011115610c3957600080fd5b803590602001918460018302840111600160201b83111715610c5a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611fff945050505050565b6102e460048036036020811015610cb157600080fd5b50356001600160a01b031661200d565b6011546001600160a01b031681565b610cd8611612565b610d1a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b03808216600090815260056020526040902054829116610d825760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260086020526040902054829060ff1615610de75760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038316600081815260086020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6010602052600090815260409020546001600160401b031681565b600b6020526000908152604090205460ff1681565b600e54600160481b900460ff1681565b60408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081cdd5c1c1bdc9d02604482015290519081900360640190fd5b336000908152600b602052604090205460ff16610f1d5760408051600160e51b62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206973206e6f7420616e206f70657261746f72000000604482015290519081900360640190fd5b610f2681612060565b610f2f57610f39565b610f398383612134565b505050565b610f46611612565b610f885760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b600c805410610fe15760408051600160e51b62461bcd02815260206004820152601260248201527f6d6178206f70657261746f72206c696d69740000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600b602052604090205460ff16156110525760408051600160e51b62461bcd02815260206004820152600e60248201527f6578697374206f70657261746f72000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000818152600b60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b600c81565b600781815481106110ca57fe5b6000918252602090912001546001600160a01b0316905081565b805160201461113d5760408051600160e51b62461bcd02815260206004820152601460248201527f6578747261446174612073697a65206572726f72000000000000000000000000604482015290519081900360640190fd5b6011546001600160a01b031661119d5760408051600160e51b62461bcd02815260206004820152601660248201527f63616c6c6261636b2061646472657373206572726f7200000000000000000000604482015290519081900360640190fd5b60008180602001905160208110156111b457600080fd5b50519050806112035760408051600160e51b62461bcd0281526020600482015260106024820152600160811b6f37b33332b9283934b1b29032b93937b902604482015290519081900360640190fd5b601154611221908a908a906001600160a01b0316898989898961217b565b60115460408051600160e11b632f6233f10281526001600160a01b038a811660048301526024820189905289811660448301526064820185905291519190921691635ec467e291608480830192600092919082900301818387803b15801561128857600080fd5b505af115801561129c573d6000803e3d6000fd5b50505050505050505050505050565b6112b3611612565b6112f55760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b03808316600090815260056020526040902054839116156113675760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260056020908152604080832080549588166001600160a01b031996871617905560078054600690935281842083905560018301815583527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890910180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60036020526000908152604090205481565b60066020526000908152604090205481565b600e54600160901b90046001600160401b031681565b61146d8484848460405160200180828152602001915050604051602081830303815290604052612530565b50505050565b600f546001600160401b031681565b600d6020526000908152604090205460ff1681565b60086020526000908152604090205460ff1681565b600e54600160401b900460ff1681565b6114c4611612565b6115065760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b600e54600160501b90046001600160401b031681565b60006020819052908152604090205460ff1681565b6005602052600090815260409020546001600160a01b031681565b6004546001600160a01b03165b90565b6115ae611612565b6115f05760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b0316331490565b600a6020526000908152604090205460ff1681565b600f54600160401b90046001600160401b031681565b611656611612565b6116985760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600560205260409020548291166117005760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260086020526040902054829060ff1615156001146117775760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260086020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b600e546001600160401b031681565b805160201461182a5760408051600160e51b62461bcd02815260206004820152601460248201527f6578747261446174612073697a65206572726f72000000000000000000000000604482015290519081900360640190fd5b6011546001600160a01b031661188a5760408051600160e51b62461bcd02815260206004820152601660248201527f63616c6c6261636b2061646472657373206572726f7200000000000000000000604482015290519081900360640190fd5b60008180602001905160208110156118a157600080fd5b50519050806118f05760408051600160e51b62461bcd0281526020600482015260106024820152600160811b6f37b33332b9283934b1b29032b93937b902604482015290519081900360640190fd5b60115461190f908b908b906001600160a01b03168a8a8a8a8a8a6125ac565b60115460408051600160e11b632f6233f10281526001600160a01b038b81166004830152602482018a90528a811660448301526064820185905291519190921691635ec467e291608480830192600092919082900301818387803b15801561197657600080fd5b505af115801561198a573d6000803e3d6000fd5b5050505050505050505050505050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156119f257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119d4575b5050505050905090565b6001546001600160a01b031681565b611a13611612565b611a555760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b03808216600090815260056020526040902054829116611abd5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260056020908152604080832080546001600160a01b031916905560088252808320805460ff1916905560069091528120805491905560075460001901811015611bad57600780546000198101908110611b2157fe5b600091825260209091200154600780546001600160a01b039092169183908110611b4757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806006600060078481548110611b8757fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6007805490611bc0906000198301613ccc565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60025481565b611c2c85858585856040516020018082815260200191505060405160208183030381529060405261294e565b5050505050565b611c3b611612565b611c7d5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b600e8054911515600160481b0269ff00000000000000000019909216919091179055565b600c81815481106110ca57fe5b61146d3385848685612a38565b611cc3611612565b611d055760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600b602052604090205460ff16611d2a57600080fd5b6001600160a01b0381166000908152600b60205260408120805460ff191690555b600c54811015611e0957816001600160a01b0316600c8281548110611d6c57fe5b6000918252602090912001546001600160a01b03161415611e0157600c80546000198101908110611d9957fe5b600091825260209091200154600c80546001600160a01b039092169183908110611dbf57fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600c805490611dfb906000198301613ccc565b50611e09565b600101611d4b565b5050565b606060078054806020026020016040519081016040528092919081815260200182805480156119f2576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116119d4575050505050905090565b611e75611612565b611eb75760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b60008160ff1611611f125760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f207468726573686f6c64000000000000000000000000000000000000604482015290519081900360640190fd5b600c5460ff82161115611f6f5760408051600160e51b62461bcd02815260206004820152601c60248201527f626967676572207468616e206e756d206f66206f70657261746f727300000000604482015290519081900360640190fd5b80600d6000846002811115611f8057fe5b60ff90811682526020820192909252604001600020805460ff1916929091169190911790555050565b611fb1611612565b611ff35760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b611ffc81612f64565b50565b611c2c338686868686612fae565b612015611612565b6120575760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b611ffc816132f9565b600e546000906001600160401b038381169116146120c85760408051600160e51b62461bcd02815260206004820152600e60248201527f6e6f6e6365206d69736d61746368000000000000000000000000000000000000604482015290519081900360640190fd5b60008036604051808383808284378083019250505092505050604051809103902090506120f76001848361339d565b15612129575050600e805467ffffffffffffffff19811660016001600160401b0392831681019092161790915561212f565b60009150505b919050565b6001600160a01b038216600081815260036020526040808220849055518392917fdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b91a35050565b336000908152600b602052604090205460ff166121e25760408051600160e51b62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206973206e6f7420616e206f70657261746f72000000604482015290519081900360640190fd5b6121eb8361350b565b6121f483613578565b6121fd57612526565b6122068861363b565b6001600160401b038381166000908152601060205260409020805467ffffffffffffffff191691841691909117905561223e83613656565b846001600160a01b0316866001600160a01b0316886001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758b60018989600e60129054906101000a90046001600160401b031689604051808781526020018660028111156122af57fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561232657818101518382015260200161230e565b50505050905090810190601f1680156123535780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600e54600160401b900460ff161561245c57846001600160a01b03166340c10f1987866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156123d757600080fd5b505af11580156123eb573d6000803e3d6000fd5b505050506040513d602081101561240157600080fd5b50516124575760408051600160e51b62461bcd02815260206004820181905260248201527f68616e646c6545524332305472616e736665723a206d696e74206661696c6564604482015290519081900360640190fd5b612526565b846001600160a01b031663a9059cbb87866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156124bc57600080fd5b505af11580156124d0573d6000803e3d6000fd5b505050506040513d60208110156124e657600080fd5b505161252657604051600160e51b62461bcd028152600401808060200182810382526024815260200180613dc46024913960400191505060405180910390fd5b5050505050505050565b60408051600160e01b6323b872dd0281523360048201523060248201526044810184905290516001600160a01b038616916323b872dd91606480830192600092919082900301818387803b15801561258757600080fd5b505af115801561259b573d6000803e3d6000fd5b5050505061146d8433858585612a38565b336000908152600b602052604090205460ff166126135760408051600160e51b62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206973206e6f7420616e206f70657261746f72000000604482015290519081900360640190fd5b61261c8461350b565b61262584613578565b61262e57612943565b6126378961363b565b6001600160401b038481166000908152601060205260409020805467ffffffffffffffff191691851691909117905561266f84613656565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758c60028a8a600e60129054906101000a90046001600160401b031689604051808781526020018660028111156126e057fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561275757818101518382015260200161273f565b50505050905090810190601f1680156127845780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600e54600160401b900460ff16156128e857856001600160a01b03166350bb4e7f8887856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561282457818101518382015260200161280c565b50505050905090810190601f1680156128515780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561287257600080fd5b505af1158015612886573d6000803e3d6000fd5b505050506040513d602081101561289c57600080fd5b50516128e35760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b5a5b9d0819985a5b195902604482015290519081900360640190fd5b612943565b60408051600160e01b6323b872dd0281523060048201526001600160a01b038981166024830152604482018890529151918816916323b872dd9160648082019260009290919082900301818387803b15801561128857600080fd5b505050505050505050565b6001600160a01b0385166323b872dd333061296f878763ffffffff6137ba16565b6040805163ffffffff861660e01b81526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b1580156129c057600080fd5b505af11580156129d4573d6000803e3d6000fd5b505050506040513d60208110156129ea57600080fd5b5051612a2a57604051600160e51b62461bcd028152600401808060200182810382526029815260200180613d9b6029913960400191505060405180910390fd5b611c2c853386868686612fae565b6001600160a01b03808616600090815260056020526040902054869116612aa05760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038616600090815260086020526040902054869060ff1615612b055760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600e54600160481b900460ff16612b5a5760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b604080516020808201879052825180830382018152828401909352600160e01b63c87b56dd026060838101828152855160009692956001600160a01b038f1695606490910191908401908083835b60208310612bc75780518252601f199092019160209182019101612ba8565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b60208310612c2b5780518252601f199092019160209182019101612c0c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c8d576040519150601f19603f3d011682016040523d82523d6000602084013e612c92565b606091505b50909250905081612cae57506040805160208101909152600081525b600e54600160401b900460ff1615612d1f57886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612d0657600080fd5b505af1158015612d1a573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167f17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f60028a600e600a9054906101000a90046001600160401b031660008c60028a6040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612dbd578181015183820152602001612da5565b50505050905090810190601f168015612dea5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405260405180886002811115612e0e57fe5b60ff168152602001878152602001866001600160401b03166001600160401b03168152602001858152602001806020018460ff16815260200180602001838103835286818151815260200191508051906020019080838360005b83811015612e80578181015183820152602001612e68565b50505050905090810190601f168015612ead5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015612ee0578181015183820152602001612ec8565b50505050905090810190601f168015612f0d5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a45050600e805460016001600160401b03600160501b808404821692909201160271ffffffffffffffff000000000000000000001990911617905550505050505050565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f78605990600090a250565b6001600160a01b038087166000908152600560205260409020548791166130165760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038716600090815260086020526040902054879060ff161561307b5760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600e54600160481b900460ff166130d05760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b600085116131285760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f206d73672e76616c7565000000000000000000000000000000000000604482015290519081900360640190fd5b6000613135888a87613817565b600e54909150600160401b900460ff16156131a957886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561319057600080fd5b505af11580156131a4573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167feff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f0960018a600e600a9054906101000a90046001600160401b0316878b6040518086600281111561321357fe5b60ff168152602001858152602001846001600160401b03166001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613278578181015183820152602001613260565b50505050905090810190601f1680156132a55780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a45050600e805460016001600160401b03600160501b808404821692909201160271ffffffffffffffff000000000000000000001990911617905550505050505050565b6001600160a01b03811661334157604051600160e51b62461bcd028152600401808060200182810382526026815260200180613d296026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080600960008660028111156133b057fe5b60ff168152602080820192909252604090810160009081206001600160401b03881682528352818120338252600181019093522054909150806134145781546001810183556000838152602090200180546001600160a01b0319163317905561343b565b60008181526003830160205260409020805460ff19811660ff918216600019019091161790555b33600090815260018301602090815260408083208790558683526003850190915290205460ff166134815760028201805460018101825560009182526020909120018490555b60008481526003830160205260408120805460ff8082166001011660ff19909116179055600d908760028111156134b457fe5b60ff908116825260208083019390935260409182016000908120548882526003870190945291909120549181169116106134fd576134f28686613b34565b600192505050613504565b6000925050505b9392505050565b600e546001600160401b03808316600160901b909204161115611ffc5760408051600160e51b62461bcd02815260206004820152600c60248201527f72656d6f76656420766f74650000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160401b0381166000908152600a602052604081205460ff16156135da5760408051600160e51b62461bcd02815260206004820152600b6024820152600160a81b6a636c6f73656420766f746502604482015290519081900360640190fd5b60008036604051808383808284378083019250505092505050604051809103902090506136096000848361339d565b156121295750506001600160401b0381166000908152600a60205260409020805460ff1916600190811790915561212f565b6000908152602081905260409020805460ff19166001179055565b600f546001600160401b03908116908216111561368a57600f805467ffffffffffffffff19166001600160401b0383161790555b600e54600f5460c86001600160401b03600160901b9093048316019190811690821611156136c05750600f546001600160401b03165b600e54600160901b90046001600160401b03165b816001600160401b0316816001600160401b03161115801561370f57506001600160401b038082166000908152601060205260409020541615155b1561377c576001600160401b0381811660009081526010602090815260408083208054600f80546fffffffffffffffff0000000000000000191691909616600160401b0217909455835467ffffffffffffffff1916909355600a905220805460ff191690556001016136d4565b600e80546001600160401b03909216600160901b0279ffffffffffffffff000000000000000000000000000000000000199092169190911790555050565b6000828201838110156135045760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038083166000908152600360205260408120546001549192909116158015906138475750600081115b15613a5f57808310156138a45760408051600160e51b62461bcd02815260206004820152601560248201527f696e73756666696369656e74206665654c696d69740000000000000000000000604482015290519081900360640190fd5b60015460408051600160e01b63a9059cbb0281526001600160a01b0392831660048201526024810184905290519186169163a9059cbb916044808201926020929091908290030181600087803b1580156138fd57600080fd5b505af1158015613911573d6000803e3d6000fd5b505050506040513d602081101561392757600080fd5b505161396757604051600160e51b62461bcd02815260040180806020018281038252602c815260200180613d6f602c913960400191505060405180910390fd5b6000613979848363ffffffff613c6c16565b1115613a58576001600160a01b03841663a9059cbb8661399f868563ffffffff613c6c16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156139ee57600080fd5b505af1158015613a02573d6000803e3d6000fd5b505050506040513d6020811015613a1857600080fd5b5051613a5857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180613d6f602c913960400191505060405180910390fd5b9050613504565b836001600160a01b031663a9059cbb86856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613abf57600080fd5b505af1158015613ad3573d6000803e3d6000fd5b505050506040513d6020811015613ae957600080fd5b5051613b2957604051600160e51b62461bcd02815260040180806020018281038252602c815260200180613d6f602c913960400191505060405180910390fd5b506000949350505050565b600060096000846002811115613b4657fe5b60ff168152602080820192909252604090810160009081206001600160401b0386168252909252812091505b815460ff82161015613bc357816001016000836000018360ff1681548110613b9657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055600101613b72565b5060005b600282015460ff82161015613c1957816003016000836002018360ff1681548110613bee57fe5b600091825260208083209091015483528201929092526040019020805460ff19169055600101613bc7565b5060096000846002811115613c2a57fe5b60ff168152602080820192909252604090810160009081206001600160401b0386168252909252812090613c5e8282613cf0565b611c2c600283016000613cf0565b600082821115613cc65760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b815481835581811115610f3957600083815260209020610f39918101908301613d0a565b5080546000825590600052602060002090810190611ffc91905b6115a391905b80821115613d245760008155600101613d10565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f7061794552433230466565416e64526566756e644368616e67653a207472616e73666572206661696c65647265717565737445524332305472616e736665723a207472616e7366657246726f6d206661696c656468616e646c6545524332305472616e736665723a207472616e73666572206661696c6564a165627a7a72305820fcdb740ed2933f84d2a5bf4688085cd4d3139c0443216e4d8182c4bff254200e0029",
 18572  }
 18573  
 18574  // ExtBridgeABI is the input ABI used to generate the binding from.
 18575  // Deprecated: Use ExtBridgeMetaData.ABI instead.
 18576  var ExtBridgeABI = ExtBridgeMetaData.ABI
 18577  
 18578  // ExtBridgeBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 18579  const ExtBridgeBinRuntime = `608060405234801561001057600080fd5b50600436106102955760003560e01c80638a75eee211610167578063bab2af1d116100ce578063d8cf98ca11610087578063d8cf98ca14610b56578063ea21eade14610b7c578063ee2aec6514610b84578063efdcd97414610bac578063f1656e5314610bd2578063f2fde38b14610c9b57610295565b8063bab2af1d146109e7578063c263b5d614610a0d578063c5e4907314610a15578063c877cf3714610a57578063cb38f40714610a76578063cf0da29014610a9357610295565b8063989ba0d311610120578063989ba0d3146107e05780639ef2017b146107e8578063ac6fff0b1461080e578063afb6022314610816578063b2c0103014610987578063b3f00674146109df57610295565b80638a75eee2146107415780638c0bd9161461075e5780638da5cb5b146107845780638daa63ac1461078c5780638f32d59b146107b25780639832c1d7146107ba57610295565b8063407e6bae1161020b57806354edad72116101c457806354edad72146106c55780635526f76b146106cd5780635eb7413a146107035780636e176ec214610729578063715018a6146107315780637c1a03021461073957610295565b8063407e6bae146105095780634739f7e5146105f5578063488af8711461062357806348a18a6a1461065b5780634b40b826146106815780634c5146f51461068957610295565b8063226047421161025d578063226047421461036a57806326c23b541461042e5780632f88396c146104835780633682a450146104be5780633a3099d1146104e45780633e4fe949146104ec57610295565b8063083b27321461029a57806310693fcd146102be57806313a6738a146102e657806313e7c9d8146103285780632014e5d114610362575b600080fd5b6102a2610cc1565b604080516001600160a01b039092168252519081900360200190f35b6102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610cd0565b005b61030c600480360360208110156102fc57600080fd5b50356001600160401b0316610e35565b604080516001600160401b039092168252519081900360200190f35b61034e6004803603602081101561033e57600080fd5b50356001600160a01b0316610e50565b604080519115158252519081900360200190f35b61034e610e65565b6102e46004803603608081101561038057600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156103ba57600080fd5b8201836020820111156103cc57600080fd5b803590602001918460018302840111600160201b831117156103ed57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e75945050505050565b6102e4600480360360a081101561044457600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b8111156103ba57600080fd5b6102e46004803603606081101561049957600080fd5b5080356001600160a01b031690602081013590604001356001600160401b0316610eb6565b6102e4600480360360208110156104d457600080fd5b50356001600160a01b0316610f3e565b61030c6110b8565b6102a26004803603602081101561050257600080fd5b50356110bd565b6102e4600480360361010081101561052057600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b81111561058157600080fd5b82018360208201111561059357600080fd5b803590602001918460018302840111600160201b831117156105b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110e4945050505050565b6102e46004803603604081101561060b57600080fd5b506001600160a01b03813581169160200135166112ab565b6106496004803603602081101561063957600080fd5b50356001600160a01b0316611408565b60408051918252519081900360200190f35b6106496004803603602081101561067157600080fd5b50356001600160a01b031661141a565b61030c61142c565b6102e46004803603608081101561069f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611442565b61030c611473565b6106ed600480360360208110156106e357600080fd5b503560ff16611482565b6040805160ff9092168252519081900360200190f35b61034e6004803603602081101561071957600080fd5b50356001600160a01b0316611497565b61034e6114ac565b6102e46114bc565b61030c611550565b61034e6004803603602081101561075757600080fd5b5035611566565b6102a26004803603602081101561077457600080fd5b50356001600160a01b031661157b565b6102a2611596565b6102e4600480360360208110156107a257600080fd5b50356001600160a01b03166115a6565b61034e611612565b61034e600480360360208110156107d057600080fd5b50356001600160401b0316611623565b61030c611638565b6102e4600480360360208110156107fe57600080fd5b50356001600160a01b031661164e565b61030c6117c2565b6102e4600480360361012081101561082d57600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b81111561088e57600080fd5b8201836020820111156108a057600080fd5b803590602001918460018302840111600160201b831117156108c157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561091357600080fd5b82018360208201111561092557600080fd5b803590602001918460018302840111600160201b8311171561094657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117d1945050505050565b61098f61199a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156109cb5781810151838201526020016109b3565b505050509050019250505060405180910390f35b6102a26119fc565b6102e4600480360360208110156109fd57600080fd5b50356001600160a01b0316611a0b565b610649611bfa565b6102e4600480360360a0811015610a2b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135611c00565b6102e460048036036020811015610a6d57600080fd5b50351515611c33565b6102a260048036036020811015610a8c57600080fd5b5035611ca1565b6102e460048036036080811015610aa957600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b811115610ae257600080fd5b820183602082011115610af457600080fd5b803590602001918460018302840111600160201b83111715610b1557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611cae945050505050565b6102e460048036036020811015610b6c57600080fd5b50356001600160a01b0316611cbb565b61098f611e0d565b6102e460048036036040811015610b9a57600080fd5b5060ff81358116916020013516611e6d565b6102e460048036036020811015610bc257600080fd5b50356001600160a01b0316611fa9565b6102e4600480360360a0811015610be857600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610c2757600080fd5b820183602082011115610c3957600080fd5b803590602001918460018302840111600160201b83111715610c5a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611fff945050505050565b6102e460048036036020811015610cb157600080fd5b50356001600160a01b031661200d565b6011546001600160a01b031681565b610cd8611612565b610d1a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b03808216600090815260056020526040902054829116610d825760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260086020526040902054829060ff1615610de75760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038316600081815260086020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6010602052600090815260409020546001600160401b031681565b600b6020526000908152604090205460ff1681565b600e54600160481b900460ff1681565b60408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081cdd5c1c1bdc9d02604482015290519081900360640190fd5b336000908152600b602052604090205460ff16610f1d5760408051600160e51b62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206973206e6f7420616e206f70657261746f72000000604482015290519081900360640190fd5b610f2681612060565b610f2f57610f39565b610f398383612134565b505050565b610f46611612565b610f885760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b600c805410610fe15760408051600160e51b62461bcd02815260206004820152601260248201527f6d6178206f70657261746f72206c696d69740000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600b602052604090205460ff16156110525760408051600160e51b62461bcd02815260206004820152600e60248201527f6578697374206f70657261746f72000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000818152600b60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b600c81565b600781815481106110ca57fe5b6000918252602090912001546001600160a01b0316905081565b805160201461113d5760408051600160e51b62461bcd02815260206004820152601460248201527f6578747261446174612073697a65206572726f72000000000000000000000000604482015290519081900360640190fd5b6011546001600160a01b031661119d5760408051600160e51b62461bcd02815260206004820152601660248201527f63616c6c6261636b2061646472657373206572726f7200000000000000000000604482015290519081900360640190fd5b60008180602001905160208110156111b457600080fd5b50519050806112035760408051600160e51b62461bcd0281526020600482015260106024820152600160811b6f37b33332b9283934b1b29032b93937b902604482015290519081900360640190fd5b601154611221908a908a906001600160a01b0316898989898961217b565b60115460408051600160e11b632f6233f10281526001600160a01b038a811660048301526024820189905289811660448301526064820185905291519190921691635ec467e291608480830192600092919082900301818387803b15801561128857600080fd5b505af115801561129c573d6000803e3d6000fd5b50505050505050505050505050565b6112b3611612565b6112f55760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b03808316600090815260056020526040902054839116156113675760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260056020908152604080832080549588166001600160a01b031996871617905560078054600690935281842083905560018301815583527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890910180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60036020526000908152604090205481565b60066020526000908152604090205481565b600e54600160901b90046001600160401b031681565b61146d8484848460405160200180828152602001915050604051602081830303815290604052612530565b50505050565b600f546001600160401b031681565b600d6020526000908152604090205460ff1681565b60086020526000908152604090205460ff1681565b600e54600160401b900460ff1681565b6114c4611612565b6115065760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b600e54600160501b90046001600160401b031681565b60006020819052908152604090205460ff1681565b6005602052600090815260409020546001600160a01b031681565b6004546001600160a01b03165b90565b6115ae611612565b6115f05760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b0316331490565b600a6020526000908152604090205460ff1681565b600f54600160401b90046001600160401b031681565b611656611612565b6116985760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600560205260409020548291166117005760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260086020526040902054829060ff1615156001146117775760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260086020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b600e546001600160401b031681565b805160201461182a5760408051600160e51b62461bcd02815260206004820152601460248201527f6578747261446174612073697a65206572726f72000000000000000000000000604482015290519081900360640190fd5b6011546001600160a01b031661188a5760408051600160e51b62461bcd02815260206004820152601660248201527f63616c6c6261636b2061646472657373206572726f7200000000000000000000604482015290519081900360640190fd5b60008180602001905160208110156118a157600080fd5b50519050806118f05760408051600160e51b62461bcd0281526020600482015260106024820152600160811b6f37b33332b9283934b1b29032b93937b902604482015290519081900360640190fd5b60115461190f908b908b906001600160a01b03168a8a8a8a8a8a6125ac565b60115460408051600160e11b632f6233f10281526001600160a01b038b81166004830152602482018a90528a811660448301526064820185905291519190921691635ec467e291608480830192600092919082900301818387803b15801561197657600080fd5b505af115801561198a573d6000803e3d6000fd5b5050505050505050505050505050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156119f257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119d4575b5050505050905090565b6001546001600160a01b031681565b611a13611612565b611a555760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b03808216600090815260056020526040902054829116611abd5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260056020908152604080832080546001600160a01b031916905560088252808320805460ff1916905560069091528120805491905560075460001901811015611bad57600780546000198101908110611b2157fe5b600091825260209091200154600780546001600160a01b039092169183908110611b4757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806006600060078481548110611b8757fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6007805490611bc0906000198301613ccc565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60025481565b611c2c85858585856040516020018082815260200191505060405160208183030381529060405261294e565b5050505050565b611c3b611612565b611c7d5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b600e8054911515600160481b0269ff00000000000000000019909216919091179055565b600c81815481106110ca57fe5b61146d3385848685612a38565b611cc3611612565b611d055760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600b602052604090205460ff16611d2a57600080fd5b6001600160a01b0381166000908152600b60205260408120805460ff191690555b600c54811015611e0957816001600160a01b0316600c8281548110611d6c57fe5b6000918252602090912001546001600160a01b03161415611e0157600c80546000198101908110611d9957fe5b600091825260209091200154600c80546001600160a01b039092169183908110611dbf57fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600c805490611dfb906000198301613ccc565b50611e09565b600101611d4b565b5050565b606060078054806020026020016040519081016040528092919081815260200182805480156119f2576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116119d4575050505050905090565b611e75611612565b611eb75760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b60008160ff1611611f125760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f207468726573686f6c64000000000000000000000000000000000000604482015290519081900360640190fd5b600c5460ff82161115611f6f5760408051600160e51b62461bcd02815260206004820152601c60248201527f626967676572207468616e206e756d206f66206f70657261746f727300000000604482015290519081900360640190fd5b80600d6000846002811115611f8057fe5b60ff90811682526020820192909252604001600020805460ff1916929091169190911790555050565b611fb1611612565b611ff35760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b611ffc81612f64565b50565b611c2c338686868686612fae565b612015611612565b6120575760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613d4f833981519152604482015290519081900360640190fd5b611ffc816132f9565b600e546000906001600160401b038381169116146120c85760408051600160e51b62461bcd02815260206004820152600e60248201527f6e6f6e6365206d69736d61746368000000000000000000000000000000000000604482015290519081900360640190fd5b60008036604051808383808284378083019250505092505050604051809103902090506120f76001848361339d565b15612129575050600e805467ffffffffffffffff19811660016001600160401b0392831681019092161790915561212f565b60009150505b919050565b6001600160a01b038216600081815260036020526040808220849055518392917fdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b91a35050565b336000908152600b602052604090205460ff166121e25760408051600160e51b62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206973206e6f7420616e206f70657261746f72000000604482015290519081900360640190fd5b6121eb8361350b565b6121f483613578565b6121fd57612526565b6122068861363b565b6001600160401b038381166000908152601060205260409020805467ffffffffffffffff191691841691909117905561223e83613656565b846001600160a01b0316866001600160a01b0316886001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758b60018989600e60129054906101000a90046001600160401b031689604051808781526020018660028111156122af57fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561232657818101518382015260200161230e565b50505050905090810190601f1680156123535780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600e54600160401b900460ff161561245c57846001600160a01b03166340c10f1987866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156123d757600080fd5b505af11580156123eb573d6000803e3d6000fd5b505050506040513d602081101561240157600080fd5b50516124575760408051600160e51b62461bcd02815260206004820181905260248201527f68616e646c6545524332305472616e736665723a206d696e74206661696c6564604482015290519081900360640190fd5b612526565b846001600160a01b031663a9059cbb87866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156124bc57600080fd5b505af11580156124d0573d6000803e3d6000fd5b505050506040513d60208110156124e657600080fd5b505161252657604051600160e51b62461bcd028152600401808060200182810382526024815260200180613dc46024913960400191505060405180910390fd5b5050505050505050565b60408051600160e01b6323b872dd0281523360048201523060248201526044810184905290516001600160a01b038616916323b872dd91606480830192600092919082900301818387803b15801561258757600080fd5b505af115801561259b573d6000803e3d6000fd5b5050505061146d8433858585612a38565b336000908152600b602052604090205460ff166126135760408051600160e51b62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206973206e6f7420616e206f70657261746f72000000604482015290519081900360640190fd5b61261c8461350b565b61262584613578565b61262e57612943565b6126378961363b565b6001600160401b038481166000908152601060205260409020805467ffffffffffffffff191691851691909117905561266f84613656565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758c60028a8a600e60129054906101000a90046001600160401b031689604051808781526020018660028111156126e057fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561275757818101518382015260200161273f565b50505050905090810190601f1680156127845780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600e54600160401b900460ff16156128e857856001600160a01b03166350bb4e7f8887856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561282457818101518382015260200161280c565b50505050905090810190601f1680156128515780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561287257600080fd5b505af1158015612886573d6000803e3d6000fd5b505050506040513d602081101561289c57600080fd5b50516128e35760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b5a5b9d0819985a5b195902604482015290519081900360640190fd5b612943565b60408051600160e01b6323b872dd0281523060048201526001600160a01b038981166024830152604482018890529151918816916323b872dd9160648082019260009290919082900301818387803b15801561128857600080fd5b505050505050505050565b6001600160a01b0385166323b872dd333061296f878763ffffffff6137ba16565b6040805163ffffffff861660e01b81526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b1580156129c057600080fd5b505af11580156129d4573d6000803e3d6000fd5b505050506040513d60208110156129ea57600080fd5b5051612a2a57604051600160e51b62461bcd028152600401808060200182810382526029815260200180613d9b6029913960400191505060405180910390fd5b611c2c853386868686612fae565b6001600160a01b03808616600090815260056020526040902054869116612aa05760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038616600090815260086020526040902054869060ff1615612b055760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600e54600160481b900460ff16612b5a5760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b604080516020808201879052825180830382018152828401909352600160e01b63c87b56dd026060838101828152855160009692956001600160a01b038f1695606490910191908401908083835b60208310612bc75780518252601f199092019160209182019101612ba8565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b60208310612c2b5780518252601f199092019160209182019101612c0c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c8d576040519150601f19603f3d011682016040523d82523d6000602084013e612c92565b606091505b50909250905081612cae57506040805160208101909152600081525b600e54600160401b900460ff1615612d1f57886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612d0657600080fd5b505af1158015612d1a573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167f17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f60028a600e600a9054906101000a90046001600160401b031660008c60028a6040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612dbd578181015183820152602001612da5565b50505050905090810190601f168015612dea5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405260405180886002811115612e0e57fe5b60ff168152602001878152602001866001600160401b03166001600160401b03168152602001858152602001806020018460ff16815260200180602001838103835286818151815260200191508051906020019080838360005b83811015612e80578181015183820152602001612e68565b50505050905090810190601f168015612ead5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015612ee0578181015183820152602001612ec8565b50505050905090810190601f168015612f0d5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a45050600e805460016001600160401b03600160501b808404821692909201160271ffffffffffffffff000000000000000000001990911617905550505050505050565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f78605990600090a250565b6001600160a01b038087166000908152600560205260409020548791166130165760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038716600090815260086020526040902054879060ff161561307b5760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600e54600160481b900460ff166130d05760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b600085116131285760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f206d73672e76616c7565000000000000000000000000000000000000604482015290519081900360640190fd5b6000613135888a87613817565b600e54909150600160401b900460ff16156131a957886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561319057600080fd5b505af11580156131a4573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167feff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f0960018a600e600a9054906101000a90046001600160401b0316878b6040518086600281111561321357fe5b60ff168152602001858152602001846001600160401b03166001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613278578181015183820152602001613260565b50505050905090810190601f1680156132a55780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a45050600e805460016001600160401b03600160501b808404821692909201160271ffffffffffffffff000000000000000000001990911617905550505050505050565b6001600160a01b03811661334157604051600160e51b62461bcd028152600401808060200182810382526026815260200180613d296026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080600960008660028111156133b057fe5b60ff168152602080820192909252604090810160009081206001600160401b03881682528352818120338252600181019093522054909150806134145781546001810183556000838152602090200180546001600160a01b0319163317905561343b565b60008181526003830160205260409020805460ff19811660ff918216600019019091161790555b33600090815260018301602090815260408083208790558683526003850190915290205460ff166134815760028201805460018101825560009182526020909120018490555b60008481526003830160205260408120805460ff8082166001011660ff19909116179055600d908760028111156134b457fe5b60ff908116825260208083019390935260409182016000908120548882526003870190945291909120549181169116106134fd576134f28686613b34565b600192505050613504565b6000925050505b9392505050565b600e546001600160401b03808316600160901b909204161115611ffc5760408051600160e51b62461bcd02815260206004820152600c60248201527f72656d6f76656420766f74650000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160401b0381166000908152600a602052604081205460ff16156135da5760408051600160e51b62461bcd02815260206004820152600b6024820152600160a81b6a636c6f73656420766f746502604482015290519081900360640190fd5b60008036604051808383808284378083019250505092505050604051809103902090506136096000848361339d565b156121295750506001600160401b0381166000908152600a60205260409020805460ff1916600190811790915561212f565b6000908152602081905260409020805460ff19166001179055565b600f546001600160401b03908116908216111561368a57600f805467ffffffffffffffff19166001600160401b0383161790555b600e54600f5460c86001600160401b03600160901b9093048316019190811690821611156136c05750600f546001600160401b03165b600e54600160901b90046001600160401b03165b816001600160401b0316816001600160401b03161115801561370f57506001600160401b038082166000908152601060205260409020541615155b1561377c576001600160401b0381811660009081526010602090815260408083208054600f80546fffffffffffffffff0000000000000000191691909616600160401b0217909455835467ffffffffffffffff1916909355600a905220805460ff191690556001016136d4565b600e80546001600160401b03909216600160901b0279ffffffffffffffff000000000000000000000000000000000000199092169190911790555050565b6000828201838110156135045760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038083166000908152600360205260408120546001549192909116158015906138475750600081115b15613a5f57808310156138a45760408051600160e51b62461bcd02815260206004820152601560248201527f696e73756666696369656e74206665654c696d69740000000000000000000000604482015290519081900360640190fd5b60015460408051600160e01b63a9059cbb0281526001600160a01b0392831660048201526024810184905290519186169163a9059cbb916044808201926020929091908290030181600087803b1580156138fd57600080fd5b505af1158015613911573d6000803e3d6000fd5b505050506040513d602081101561392757600080fd5b505161396757604051600160e51b62461bcd02815260040180806020018281038252602c815260200180613d6f602c913960400191505060405180910390fd5b6000613979848363ffffffff613c6c16565b1115613a58576001600160a01b03841663a9059cbb8661399f868563ffffffff613c6c16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156139ee57600080fd5b505af1158015613a02573d6000803e3d6000fd5b505050506040513d6020811015613a1857600080fd5b5051613a5857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180613d6f602c913960400191505060405180910390fd5b9050613504565b836001600160a01b031663a9059cbb86856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613abf57600080fd5b505af1158015613ad3573d6000803e3d6000fd5b505050506040513d6020811015613ae957600080fd5b5051613b2957604051600160e51b62461bcd02815260040180806020018281038252602c815260200180613d6f602c913960400191505060405180910390fd5b506000949350505050565b600060096000846002811115613b4657fe5b60ff168152602080820192909252604090810160009081206001600160401b0386168252909252812091505b815460ff82161015613bc357816001016000836000018360ff1681548110613b9657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055600101613b72565b5060005b600282015460ff82161015613c1957816003016000836002018360ff1681548110613bee57fe5b600091825260208083209091015483528201929092526040019020805460ff19169055600101613bc7565b5060096000846002811115613c2a57fe5b60ff168152602080820192909252604090810160009081206001600160401b0386168252909252812090613c5e8282613cf0565b611c2c600283016000613cf0565b600082821115613cc65760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b815481835581811115610f3957600083815260209020610f39918101908301613d0a565b5080546000825590600052602060002090810190611ffc91905b6115a391905b80821115613d245760008155600101613d10565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f7061794552433230466565416e64526566756e644368616e67653a207472616e73666572206661696c65647265717565737445524332305472616e736665723a207472616e7366657246726f6d206661696c656468616e646c6545524332305472616e736665723a207472616e73666572206661696c6564a165627a7a72305820fcdb740ed2933f84d2a5bf4688085cd4d3139c0443216e4d8182c4bff254200e0029`
 18580  
 18581  // ExtBridgeFuncSigs maps the 4-byte function signature to its string representation.
 18582  // Deprecated: Use ExtBridgeMetaData.Sigs instead.
 18583  var ExtBridgeFuncSigs = ExtBridgeMetaData.Sigs
 18584  
 18585  // ExtBridgeBin is the compiled bytecode used for deploying new contracts.
 18586  // Deprecated: Use ExtBridgeMetaData.Bin instead.
 18587  var ExtBridgeBin = ExtBridgeMetaData.Bin
 18588  
 18589  // DeployExtBridge deploys a new Klaytn contract, binding an instance of ExtBridge to it.
 18590  func DeployExtBridge(auth *bind.TransactOpts, backend bind.ContractBackend, _modeMintBurn bool) (common.Address, *types.Transaction, *ExtBridge, error) {
 18591  	parsed, err := ExtBridgeMetaData.GetAbi()
 18592  	if err != nil {
 18593  		return common.Address{}, nil, nil, err
 18594  	}
 18595  	if parsed == nil {
 18596  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 18597  	}
 18598  
 18599  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ExtBridgeBin), backend, _modeMintBurn)
 18600  	if err != nil {
 18601  		return common.Address{}, nil, nil, err
 18602  	}
 18603  	return address, tx, &ExtBridge{ExtBridgeCaller: ExtBridgeCaller{contract: contract}, ExtBridgeTransactor: ExtBridgeTransactor{contract: contract}, ExtBridgeFilterer: ExtBridgeFilterer{contract: contract}}, nil
 18604  }
 18605  
 18606  // ExtBridge is an auto generated Go binding around a Klaytn contract.
 18607  type ExtBridge struct {
 18608  	ExtBridgeCaller     // Read-only binding to the contract
 18609  	ExtBridgeTransactor // Write-only binding to the contract
 18610  	ExtBridgeFilterer   // Log filterer for contract events
 18611  }
 18612  
 18613  // ExtBridgeCaller is an auto generated read-only Go binding around a Klaytn contract.
 18614  type ExtBridgeCaller struct {
 18615  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18616  }
 18617  
 18618  // ExtBridgeTransactor is an auto generated write-only Go binding around a Klaytn contract.
 18619  type ExtBridgeTransactor struct {
 18620  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18621  }
 18622  
 18623  // ExtBridgeFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 18624  type ExtBridgeFilterer struct {
 18625  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18626  }
 18627  
 18628  // ExtBridgeSession is an auto generated Go binding around a Klaytn contract,
 18629  // with pre-set call and transact options.
 18630  type ExtBridgeSession struct {
 18631  	Contract     *ExtBridge        // Generic contract binding to set the session for
 18632  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 18633  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 18634  }
 18635  
 18636  // ExtBridgeCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 18637  // with pre-set call options.
 18638  type ExtBridgeCallerSession struct {
 18639  	Contract *ExtBridgeCaller // Generic contract caller binding to set the session for
 18640  	CallOpts bind.CallOpts    // Call options to use throughout this session
 18641  }
 18642  
 18643  // ExtBridgeTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 18644  // with pre-set transact options.
 18645  type ExtBridgeTransactorSession struct {
 18646  	Contract     *ExtBridgeTransactor // Generic contract transactor binding to set the session for
 18647  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
 18648  }
 18649  
 18650  // ExtBridgeRaw is an auto generated low-level Go binding around a Klaytn contract.
 18651  type ExtBridgeRaw struct {
 18652  	Contract *ExtBridge // Generic contract binding to access the raw methods on
 18653  }
 18654  
 18655  // ExtBridgeCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 18656  type ExtBridgeCallerRaw struct {
 18657  	Contract *ExtBridgeCaller // Generic read-only contract binding to access the raw methods on
 18658  }
 18659  
 18660  // ExtBridgeTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 18661  type ExtBridgeTransactorRaw struct {
 18662  	Contract *ExtBridgeTransactor // Generic write-only contract binding to access the raw methods on
 18663  }
 18664  
 18665  // NewExtBridge creates a new instance of ExtBridge, bound to a specific deployed contract.
 18666  func NewExtBridge(address common.Address, backend bind.ContractBackend) (*ExtBridge, error) {
 18667  	contract, err := bindExtBridge(address, backend, backend, backend)
 18668  	if err != nil {
 18669  		return nil, err
 18670  	}
 18671  	return &ExtBridge{ExtBridgeCaller: ExtBridgeCaller{contract: contract}, ExtBridgeTransactor: ExtBridgeTransactor{contract: contract}, ExtBridgeFilterer: ExtBridgeFilterer{contract: contract}}, nil
 18672  }
 18673  
 18674  // NewExtBridgeCaller creates a new read-only instance of ExtBridge, bound to a specific deployed contract.
 18675  func NewExtBridgeCaller(address common.Address, caller bind.ContractCaller) (*ExtBridgeCaller, error) {
 18676  	contract, err := bindExtBridge(address, caller, nil, nil)
 18677  	if err != nil {
 18678  		return nil, err
 18679  	}
 18680  	return &ExtBridgeCaller{contract: contract}, nil
 18681  }
 18682  
 18683  // NewExtBridgeTransactor creates a new write-only instance of ExtBridge, bound to a specific deployed contract.
 18684  func NewExtBridgeTransactor(address common.Address, transactor bind.ContractTransactor) (*ExtBridgeTransactor, error) {
 18685  	contract, err := bindExtBridge(address, nil, transactor, nil)
 18686  	if err != nil {
 18687  		return nil, err
 18688  	}
 18689  	return &ExtBridgeTransactor{contract: contract}, nil
 18690  }
 18691  
 18692  // NewExtBridgeFilterer creates a new log filterer instance of ExtBridge, bound to a specific deployed contract.
 18693  func NewExtBridgeFilterer(address common.Address, filterer bind.ContractFilterer) (*ExtBridgeFilterer, error) {
 18694  	contract, err := bindExtBridge(address, nil, nil, filterer)
 18695  	if err != nil {
 18696  		return nil, err
 18697  	}
 18698  	return &ExtBridgeFilterer{contract: contract}, nil
 18699  }
 18700  
 18701  // bindExtBridge binds a generic wrapper to an already deployed contract.
 18702  func bindExtBridge(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 18703  	parsed, err := ExtBridgeMetaData.GetAbi()
 18704  	if err != nil {
 18705  		return nil, err
 18706  	}
 18707  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 18708  }
 18709  
 18710  // Call invokes the (constant) contract method with params as input values and
 18711  // sets the output to result. The result type might be a single field for simple
 18712  // returns, a slice of interfaces for anonymous returns and a struct for named
 18713  // returns.
 18714  func (_ExtBridge *ExtBridgeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 18715  	return _ExtBridge.Contract.ExtBridgeCaller.contract.Call(opts, result, method, params...)
 18716  }
 18717  
 18718  // Transfer initiates a plain transaction to move funds to the contract, calling
 18719  // its default method if one is available.
 18720  func (_ExtBridge *ExtBridgeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 18721  	return _ExtBridge.Contract.ExtBridgeTransactor.contract.Transfer(opts)
 18722  }
 18723  
 18724  // Transact invokes the (paid) contract method with params as input values.
 18725  func (_ExtBridge *ExtBridgeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 18726  	return _ExtBridge.Contract.ExtBridgeTransactor.contract.Transact(opts, method, params...)
 18727  }
 18728  
 18729  // Call invokes the (constant) contract method with params as input values and
 18730  // sets the output to result. The result type might be a single field for simple
 18731  // returns, a slice of interfaces for anonymous returns and a struct for named
 18732  // returns.
 18733  func (_ExtBridge *ExtBridgeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 18734  	return _ExtBridge.Contract.contract.Call(opts, result, method, params...)
 18735  }
 18736  
 18737  // Transfer initiates a plain transaction to move funds to the contract, calling
 18738  // its default method if one is available.
 18739  func (_ExtBridge *ExtBridgeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 18740  	return _ExtBridge.Contract.contract.Transfer(opts)
 18741  }
 18742  
 18743  // Transact invokes the (paid) contract method with params as input values.
 18744  func (_ExtBridge *ExtBridgeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 18745  	return _ExtBridge.Contract.contract.Transact(opts, method, params...)
 18746  }
 18747  
 18748  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 18749  //
 18750  // Solidity: function MAX_OPERATOR() view returns(uint64)
 18751  func (_ExtBridge *ExtBridgeCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
 18752  	var out []interface{}
 18753  	err := _ExtBridge.contract.Call(opts, &out, "MAX_OPERATOR")
 18754  
 18755  	if err != nil {
 18756  		return *new(uint64), err
 18757  	}
 18758  
 18759  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 18760  
 18761  	return out0, err
 18762  
 18763  }
 18764  
 18765  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 18766  //
 18767  // Solidity: function MAX_OPERATOR() view returns(uint64)
 18768  func (_ExtBridge *ExtBridgeSession) MAXOPERATOR() (uint64, error) {
 18769  	return _ExtBridge.Contract.MAXOPERATOR(&_ExtBridge.CallOpts)
 18770  }
 18771  
 18772  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 18773  //
 18774  // Solidity: function MAX_OPERATOR() view returns(uint64)
 18775  func (_ExtBridge *ExtBridgeCallerSession) MAXOPERATOR() (uint64, error) {
 18776  	return _ExtBridge.Contract.MAXOPERATOR(&_ExtBridge.CallOpts)
 18777  }
 18778  
 18779  // Callback is a free data retrieval call binding the contract method 0x083b2732.
 18780  //
 18781  // Solidity: function callback() view returns(address)
 18782  func (_ExtBridge *ExtBridgeCaller) Callback(opts *bind.CallOpts) (common.Address, error) {
 18783  	var out []interface{}
 18784  	err := _ExtBridge.contract.Call(opts, &out, "callback")
 18785  
 18786  	if err != nil {
 18787  		return *new(common.Address), err
 18788  	}
 18789  
 18790  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 18791  
 18792  	return out0, err
 18793  
 18794  }
 18795  
 18796  // Callback is a free data retrieval call binding the contract method 0x083b2732.
 18797  //
 18798  // Solidity: function callback() view returns(address)
 18799  func (_ExtBridge *ExtBridgeSession) Callback() (common.Address, error) {
 18800  	return _ExtBridge.Contract.Callback(&_ExtBridge.CallOpts)
 18801  }
 18802  
 18803  // Callback is a free data retrieval call binding the contract method 0x083b2732.
 18804  //
 18805  // Solidity: function callback() view returns(address)
 18806  func (_ExtBridge *ExtBridgeCallerSession) Callback() (common.Address, error) {
 18807  	return _ExtBridge.Contract.Callback(&_ExtBridge.CallOpts)
 18808  }
 18809  
 18810  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 18811  //
 18812  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 18813  func (_ExtBridge *ExtBridgeCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
 18814  	var out []interface{}
 18815  	err := _ExtBridge.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
 18816  
 18817  	if err != nil {
 18818  		return *new(bool), err
 18819  	}
 18820  
 18821  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 18822  
 18823  	return out0, err
 18824  
 18825  }
 18826  
 18827  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 18828  //
 18829  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 18830  func (_ExtBridge *ExtBridgeSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
 18831  	return _ExtBridge.Contract.ClosedValueTransferVotes(&_ExtBridge.CallOpts, arg0)
 18832  }
 18833  
 18834  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 18835  //
 18836  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 18837  func (_ExtBridge *ExtBridgeCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
 18838  	return _ExtBridge.Contract.ClosedValueTransferVotes(&_ExtBridge.CallOpts, arg0)
 18839  }
 18840  
 18841  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 18842  //
 18843  // Solidity: function configurationNonce() view returns(uint64)
 18844  func (_ExtBridge *ExtBridgeCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
 18845  	var out []interface{}
 18846  	err := _ExtBridge.contract.Call(opts, &out, "configurationNonce")
 18847  
 18848  	if err != nil {
 18849  		return *new(uint64), err
 18850  	}
 18851  
 18852  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 18853  
 18854  	return out0, err
 18855  
 18856  }
 18857  
 18858  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 18859  //
 18860  // Solidity: function configurationNonce() view returns(uint64)
 18861  func (_ExtBridge *ExtBridgeSession) ConfigurationNonce() (uint64, error) {
 18862  	return _ExtBridge.Contract.ConfigurationNonce(&_ExtBridge.CallOpts)
 18863  }
 18864  
 18865  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 18866  //
 18867  // Solidity: function configurationNonce() view returns(uint64)
 18868  func (_ExtBridge *ExtBridgeCallerSession) ConfigurationNonce() (uint64, error) {
 18869  	return _ExtBridge.Contract.ConfigurationNonce(&_ExtBridge.CallOpts)
 18870  }
 18871  
 18872  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 18873  //
 18874  // Solidity: function feeOfERC20(address ) view returns(uint256)
 18875  func (_ExtBridge *ExtBridgeCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 18876  	var out []interface{}
 18877  	err := _ExtBridge.contract.Call(opts, &out, "feeOfERC20", arg0)
 18878  
 18879  	if err != nil {
 18880  		return *new(*big.Int), err
 18881  	}
 18882  
 18883  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18884  
 18885  	return out0, err
 18886  
 18887  }
 18888  
 18889  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 18890  //
 18891  // Solidity: function feeOfERC20(address ) view returns(uint256)
 18892  func (_ExtBridge *ExtBridgeSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
 18893  	return _ExtBridge.Contract.FeeOfERC20(&_ExtBridge.CallOpts, arg0)
 18894  }
 18895  
 18896  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 18897  //
 18898  // Solidity: function feeOfERC20(address ) view returns(uint256)
 18899  func (_ExtBridge *ExtBridgeCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
 18900  	return _ExtBridge.Contract.FeeOfERC20(&_ExtBridge.CallOpts, arg0)
 18901  }
 18902  
 18903  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 18904  //
 18905  // Solidity: function feeOfKLAY() view returns(uint256)
 18906  func (_ExtBridge *ExtBridgeCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
 18907  	var out []interface{}
 18908  	err := _ExtBridge.contract.Call(opts, &out, "feeOfKLAY")
 18909  
 18910  	if err != nil {
 18911  		return *new(*big.Int), err
 18912  	}
 18913  
 18914  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18915  
 18916  	return out0, err
 18917  
 18918  }
 18919  
 18920  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 18921  //
 18922  // Solidity: function feeOfKLAY() view returns(uint256)
 18923  func (_ExtBridge *ExtBridgeSession) FeeOfKLAY() (*big.Int, error) {
 18924  	return _ExtBridge.Contract.FeeOfKLAY(&_ExtBridge.CallOpts)
 18925  }
 18926  
 18927  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 18928  //
 18929  // Solidity: function feeOfKLAY() view returns(uint256)
 18930  func (_ExtBridge *ExtBridgeCallerSession) FeeOfKLAY() (*big.Int, error) {
 18931  	return _ExtBridge.Contract.FeeOfKLAY(&_ExtBridge.CallOpts)
 18932  }
 18933  
 18934  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 18935  //
 18936  // Solidity: function feeReceiver() view returns(address)
 18937  func (_ExtBridge *ExtBridgeCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
 18938  	var out []interface{}
 18939  	err := _ExtBridge.contract.Call(opts, &out, "feeReceiver")
 18940  
 18941  	if err != nil {
 18942  		return *new(common.Address), err
 18943  	}
 18944  
 18945  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 18946  
 18947  	return out0, err
 18948  
 18949  }
 18950  
 18951  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 18952  //
 18953  // Solidity: function feeReceiver() view returns(address)
 18954  func (_ExtBridge *ExtBridgeSession) FeeReceiver() (common.Address, error) {
 18955  	return _ExtBridge.Contract.FeeReceiver(&_ExtBridge.CallOpts)
 18956  }
 18957  
 18958  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 18959  //
 18960  // Solidity: function feeReceiver() view returns(address)
 18961  func (_ExtBridge *ExtBridgeCallerSession) FeeReceiver() (common.Address, error) {
 18962  	return _ExtBridge.Contract.FeeReceiver(&_ExtBridge.CallOpts)
 18963  }
 18964  
 18965  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 18966  //
 18967  // Solidity: function getOperatorList() view returns(address[])
 18968  func (_ExtBridge *ExtBridgeCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
 18969  	var out []interface{}
 18970  	err := _ExtBridge.contract.Call(opts, &out, "getOperatorList")
 18971  
 18972  	if err != nil {
 18973  		return *new([]common.Address), err
 18974  	}
 18975  
 18976  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
 18977  
 18978  	return out0, err
 18979  
 18980  }
 18981  
 18982  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 18983  //
 18984  // Solidity: function getOperatorList() view returns(address[])
 18985  func (_ExtBridge *ExtBridgeSession) GetOperatorList() ([]common.Address, error) {
 18986  	return _ExtBridge.Contract.GetOperatorList(&_ExtBridge.CallOpts)
 18987  }
 18988  
 18989  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 18990  //
 18991  // Solidity: function getOperatorList() view returns(address[])
 18992  func (_ExtBridge *ExtBridgeCallerSession) GetOperatorList() ([]common.Address, error) {
 18993  	return _ExtBridge.Contract.GetOperatorList(&_ExtBridge.CallOpts)
 18994  }
 18995  
 18996  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
 18997  //
 18998  // Solidity: function getRegisteredTokenList() view returns(address[])
 18999  func (_ExtBridge *ExtBridgeCaller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
 19000  	var out []interface{}
 19001  	err := _ExtBridge.contract.Call(opts, &out, "getRegisteredTokenList")
 19002  
 19003  	if err != nil {
 19004  		return *new([]common.Address), err
 19005  	}
 19006  
 19007  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
 19008  
 19009  	return out0, err
 19010  
 19011  }
 19012  
 19013  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
 19014  //
 19015  // Solidity: function getRegisteredTokenList() view returns(address[])
 19016  func (_ExtBridge *ExtBridgeSession) GetRegisteredTokenList() ([]common.Address, error) {
 19017  	return _ExtBridge.Contract.GetRegisteredTokenList(&_ExtBridge.CallOpts)
 19018  }
 19019  
 19020  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
 19021  //
 19022  // Solidity: function getRegisteredTokenList() view returns(address[])
 19023  func (_ExtBridge *ExtBridgeCallerSession) GetRegisteredTokenList() ([]common.Address, error) {
 19024  	return _ExtBridge.Contract.GetRegisteredTokenList(&_ExtBridge.CallOpts)
 19025  }
 19026  
 19027  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 19028  //
 19029  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 19030  func (_ExtBridge *ExtBridgeCaller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
 19031  	var out []interface{}
 19032  	err := _ExtBridge.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
 19033  
 19034  	if err != nil {
 19035  		return *new(uint64), err
 19036  	}
 19037  
 19038  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 19039  
 19040  	return out0, err
 19041  
 19042  }
 19043  
 19044  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 19045  //
 19046  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 19047  func (_ExtBridge *ExtBridgeSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
 19048  	return _ExtBridge.Contract.HandleNoncesToBlockNums(&_ExtBridge.CallOpts, arg0)
 19049  }
 19050  
 19051  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 19052  //
 19053  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 19054  func (_ExtBridge *ExtBridgeCallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
 19055  	return _ExtBridge.Contract.HandleNoncesToBlockNums(&_ExtBridge.CallOpts, arg0)
 19056  }
 19057  
 19058  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 19059  //
 19060  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 19061  func (_ExtBridge *ExtBridgeCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
 19062  	var out []interface{}
 19063  	err := _ExtBridge.contract.Call(opts, &out, "handledRequestTx", arg0)
 19064  
 19065  	if err != nil {
 19066  		return *new(bool), err
 19067  	}
 19068  
 19069  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19070  
 19071  	return out0, err
 19072  
 19073  }
 19074  
 19075  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 19076  //
 19077  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 19078  func (_ExtBridge *ExtBridgeSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
 19079  	return _ExtBridge.Contract.HandledRequestTx(&_ExtBridge.CallOpts, arg0)
 19080  }
 19081  
 19082  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 19083  //
 19084  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 19085  func (_ExtBridge *ExtBridgeCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
 19086  	return _ExtBridge.Contract.HandledRequestTx(&_ExtBridge.CallOpts, arg0)
 19087  }
 19088  
 19089  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
 19090  //
 19091  // Solidity: function indexOfTokens(address ) view returns(uint256)
 19092  func (_ExtBridge *ExtBridgeCaller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 19093  	var out []interface{}
 19094  	err := _ExtBridge.contract.Call(opts, &out, "indexOfTokens", arg0)
 19095  
 19096  	if err != nil {
 19097  		return *new(*big.Int), err
 19098  	}
 19099  
 19100  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 19101  
 19102  	return out0, err
 19103  
 19104  }
 19105  
 19106  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
 19107  //
 19108  // Solidity: function indexOfTokens(address ) view returns(uint256)
 19109  func (_ExtBridge *ExtBridgeSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
 19110  	return _ExtBridge.Contract.IndexOfTokens(&_ExtBridge.CallOpts, arg0)
 19111  }
 19112  
 19113  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
 19114  //
 19115  // Solidity: function indexOfTokens(address ) view returns(uint256)
 19116  func (_ExtBridge *ExtBridgeCallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
 19117  	return _ExtBridge.Contract.IndexOfTokens(&_ExtBridge.CallOpts, arg0)
 19118  }
 19119  
 19120  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 19121  //
 19122  // Solidity: function isOwner() view returns(bool)
 19123  func (_ExtBridge *ExtBridgeCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 19124  	var out []interface{}
 19125  	err := _ExtBridge.contract.Call(opts, &out, "isOwner")
 19126  
 19127  	if err != nil {
 19128  		return *new(bool), err
 19129  	}
 19130  
 19131  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19132  
 19133  	return out0, err
 19134  
 19135  }
 19136  
 19137  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 19138  //
 19139  // Solidity: function isOwner() view returns(bool)
 19140  func (_ExtBridge *ExtBridgeSession) IsOwner() (bool, error) {
 19141  	return _ExtBridge.Contract.IsOwner(&_ExtBridge.CallOpts)
 19142  }
 19143  
 19144  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 19145  //
 19146  // Solidity: function isOwner() view returns(bool)
 19147  func (_ExtBridge *ExtBridgeCallerSession) IsOwner() (bool, error) {
 19148  	return _ExtBridge.Contract.IsOwner(&_ExtBridge.CallOpts)
 19149  }
 19150  
 19151  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 19152  //
 19153  // Solidity: function isRunning() view returns(bool)
 19154  func (_ExtBridge *ExtBridgeCaller) IsRunning(opts *bind.CallOpts) (bool, error) {
 19155  	var out []interface{}
 19156  	err := _ExtBridge.contract.Call(opts, &out, "isRunning")
 19157  
 19158  	if err != nil {
 19159  		return *new(bool), err
 19160  	}
 19161  
 19162  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19163  
 19164  	return out0, err
 19165  
 19166  }
 19167  
 19168  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 19169  //
 19170  // Solidity: function isRunning() view returns(bool)
 19171  func (_ExtBridge *ExtBridgeSession) IsRunning() (bool, error) {
 19172  	return _ExtBridge.Contract.IsRunning(&_ExtBridge.CallOpts)
 19173  }
 19174  
 19175  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 19176  //
 19177  // Solidity: function isRunning() view returns(bool)
 19178  func (_ExtBridge *ExtBridgeCallerSession) IsRunning() (bool, error) {
 19179  	return _ExtBridge.Contract.IsRunning(&_ExtBridge.CallOpts)
 19180  }
 19181  
 19182  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
 19183  //
 19184  // Solidity: function lockedTokens(address ) view returns(bool)
 19185  func (_ExtBridge *ExtBridgeCaller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
 19186  	var out []interface{}
 19187  	err := _ExtBridge.contract.Call(opts, &out, "lockedTokens", arg0)
 19188  
 19189  	if err != nil {
 19190  		return *new(bool), err
 19191  	}
 19192  
 19193  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19194  
 19195  	return out0, err
 19196  
 19197  }
 19198  
 19199  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
 19200  //
 19201  // Solidity: function lockedTokens(address ) view returns(bool)
 19202  func (_ExtBridge *ExtBridgeSession) LockedTokens(arg0 common.Address) (bool, error) {
 19203  	return _ExtBridge.Contract.LockedTokens(&_ExtBridge.CallOpts, arg0)
 19204  }
 19205  
 19206  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
 19207  //
 19208  // Solidity: function lockedTokens(address ) view returns(bool)
 19209  func (_ExtBridge *ExtBridgeCallerSession) LockedTokens(arg0 common.Address) (bool, error) {
 19210  	return _ExtBridge.Contract.LockedTokens(&_ExtBridge.CallOpts, arg0)
 19211  }
 19212  
 19213  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 19214  //
 19215  // Solidity: function lowerHandleNonce() view returns(uint64)
 19216  func (_ExtBridge *ExtBridgeCaller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
 19217  	var out []interface{}
 19218  	err := _ExtBridge.contract.Call(opts, &out, "lowerHandleNonce")
 19219  
 19220  	if err != nil {
 19221  		return *new(uint64), err
 19222  	}
 19223  
 19224  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 19225  
 19226  	return out0, err
 19227  
 19228  }
 19229  
 19230  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 19231  //
 19232  // Solidity: function lowerHandleNonce() view returns(uint64)
 19233  func (_ExtBridge *ExtBridgeSession) LowerHandleNonce() (uint64, error) {
 19234  	return _ExtBridge.Contract.LowerHandleNonce(&_ExtBridge.CallOpts)
 19235  }
 19236  
 19237  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 19238  //
 19239  // Solidity: function lowerHandleNonce() view returns(uint64)
 19240  func (_ExtBridge *ExtBridgeCallerSession) LowerHandleNonce() (uint64, error) {
 19241  	return _ExtBridge.Contract.LowerHandleNonce(&_ExtBridge.CallOpts)
 19242  }
 19243  
 19244  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 19245  //
 19246  // Solidity: function modeMintBurn() view returns(bool)
 19247  func (_ExtBridge *ExtBridgeCaller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
 19248  	var out []interface{}
 19249  	err := _ExtBridge.contract.Call(opts, &out, "modeMintBurn")
 19250  
 19251  	if err != nil {
 19252  		return *new(bool), err
 19253  	}
 19254  
 19255  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19256  
 19257  	return out0, err
 19258  
 19259  }
 19260  
 19261  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 19262  //
 19263  // Solidity: function modeMintBurn() view returns(bool)
 19264  func (_ExtBridge *ExtBridgeSession) ModeMintBurn() (bool, error) {
 19265  	return _ExtBridge.Contract.ModeMintBurn(&_ExtBridge.CallOpts)
 19266  }
 19267  
 19268  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 19269  //
 19270  // Solidity: function modeMintBurn() view returns(bool)
 19271  func (_ExtBridge *ExtBridgeCallerSession) ModeMintBurn() (bool, error) {
 19272  	return _ExtBridge.Contract.ModeMintBurn(&_ExtBridge.CallOpts)
 19273  }
 19274  
 19275  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 19276  //
 19277  // Solidity: function operatorList(uint256 ) view returns(address)
 19278  func (_ExtBridge *ExtBridgeCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 19279  	var out []interface{}
 19280  	err := _ExtBridge.contract.Call(opts, &out, "operatorList", arg0)
 19281  
 19282  	if err != nil {
 19283  		return *new(common.Address), err
 19284  	}
 19285  
 19286  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 19287  
 19288  	return out0, err
 19289  
 19290  }
 19291  
 19292  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 19293  //
 19294  // Solidity: function operatorList(uint256 ) view returns(address)
 19295  func (_ExtBridge *ExtBridgeSession) OperatorList(arg0 *big.Int) (common.Address, error) {
 19296  	return _ExtBridge.Contract.OperatorList(&_ExtBridge.CallOpts, arg0)
 19297  }
 19298  
 19299  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 19300  //
 19301  // Solidity: function operatorList(uint256 ) view returns(address)
 19302  func (_ExtBridge *ExtBridgeCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
 19303  	return _ExtBridge.Contract.OperatorList(&_ExtBridge.CallOpts, arg0)
 19304  }
 19305  
 19306  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 19307  //
 19308  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 19309  func (_ExtBridge *ExtBridgeCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
 19310  	var out []interface{}
 19311  	err := _ExtBridge.contract.Call(opts, &out, "operatorThresholds", arg0)
 19312  
 19313  	if err != nil {
 19314  		return *new(uint8), err
 19315  	}
 19316  
 19317  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
 19318  
 19319  	return out0, err
 19320  
 19321  }
 19322  
 19323  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 19324  //
 19325  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 19326  func (_ExtBridge *ExtBridgeSession) OperatorThresholds(arg0 uint8) (uint8, error) {
 19327  	return _ExtBridge.Contract.OperatorThresholds(&_ExtBridge.CallOpts, arg0)
 19328  }
 19329  
 19330  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 19331  //
 19332  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 19333  func (_ExtBridge *ExtBridgeCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
 19334  	return _ExtBridge.Contract.OperatorThresholds(&_ExtBridge.CallOpts, arg0)
 19335  }
 19336  
 19337  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 19338  //
 19339  // Solidity: function operators(address ) view returns(bool)
 19340  func (_ExtBridge *ExtBridgeCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
 19341  	var out []interface{}
 19342  	err := _ExtBridge.contract.Call(opts, &out, "operators", arg0)
 19343  
 19344  	if err != nil {
 19345  		return *new(bool), err
 19346  	}
 19347  
 19348  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19349  
 19350  	return out0, err
 19351  
 19352  }
 19353  
 19354  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 19355  //
 19356  // Solidity: function operators(address ) view returns(bool)
 19357  func (_ExtBridge *ExtBridgeSession) Operators(arg0 common.Address) (bool, error) {
 19358  	return _ExtBridge.Contract.Operators(&_ExtBridge.CallOpts, arg0)
 19359  }
 19360  
 19361  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 19362  //
 19363  // Solidity: function operators(address ) view returns(bool)
 19364  func (_ExtBridge *ExtBridgeCallerSession) Operators(arg0 common.Address) (bool, error) {
 19365  	return _ExtBridge.Contract.Operators(&_ExtBridge.CallOpts, arg0)
 19366  }
 19367  
 19368  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 19369  //
 19370  // Solidity: function owner() view returns(address)
 19371  func (_ExtBridge *ExtBridgeCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 19372  	var out []interface{}
 19373  	err := _ExtBridge.contract.Call(opts, &out, "owner")
 19374  
 19375  	if err != nil {
 19376  		return *new(common.Address), err
 19377  	}
 19378  
 19379  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 19380  
 19381  	return out0, err
 19382  
 19383  }
 19384  
 19385  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 19386  //
 19387  // Solidity: function owner() view returns(address)
 19388  func (_ExtBridge *ExtBridgeSession) Owner() (common.Address, error) {
 19389  	return _ExtBridge.Contract.Owner(&_ExtBridge.CallOpts)
 19390  }
 19391  
 19392  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 19393  //
 19394  // Solidity: function owner() view returns(address)
 19395  func (_ExtBridge *ExtBridgeCallerSession) Owner() (common.Address, error) {
 19396  	return _ExtBridge.Contract.Owner(&_ExtBridge.CallOpts)
 19397  }
 19398  
 19399  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 19400  //
 19401  // Solidity: function recoveryBlockNumber() view returns(uint64)
 19402  func (_ExtBridge *ExtBridgeCaller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
 19403  	var out []interface{}
 19404  	err := _ExtBridge.contract.Call(opts, &out, "recoveryBlockNumber")
 19405  
 19406  	if err != nil {
 19407  		return *new(uint64), err
 19408  	}
 19409  
 19410  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 19411  
 19412  	return out0, err
 19413  
 19414  }
 19415  
 19416  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 19417  //
 19418  // Solidity: function recoveryBlockNumber() view returns(uint64)
 19419  func (_ExtBridge *ExtBridgeSession) RecoveryBlockNumber() (uint64, error) {
 19420  	return _ExtBridge.Contract.RecoveryBlockNumber(&_ExtBridge.CallOpts)
 19421  }
 19422  
 19423  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 19424  //
 19425  // Solidity: function recoveryBlockNumber() view returns(uint64)
 19426  func (_ExtBridge *ExtBridgeCallerSession) RecoveryBlockNumber() (uint64, error) {
 19427  	return _ExtBridge.Contract.RecoveryBlockNumber(&_ExtBridge.CallOpts)
 19428  }
 19429  
 19430  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 19431  //
 19432  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 19433  func (_ExtBridge *ExtBridgeCaller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 19434  	var out []interface{}
 19435  	err := _ExtBridge.contract.Call(opts, &out, "registeredTokenList", arg0)
 19436  
 19437  	if err != nil {
 19438  		return *new(common.Address), err
 19439  	}
 19440  
 19441  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 19442  
 19443  	return out0, err
 19444  
 19445  }
 19446  
 19447  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 19448  //
 19449  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 19450  func (_ExtBridge *ExtBridgeSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
 19451  	return _ExtBridge.Contract.RegisteredTokenList(&_ExtBridge.CallOpts, arg0)
 19452  }
 19453  
 19454  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 19455  //
 19456  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 19457  func (_ExtBridge *ExtBridgeCallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
 19458  	return _ExtBridge.Contract.RegisteredTokenList(&_ExtBridge.CallOpts, arg0)
 19459  }
 19460  
 19461  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 19462  //
 19463  // Solidity: function registeredTokens(address ) view returns(address)
 19464  func (_ExtBridge *ExtBridgeCaller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
 19465  	var out []interface{}
 19466  	err := _ExtBridge.contract.Call(opts, &out, "registeredTokens", arg0)
 19467  
 19468  	if err != nil {
 19469  		return *new(common.Address), err
 19470  	}
 19471  
 19472  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 19473  
 19474  	return out0, err
 19475  
 19476  }
 19477  
 19478  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 19479  //
 19480  // Solidity: function registeredTokens(address ) view returns(address)
 19481  func (_ExtBridge *ExtBridgeSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
 19482  	return _ExtBridge.Contract.RegisteredTokens(&_ExtBridge.CallOpts, arg0)
 19483  }
 19484  
 19485  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 19486  //
 19487  // Solidity: function registeredTokens(address ) view returns(address)
 19488  func (_ExtBridge *ExtBridgeCallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
 19489  	return _ExtBridge.Contract.RegisteredTokens(&_ExtBridge.CallOpts, arg0)
 19490  }
 19491  
 19492  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 19493  //
 19494  // Solidity: function requestNonce() view returns(uint64)
 19495  func (_ExtBridge *ExtBridgeCaller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
 19496  	var out []interface{}
 19497  	err := _ExtBridge.contract.Call(opts, &out, "requestNonce")
 19498  
 19499  	if err != nil {
 19500  		return *new(uint64), err
 19501  	}
 19502  
 19503  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 19504  
 19505  	return out0, err
 19506  
 19507  }
 19508  
 19509  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 19510  //
 19511  // Solidity: function requestNonce() view returns(uint64)
 19512  func (_ExtBridge *ExtBridgeSession) RequestNonce() (uint64, error) {
 19513  	return _ExtBridge.Contract.RequestNonce(&_ExtBridge.CallOpts)
 19514  }
 19515  
 19516  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 19517  //
 19518  // Solidity: function requestNonce() view returns(uint64)
 19519  func (_ExtBridge *ExtBridgeCallerSession) RequestNonce() (uint64, error) {
 19520  	return _ExtBridge.Contract.RequestNonce(&_ExtBridge.CallOpts)
 19521  }
 19522  
 19523  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 19524  //
 19525  // Solidity: function upperHandleNonce() view returns(uint64)
 19526  func (_ExtBridge *ExtBridgeCaller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
 19527  	var out []interface{}
 19528  	err := _ExtBridge.contract.Call(opts, &out, "upperHandleNonce")
 19529  
 19530  	if err != nil {
 19531  		return *new(uint64), err
 19532  	}
 19533  
 19534  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 19535  
 19536  	return out0, err
 19537  
 19538  }
 19539  
 19540  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 19541  //
 19542  // Solidity: function upperHandleNonce() view returns(uint64)
 19543  func (_ExtBridge *ExtBridgeSession) UpperHandleNonce() (uint64, error) {
 19544  	return _ExtBridge.Contract.UpperHandleNonce(&_ExtBridge.CallOpts)
 19545  }
 19546  
 19547  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 19548  //
 19549  // Solidity: function upperHandleNonce() view returns(uint64)
 19550  func (_ExtBridge *ExtBridgeCallerSession) UpperHandleNonce() (uint64, error) {
 19551  	return _ExtBridge.Contract.UpperHandleNonce(&_ExtBridge.CallOpts)
 19552  }
 19553  
 19554  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 19555  //
 19556  // Solidity: function deregisterOperator(address _operator) returns()
 19557  func (_ExtBridge *ExtBridgeTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 19558  	return _ExtBridge.contract.Transact(opts, "deregisterOperator", _operator)
 19559  }
 19560  
 19561  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 19562  //
 19563  // Solidity: function deregisterOperator(address _operator) returns()
 19564  func (_ExtBridge *ExtBridgeSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 19565  	return _ExtBridge.Contract.DeregisterOperator(&_ExtBridge.TransactOpts, _operator)
 19566  }
 19567  
 19568  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 19569  //
 19570  // Solidity: function deregisterOperator(address _operator) returns()
 19571  func (_ExtBridge *ExtBridgeTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 19572  	return _ExtBridge.Contract.DeregisterOperator(&_ExtBridge.TransactOpts, _operator)
 19573  }
 19574  
 19575  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 19576  //
 19577  // Solidity: function deregisterToken(address _token) returns()
 19578  func (_ExtBridge *ExtBridgeTransactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 19579  	return _ExtBridge.contract.Transact(opts, "deregisterToken", _token)
 19580  }
 19581  
 19582  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 19583  //
 19584  // Solidity: function deregisterToken(address _token) returns()
 19585  func (_ExtBridge *ExtBridgeSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
 19586  	return _ExtBridge.Contract.DeregisterToken(&_ExtBridge.TransactOpts, _token)
 19587  }
 19588  
 19589  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 19590  //
 19591  // Solidity: function deregisterToken(address _token) returns()
 19592  func (_ExtBridge *ExtBridgeTransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
 19593  	return _ExtBridge.Contract.DeregisterToken(&_ExtBridge.TransactOpts, _token)
 19594  }
 19595  
 19596  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
 19597  //
 19598  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestNonce, uint64 _requestBlockNumber, bytes _extraData) returns()
 19599  func (_ExtBridge *ExtBridgeTransactor) HandleERC20Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestNonce uint64, _requestBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 19600  	return _ExtBridge.contract.Transact(opts, "handleERC20Transfer", _requestTxHash, _from, _to, _tokenAddress, _value, _requestNonce, _requestBlockNumber, _extraData)
 19601  }
 19602  
 19603  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
 19604  //
 19605  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestNonce, uint64 _requestBlockNumber, bytes _extraData) returns()
 19606  func (_ExtBridge *ExtBridgeSession) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestNonce uint64, _requestBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 19607  	return _ExtBridge.Contract.HandleERC20Transfer(&_ExtBridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestNonce, _requestBlockNumber, _extraData)
 19608  }
 19609  
 19610  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
 19611  //
 19612  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestNonce, uint64 _requestBlockNumber, bytes _extraData) returns()
 19613  func (_ExtBridge *ExtBridgeTransactorSession) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestNonce uint64, _requestBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 19614  	return _ExtBridge.Contract.HandleERC20Transfer(&_ExtBridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestNonce, _requestBlockNumber, _extraData)
 19615  }
 19616  
 19617  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
 19618  //
 19619  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestNonce, uint64 _requestBlockNumber, string _tokenURI, bytes _extraData) returns()
 19620  func (_ExtBridge *ExtBridgeTransactor) HandleERC721Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestNonce uint64, _requestBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
 19621  	return _ExtBridge.contract.Transact(opts, "handleERC721Transfer", _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestNonce, _requestBlockNumber, _tokenURI, _extraData)
 19622  }
 19623  
 19624  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
 19625  //
 19626  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestNonce, uint64 _requestBlockNumber, string _tokenURI, bytes _extraData) returns()
 19627  func (_ExtBridge *ExtBridgeSession) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestNonce uint64, _requestBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
 19628  	return _ExtBridge.Contract.HandleERC721Transfer(&_ExtBridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestNonce, _requestBlockNumber, _tokenURI, _extraData)
 19629  }
 19630  
 19631  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
 19632  //
 19633  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestNonce, uint64 _requestBlockNumber, string _tokenURI, bytes _extraData) returns()
 19634  func (_ExtBridge *ExtBridgeTransactorSession) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestNonce uint64, _requestBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
 19635  	return _ExtBridge.Contract.HandleERC721Transfer(&_ExtBridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestNonce, _requestBlockNumber, _tokenURI, _extraData)
 19636  }
 19637  
 19638  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 19639  //
 19640  // Solidity: function lockToken(address _token) returns()
 19641  func (_ExtBridge *ExtBridgeTransactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 19642  	return _ExtBridge.contract.Transact(opts, "lockToken", _token)
 19643  }
 19644  
 19645  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 19646  //
 19647  // Solidity: function lockToken(address _token) returns()
 19648  func (_ExtBridge *ExtBridgeSession) LockToken(_token common.Address) (*types.Transaction, error) {
 19649  	return _ExtBridge.Contract.LockToken(&_ExtBridge.TransactOpts, _token)
 19650  }
 19651  
 19652  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 19653  //
 19654  // Solidity: function lockToken(address _token) returns()
 19655  func (_ExtBridge *ExtBridgeTransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
 19656  	return _ExtBridge.Contract.LockToken(&_ExtBridge.TransactOpts, _token)
 19657  }
 19658  
 19659  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 19660  //
 19661  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 19662  func (_ExtBridge *ExtBridgeTransactor) OnERC20Received(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 19663  	return _ExtBridge.contract.Transact(opts, "onERC20Received", _from, _to, _value, _feeLimit, _extraData)
 19664  }
 19665  
 19666  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 19667  //
 19668  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 19669  func (_ExtBridge *ExtBridgeSession) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 19670  	return _ExtBridge.Contract.OnERC20Received(&_ExtBridge.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
 19671  }
 19672  
 19673  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 19674  //
 19675  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 19676  func (_ExtBridge *ExtBridgeTransactorSession) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 19677  	return _ExtBridge.Contract.OnERC20Received(&_ExtBridge.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
 19678  }
 19679  
 19680  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 19681  //
 19682  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 19683  func (_ExtBridge *ExtBridgeTransactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 19684  	return _ExtBridge.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
 19685  }
 19686  
 19687  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 19688  //
 19689  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 19690  func (_ExtBridge *ExtBridgeSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 19691  	return _ExtBridge.Contract.OnERC721Received(&_ExtBridge.TransactOpts, _from, _tokenId, _to, _extraData)
 19692  }
 19693  
 19694  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 19695  //
 19696  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 19697  func (_ExtBridge *ExtBridgeTransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 19698  	return _ExtBridge.Contract.OnERC721Received(&_ExtBridge.TransactOpts, _from, _tokenId, _to, _extraData)
 19699  }
 19700  
 19701  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 19702  //
 19703  // Solidity: function registerOperator(address _operator) returns()
 19704  func (_ExtBridge *ExtBridgeTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 19705  	return _ExtBridge.contract.Transact(opts, "registerOperator", _operator)
 19706  }
 19707  
 19708  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 19709  //
 19710  // Solidity: function registerOperator(address _operator) returns()
 19711  func (_ExtBridge *ExtBridgeSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 19712  	return _ExtBridge.Contract.RegisterOperator(&_ExtBridge.TransactOpts, _operator)
 19713  }
 19714  
 19715  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 19716  //
 19717  // Solidity: function registerOperator(address _operator) returns()
 19718  func (_ExtBridge *ExtBridgeTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 19719  	return _ExtBridge.Contract.RegisterOperator(&_ExtBridge.TransactOpts, _operator)
 19720  }
 19721  
 19722  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 19723  //
 19724  // Solidity: function registerToken(address _token, address _cToken) returns()
 19725  func (_ExtBridge *ExtBridgeTransactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
 19726  	return _ExtBridge.contract.Transact(opts, "registerToken", _token, _cToken)
 19727  }
 19728  
 19729  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 19730  //
 19731  // Solidity: function registerToken(address _token, address _cToken) returns()
 19732  func (_ExtBridge *ExtBridgeSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
 19733  	return _ExtBridge.Contract.RegisterToken(&_ExtBridge.TransactOpts, _token, _cToken)
 19734  }
 19735  
 19736  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 19737  //
 19738  // Solidity: function registerToken(address _token, address _cToken) returns()
 19739  func (_ExtBridge *ExtBridgeTransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
 19740  	return _ExtBridge.Contract.RegisterToken(&_ExtBridge.TransactOpts, _token, _cToken)
 19741  }
 19742  
 19743  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 19744  //
 19745  // Solidity: function renounceOwnership() returns()
 19746  func (_ExtBridge *ExtBridgeTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 19747  	return _ExtBridge.contract.Transact(opts, "renounceOwnership")
 19748  }
 19749  
 19750  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 19751  //
 19752  // Solidity: function renounceOwnership() returns()
 19753  func (_ExtBridge *ExtBridgeSession) RenounceOwnership() (*types.Transaction, error) {
 19754  	return _ExtBridge.Contract.RenounceOwnership(&_ExtBridge.TransactOpts)
 19755  }
 19756  
 19757  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 19758  //
 19759  // Solidity: function renounceOwnership() returns()
 19760  func (_ExtBridge *ExtBridgeTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 19761  	return _ExtBridge.Contract.RenounceOwnership(&_ExtBridge.TransactOpts)
 19762  }
 19763  
 19764  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
 19765  //
 19766  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 19767  func (_ExtBridge *ExtBridgeTransactor) RequestERC20Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 19768  	return _ExtBridge.contract.Transact(opts, "requestERC20Transfer", _tokenAddress, _to, _value, _feeLimit, _extraData)
 19769  }
 19770  
 19771  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
 19772  //
 19773  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 19774  func (_ExtBridge *ExtBridgeSession) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 19775  	return _ExtBridge.Contract.RequestERC20Transfer(&_ExtBridge.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
 19776  }
 19777  
 19778  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
 19779  //
 19780  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 19781  func (_ExtBridge *ExtBridgeTransactorSession) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 19782  	return _ExtBridge.Contract.RequestERC20Transfer(&_ExtBridge.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
 19783  }
 19784  
 19785  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
 19786  //
 19787  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
 19788  func (_ExtBridge *ExtBridgeTransactor) RequestERC721Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
 19789  	return _ExtBridge.contract.Transact(opts, "requestERC721Transfer", _tokenAddress, _to, _tokenId, _extraData)
 19790  }
 19791  
 19792  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
 19793  //
 19794  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
 19795  func (_ExtBridge *ExtBridgeSession) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
 19796  	return _ExtBridge.Contract.RequestERC721Transfer(&_ExtBridge.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
 19797  }
 19798  
 19799  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
 19800  //
 19801  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
 19802  func (_ExtBridge *ExtBridgeTransactorSession) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
 19803  	return _ExtBridge.Contract.RequestERC721Transfer(&_ExtBridge.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
 19804  }
 19805  
 19806  // RequestSellERC20 is a paid mutator transaction binding the contract method 0xc5e49073.
 19807  //
 19808  // Solidity: function requestSellERC20(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, uint256 _price) returns()
 19809  func (_ExtBridge *ExtBridgeTransactor) RequestSellERC20(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _price *big.Int) (*types.Transaction, error) {
 19810  	return _ExtBridge.contract.Transact(opts, "requestSellERC20", _tokenAddress, _to, _value, _feeLimit, _price)
 19811  }
 19812  
 19813  // RequestSellERC20 is a paid mutator transaction binding the contract method 0xc5e49073.
 19814  //
 19815  // Solidity: function requestSellERC20(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, uint256 _price) returns()
 19816  func (_ExtBridge *ExtBridgeSession) RequestSellERC20(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _price *big.Int) (*types.Transaction, error) {
 19817  	return _ExtBridge.Contract.RequestSellERC20(&_ExtBridge.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _price)
 19818  }
 19819  
 19820  // RequestSellERC20 is a paid mutator transaction binding the contract method 0xc5e49073.
 19821  //
 19822  // Solidity: function requestSellERC20(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, uint256 _price) returns()
 19823  func (_ExtBridge *ExtBridgeTransactorSession) RequestSellERC20(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _price *big.Int) (*types.Transaction, error) {
 19824  	return _ExtBridge.Contract.RequestSellERC20(&_ExtBridge.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _price)
 19825  }
 19826  
 19827  // RequestSellERC721 is a paid mutator transaction binding the contract method 0x4c5146f5.
 19828  //
 19829  // Solidity: function requestSellERC721(address _tokenAddress, address _to, uint256 _tokenId, uint256 _price) returns()
 19830  func (_ExtBridge *ExtBridgeTransactor) RequestSellERC721(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _price *big.Int) (*types.Transaction, error) {
 19831  	return _ExtBridge.contract.Transact(opts, "requestSellERC721", _tokenAddress, _to, _tokenId, _price)
 19832  }
 19833  
 19834  // RequestSellERC721 is a paid mutator transaction binding the contract method 0x4c5146f5.
 19835  //
 19836  // Solidity: function requestSellERC721(address _tokenAddress, address _to, uint256 _tokenId, uint256 _price) returns()
 19837  func (_ExtBridge *ExtBridgeSession) RequestSellERC721(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _price *big.Int) (*types.Transaction, error) {
 19838  	return _ExtBridge.Contract.RequestSellERC721(&_ExtBridge.TransactOpts, _tokenAddress, _to, _tokenId, _price)
 19839  }
 19840  
 19841  // RequestSellERC721 is a paid mutator transaction binding the contract method 0x4c5146f5.
 19842  //
 19843  // Solidity: function requestSellERC721(address _tokenAddress, address _to, uint256 _tokenId, uint256 _price) returns()
 19844  func (_ExtBridge *ExtBridgeTransactorSession) RequestSellERC721(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _price *big.Int) (*types.Transaction, error) {
 19845  	return _ExtBridge.Contract.RequestSellERC721(&_ExtBridge.TransactOpts, _tokenAddress, _to, _tokenId, _price)
 19846  }
 19847  
 19848  // SetCallback is a paid mutator transaction binding the contract method 0x8daa63ac.
 19849  //
 19850  // Solidity: function setCallback(address _addr) returns()
 19851  func (_ExtBridge *ExtBridgeTransactor) SetCallback(opts *bind.TransactOpts, _addr common.Address) (*types.Transaction, error) {
 19852  	return _ExtBridge.contract.Transact(opts, "setCallback", _addr)
 19853  }
 19854  
 19855  // SetCallback is a paid mutator transaction binding the contract method 0x8daa63ac.
 19856  //
 19857  // Solidity: function setCallback(address _addr) returns()
 19858  func (_ExtBridge *ExtBridgeSession) SetCallback(_addr common.Address) (*types.Transaction, error) {
 19859  	return _ExtBridge.Contract.SetCallback(&_ExtBridge.TransactOpts, _addr)
 19860  }
 19861  
 19862  // SetCallback is a paid mutator transaction binding the contract method 0x8daa63ac.
 19863  //
 19864  // Solidity: function setCallback(address _addr) returns()
 19865  func (_ExtBridge *ExtBridgeTransactorSession) SetCallback(_addr common.Address) (*types.Transaction, error) {
 19866  	return _ExtBridge.Contract.SetCallback(&_ExtBridge.TransactOpts, _addr)
 19867  }
 19868  
 19869  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
 19870  //
 19871  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
 19872  func (_ExtBridge *ExtBridgeTransactor) SetERC20Fee(opts *bind.TransactOpts, _token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 19873  	return _ExtBridge.contract.Transact(opts, "setERC20Fee", _token, _fee, _requestNonce)
 19874  }
 19875  
 19876  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
 19877  //
 19878  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
 19879  func (_ExtBridge *ExtBridgeSession) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 19880  	return _ExtBridge.Contract.SetERC20Fee(&_ExtBridge.TransactOpts, _token, _fee, _requestNonce)
 19881  }
 19882  
 19883  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
 19884  //
 19885  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
 19886  func (_ExtBridge *ExtBridgeTransactorSession) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 19887  	return _ExtBridge.Contract.SetERC20Fee(&_ExtBridge.TransactOpts, _token, _fee, _requestNonce)
 19888  }
 19889  
 19890  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 19891  //
 19892  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 19893  func (_ExtBridge *ExtBridgeTransactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
 19894  	return _ExtBridge.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
 19895  }
 19896  
 19897  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 19898  //
 19899  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 19900  func (_ExtBridge *ExtBridgeSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 19901  	return _ExtBridge.Contract.SetFeeReceiver(&_ExtBridge.TransactOpts, _feeReceiver)
 19902  }
 19903  
 19904  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 19905  //
 19906  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 19907  func (_ExtBridge *ExtBridgeTransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 19908  	return _ExtBridge.Contract.SetFeeReceiver(&_ExtBridge.TransactOpts, _feeReceiver)
 19909  }
 19910  
 19911  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 19912  //
 19913  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 19914  func (_ExtBridge *ExtBridgeTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
 19915  	return _ExtBridge.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
 19916  }
 19917  
 19918  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 19919  //
 19920  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 19921  func (_ExtBridge *ExtBridgeSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 19922  	return _ExtBridge.Contract.SetOperatorThreshold(&_ExtBridge.TransactOpts, _voteType, _threshold)
 19923  }
 19924  
 19925  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 19926  //
 19927  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 19928  func (_ExtBridge *ExtBridgeTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 19929  	return _ExtBridge.Contract.SetOperatorThreshold(&_ExtBridge.TransactOpts, _voteType, _threshold)
 19930  }
 19931  
 19932  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 19933  //
 19934  // Solidity: function start(bool _status) returns()
 19935  func (_ExtBridge *ExtBridgeTransactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
 19936  	return _ExtBridge.contract.Transact(opts, "start", _status)
 19937  }
 19938  
 19939  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 19940  //
 19941  // Solidity: function start(bool _status) returns()
 19942  func (_ExtBridge *ExtBridgeSession) Start(_status bool) (*types.Transaction, error) {
 19943  	return _ExtBridge.Contract.Start(&_ExtBridge.TransactOpts, _status)
 19944  }
 19945  
 19946  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 19947  //
 19948  // Solidity: function start(bool _status) returns()
 19949  func (_ExtBridge *ExtBridgeTransactorSession) Start(_status bool) (*types.Transaction, error) {
 19950  	return _ExtBridge.Contract.Start(&_ExtBridge.TransactOpts, _status)
 19951  }
 19952  
 19953  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 19954  //
 19955  // Solidity: function transferOwnership(address newOwner) returns()
 19956  func (_ExtBridge *ExtBridgeTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 19957  	return _ExtBridge.contract.Transact(opts, "transferOwnership", newOwner)
 19958  }
 19959  
 19960  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 19961  //
 19962  // Solidity: function transferOwnership(address newOwner) returns()
 19963  func (_ExtBridge *ExtBridgeSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 19964  	return _ExtBridge.Contract.TransferOwnership(&_ExtBridge.TransactOpts, newOwner)
 19965  }
 19966  
 19967  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 19968  //
 19969  // Solidity: function transferOwnership(address newOwner) returns()
 19970  func (_ExtBridge *ExtBridgeTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 19971  	return _ExtBridge.Contract.TransferOwnership(&_ExtBridge.TransactOpts, newOwner)
 19972  }
 19973  
 19974  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 19975  //
 19976  // Solidity: function unlockToken(address _token) returns()
 19977  func (_ExtBridge *ExtBridgeTransactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 19978  	return _ExtBridge.contract.Transact(opts, "unlockToken", _token)
 19979  }
 19980  
 19981  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 19982  //
 19983  // Solidity: function unlockToken(address _token) returns()
 19984  func (_ExtBridge *ExtBridgeSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
 19985  	return _ExtBridge.Contract.UnlockToken(&_ExtBridge.TransactOpts, _token)
 19986  }
 19987  
 19988  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 19989  //
 19990  // Solidity: function unlockToken(address _token) returns()
 19991  func (_ExtBridge *ExtBridgeTransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
 19992  	return _ExtBridge.Contract.UnlockToken(&_ExtBridge.TransactOpts, _token)
 19993  }
 19994  
 19995  // ExtBridgeERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the ExtBridge contract.
 19996  type ExtBridgeERC20FeeChangedIterator struct {
 19997  	Event *ExtBridgeERC20FeeChanged // Event containing the contract specifics and raw log
 19998  
 19999  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20000  	event    string              // Event name to use for unpacking event data
 20001  
 20002  	logs chan types.Log      // Log channel receiving the found contract events
 20003  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20004  	done bool                // Whether the subscription completed delivering logs
 20005  	fail error               // Occurred error to stop iteration
 20006  }
 20007  
 20008  // Next advances the iterator to the subsequent event, returning whether there
 20009  // are any more events found. In case of a retrieval or parsing error, false is
 20010  // returned and Error() can be queried for the exact failure.
 20011  func (it *ExtBridgeERC20FeeChangedIterator) Next() bool {
 20012  	// If the iterator failed, stop iterating
 20013  	if it.fail != nil {
 20014  		return false
 20015  	}
 20016  	// If the iterator completed, deliver directly whatever's available
 20017  	if it.done {
 20018  		select {
 20019  		case log := <-it.logs:
 20020  			it.Event = new(ExtBridgeERC20FeeChanged)
 20021  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20022  				it.fail = err
 20023  				return false
 20024  			}
 20025  			it.Event.Raw = log
 20026  			return true
 20027  
 20028  		default:
 20029  			return false
 20030  		}
 20031  	}
 20032  	// Iterator still in progress, wait for either a data or an error event
 20033  	select {
 20034  	case log := <-it.logs:
 20035  		it.Event = new(ExtBridgeERC20FeeChanged)
 20036  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20037  			it.fail = err
 20038  			return false
 20039  		}
 20040  		it.Event.Raw = log
 20041  		return true
 20042  
 20043  	case err := <-it.sub.Err():
 20044  		it.done = true
 20045  		it.fail = err
 20046  		return it.Next()
 20047  	}
 20048  }
 20049  
 20050  // Error returns any retrieval or parsing error occurred during filtering.
 20051  func (it *ExtBridgeERC20FeeChangedIterator) Error() error {
 20052  	return it.fail
 20053  }
 20054  
 20055  // Close terminates the iteration process, releasing any pending underlying
 20056  // resources.
 20057  func (it *ExtBridgeERC20FeeChangedIterator) Close() error {
 20058  	it.sub.Unsubscribe()
 20059  	return nil
 20060  }
 20061  
 20062  // ExtBridgeERC20FeeChanged represents a ERC20FeeChanged event raised by the ExtBridge contract.
 20063  type ExtBridgeERC20FeeChanged struct {
 20064  	Token common.Address
 20065  	Fee   *big.Int
 20066  	Raw   types.Log // Blockchain specific contextual infos
 20067  }
 20068  
 20069  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 20070  //
 20071  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 20072  func (_ExtBridge *ExtBridgeFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*ExtBridgeERC20FeeChangedIterator, error) {
 20073  
 20074  	var tokenRule []interface{}
 20075  	for _, tokenItem := range token {
 20076  		tokenRule = append(tokenRule, tokenItem)
 20077  	}
 20078  	var feeRule []interface{}
 20079  	for _, feeItem := range fee {
 20080  		feeRule = append(feeRule, feeItem)
 20081  	}
 20082  
 20083  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 20084  	if err != nil {
 20085  		return nil, err
 20086  	}
 20087  	return &ExtBridgeERC20FeeChangedIterator{contract: _ExtBridge.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
 20088  }
 20089  
 20090  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 20091  //
 20092  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 20093  func (_ExtBridge *ExtBridgeFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *ExtBridgeERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
 20094  
 20095  	var tokenRule []interface{}
 20096  	for _, tokenItem := range token {
 20097  		tokenRule = append(tokenRule, tokenItem)
 20098  	}
 20099  	var feeRule []interface{}
 20100  	for _, feeItem := range fee {
 20101  		feeRule = append(feeRule, feeItem)
 20102  	}
 20103  
 20104  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 20105  	if err != nil {
 20106  		return nil, err
 20107  	}
 20108  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20109  		defer sub.Unsubscribe()
 20110  		for {
 20111  			select {
 20112  			case log := <-logs:
 20113  				// New log arrived, parse the event and forward to the user
 20114  				event := new(ExtBridgeERC20FeeChanged)
 20115  				if err := _ExtBridge.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 20116  					return err
 20117  				}
 20118  				event.Raw = log
 20119  
 20120  				select {
 20121  				case sink <- event:
 20122  				case err := <-sub.Err():
 20123  					return err
 20124  				case <-quit:
 20125  					return nil
 20126  				}
 20127  			case err := <-sub.Err():
 20128  				return err
 20129  			case <-quit:
 20130  				return nil
 20131  			}
 20132  		}
 20133  	}), nil
 20134  }
 20135  
 20136  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 20137  //
 20138  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 20139  func (_ExtBridge *ExtBridgeFilterer) ParseERC20FeeChanged(log types.Log) (*ExtBridgeERC20FeeChanged, error) {
 20140  	event := new(ExtBridgeERC20FeeChanged)
 20141  	if err := _ExtBridge.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 20142  		return nil, err
 20143  	}
 20144  	return event, nil
 20145  }
 20146  
 20147  // ExtBridgeFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the ExtBridge contract.
 20148  type ExtBridgeFeeReceiverChangedIterator struct {
 20149  	Event *ExtBridgeFeeReceiverChanged // Event containing the contract specifics and raw log
 20150  
 20151  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20152  	event    string              // Event name to use for unpacking event data
 20153  
 20154  	logs chan types.Log      // Log channel receiving the found contract events
 20155  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20156  	done bool                // Whether the subscription completed delivering logs
 20157  	fail error               // Occurred error to stop iteration
 20158  }
 20159  
 20160  // Next advances the iterator to the subsequent event, returning whether there
 20161  // are any more events found. In case of a retrieval or parsing error, false is
 20162  // returned and Error() can be queried for the exact failure.
 20163  func (it *ExtBridgeFeeReceiverChangedIterator) Next() bool {
 20164  	// If the iterator failed, stop iterating
 20165  	if it.fail != nil {
 20166  		return false
 20167  	}
 20168  	// If the iterator completed, deliver directly whatever's available
 20169  	if it.done {
 20170  		select {
 20171  		case log := <-it.logs:
 20172  			it.Event = new(ExtBridgeFeeReceiverChanged)
 20173  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20174  				it.fail = err
 20175  				return false
 20176  			}
 20177  			it.Event.Raw = log
 20178  			return true
 20179  
 20180  		default:
 20181  			return false
 20182  		}
 20183  	}
 20184  	// Iterator still in progress, wait for either a data or an error event
 20185  	select {
 20186  	case log := <-it.logs:
 20187  		it.Event = new(ExtBridgeFeeReceiverChanged)
 20188  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20189  			it.fail = err
 20190  			return false
 20191  		}
 20192  		it.Event.Raw = log
 20193  		return true
 20194  
 20195  	case err := <-it.sub.Err():
 20196  		it.done = true
 20197  		it.fail = err
 20198  		return it.Next()
 20199  	}
 20200  }
 20201  
 20202  // Error returns any retrieval or parsing error occurred during filtering.
 20203  func (it *ExtBridgeFeeReceiverChangedIterator) Error() error {
 20204  	return it.fail
 20205  }
 20206  
 20207  // Close terminates the iteration process, releasing any pending underlying
 20208  // resources.
 20209  func (it *ExtBridgeFeeReceiverChangedIterator) Close() error {
 20210  	it.sub.Unsubscribe()
 20211  	return nil
 20212  }
 20213  
 20214  // ExtBridgeFeeReceiverChanged represents a FeeReceiverChanged event raised by the ExtBridge contract.
 20215  type ExtBridgeFeeReceiverChanged struct {
 20216  	FeeReceiver common.Address
 20217  	Raw         types.Log // Blockchain specific contextual infos
 20218  }
 20219  
 20220  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 20221  //
 20222  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 20223  func (_ExtBridge *ExtBridgeFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*ExtBridgeFeeReceiverChangedIterator, error) {
 20224  
 20225  	var feeReceiverRule []interface{}
 20226  	for _, feeReceiverItem := range feeReceiver {
 20227  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 20228  	}
 20229  
 20230  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 20231  	if err != nil {
 20232  		return nil, err
 20233  	}
 20234  	return &ExtBridgeFeeReceiverChangedIterator{contract: _ExtBridge.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
 20235  }
 20236  
 20237  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 20238  //
 20239  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 20240  func (_ExtBridge *ExtBridgeFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *ExtBridgeFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
 20241  
 20242  	var feeReceiverRule []interface{}
 20243  	for _, feeReceiverItem := range feeReceiver {
 20244  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 20245  	}
 20246  
 20247  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 20248  	if err != nil {
 20249  		return nil, err
 20250  	}
 20251  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20252  		defer sub.Unsubscribe()
 20253  		for {
 20254  			select {
 20255  			case log := <-logs:
 20256  				// New log arrived, parse the event and forward to the user
 20257  				event := new(ExtBridgeFeeReceiverChanged)
 20258  				if err := _ExtBridge.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 20259  					return err
 20260  				}
 20261  				event.Raw = log
 20262  
 20263  				select {
 20264  				case sink <- event:
 20265  				case err := <-sub.Err():
 20266  					return err
 20267  				case <-quit:
 20268  					return nil
 20269  				}
 20270  			case err := <-sub.Err():
 20271  				return err
 20272  			case <-quit:
 20273  				return nil
 20274  			}
 20275  		}
 20276  	}), nil
 20277  }
 20278  
 20279  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 20280  //
 20281  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 20282  func (_ExtBridge *ExtBridgeFilterer) ParseFeeReceiverChanged(log types.Log) (*ExtBridgeFeeReceiverChanged, error) {
 20283  	event := new(ExtBridgeFeeReceiverChanged)
 20284  	if err := _ExtBridge.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 20285  		return nil, err
 20286  	}
 20287  	return event, nil
 20288  }
 20289  
 20290  // ExtBridgeHandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the ExtBridge contract.
 20291  type ExtBridgeHandleValueTransferIterator struct {
 20292  	Event *ExtBridgeHandleValueTransfer // Event containing the contract specifics and raw log
 20293  
 20294  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20295  	event    string              // Event name to use for unpacking event data
 20296  
 20297  	logs chan types.Log      // Log channel receiving the found contract events
 20298  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20299  	done bool                // Whether the subscription completed delivering logs
 20300  	fail error               // Occurred error to stop iteration
 20301  }
 20302  
 20303  // Next advances the iterator to the subsequent event, returning whether there
 20304  // are any more events found. In case of a retrieval or parsing error, false is
 20305  // returned and Error() can be queried for the exact failure.
 20306  func (it *ExtBridgeHandleValueTransferIterator) Next() bool {
 20307  	// If the iterator failed, stop iterating
 20308  	if it.fail != nil {
 20309  		return false
 20310  	}
 20311  	// If the iterator completed, deliver directly whatever's available
 20312  	if it.done {
 20313  		select {
 20314  		case log := <-it.logs:
 20315  			it.Event = new(ExtBridgeHandleValueTransfer)
 20316  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20317  				it.fail = err
 20318  				return false
 20319  			}
 20320  			it.Event.Raw = log
 20321  			return true
 20322  
 20323  		default:
 20324  			return false
 20325  		}
 20326  	}
 20327  	// Iterator still in progress, wait for either a data or an error event
 20328  	select {
 20329  	case log := <-it.logs:
 20330  		it.Event = new(ExtBridgeHandleValueTransfer)
 20331  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20332  			it.fail = err
 20333  			return false
 20334  		}
 20335  		it.Event.Raw = log
 20336  		return true
 20337  
 20338  	case err := <-it.sub.Err():
 20339  		it.done = true
 20340  		it.fail = err
 20341  		return it.Next()
 20342  	}
 20343  }
 20344  
 20345  // Error returns any retrieval or parsing error occurred during filtering.
 20346  func (it *ExtBridgeHandleValueTransferIterator) Error() error {
 20347  	return it.fail
 20348  }
 20349  
 20350  // Close terminates the iteration process, releasing any pending underlying
 20351  // resources.
 20352  func (it *ExtBridgeHandleValueTransferIterator) Close() error {
 20353  	it.sub.Unsubscribe()
 20354  	return nil
 20355  }
 20356  
 20357  // ExtBridgeHandleValueTransfer represents a HandleValueTransfer event raised by the ExtBridge contract.
 20358  type ExtBridgeHandleValueTransfer struct {
 20359  	RequestTxHash    [32]byte
 20360  	TokenType        uint8
 20361  	From             common.Address
 20362  	To               common.Address
 20363  	TokenAddress     common.Address
 20364  	ValueOrTokenId   *big.Int
 20365  	HandleNonce      uint64
 20366  	LowerHandleNonce uint64
 20367  	ExtraData        []byte
 20368  	Raw              types.Log // Blockchain specific contextual infos
 20369  }
 20370  
 20371  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 20372  //
 20373  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 20374  func (_ExtBridge *ExtBridgeFilterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*ExtBridgeHandleValueTransferIterator, error) {
 20375  
 20376  	var fromRule []interface{}
 20377  	for _, fromItem := range from {
 20378  		fromRule = append(fromRule, fromItem)
 20379  	}
 20380  	var toRule []interface{}
 20381  	for _, toItem := range to {
 20382  		toRule = append(toRule, toItem)
 20383  	}
 20384  	var tokenAddressRule []interface{}
 20385  	for _, tokenAddressItem := range tokenAddress {
 20386  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 20387  	}
 20388  
 20389  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 20390  	if err != nil {
 20391  		return nil, err
 20392  	}
 20393  	return &ExtBridgeHandleValueTransferIterator{contract: _ExtBridge.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
 20394  }
 20395  
 20396  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 20397  //
 20398  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 20399  func (_ExtBridge *ExtBridgeFilterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *ExtBridgeHandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 20400  
 20401  	var fromRule []interface{}
 20402  	for _, fromItem := range from {
 20403  		fromRule = append(fromRule, fromItem)
 20404  	}
 20405  	var toRule []interface{}
 20406  	for _, toItem := range to {
 20407  		toRule = append(toRule, toItem)
 20408  	}
 20409  	var tokenAddressRule []interface{}
 20410  	for _, tokenAddressItem := range tokenAddress {
 20411  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 20412  	}
 20413  
 20414  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 20415  	if err != nil {
 20416  		return nil, err
 20417  	}
 20418  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20419  		defer sub.Unsubscribe()
 20420  		for {
 20421  			select {
 20422  			case log := <-logs:
 20423  				// New log arrived, parse the event and forward to the user
 20424  				event := new(ExtBridgeHandleValueTransfer)
 20425  				if err := _ExtBridge.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 20426  					return err
 20427  				}
 20428  				event.Raw = log
 20429  
 20430  				select {
 20431  				case sink <- event:
 20432  				case err := <-sub.Err():
 20433  					return err
 20434  				case <-quit:
 20435  					return nil
 20436  				}
 20437  			case err := <-sub.Err():
 20438  				return err
 20439  			case <-quit:
 20440  				return nil
 20441  			}
 20442  		}
 20443  	}), nil
 20444  }
 20445  
 20446  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 20447  //
 20448  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 20449  func (_ExtBridge *ExtBridgeFilterer) ParseHandleValueTransfer(log types.Log) (*ExtBridgeHandleValueTransfer, error) {
 20450  	event := new(ExtBridgeHandleValueTransfer)
 20451  	if err := _ExtBridge.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 20452  		return nil, err
 20453  	}
 20454  	return event, nil
 20455  }
 20456  
 20457  // ExtBridgeKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the ExtBridge contract.
 20458  type ExtBridgeKLAYFeeChangedIterator struct {
 20459  	Event *ExtBridgeKLAYFeeChanged // Event containing the contract specifics and raw log
 20460  
 20461  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20462  	event    string              // Event name to use for unpacking event data
 20463  
 20464  	logs chan types.Log      // Log channel receiving the found contract events
 20465  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20466  	done bool                // Whether the subscription completed delivering logs
 20467  	fail error               // Occurred error to stop iteration
 20468  }
 20469  
 20470  // Next advances the iterator to the subsequent event, returning whether there
 20471  // are any more events found. In case of a retrieval or parsing error, false is
 20472  // returned and Error() can be queried for the exact failure.
 20473  func (it *ExtBridgeKLAYFeeChangedIterator) Next() bool {
 20474  	// If the iterator failed, stop iterating
 20475  	if it.fail != nil {
 20476  		return false
 20477  	}
 20478  	// If the iterator completed, deliver directly whatever's available
 20479  	if it.done {
 20480  		select {
 20481  		case log := <-it.logs:
 20482  			it.Event = new(ExtBridgeKLAYFeeChanged)
 20483  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20484  				it.fail = err
 20485  				return false
 20486  			}
 20487  			it.Event.Raw = log
 20488  			return true
 20489  
 20490  		default:
 20491  			return false
 20492  		}
 20493  	}
 20494  	// Iterator still in progress, wait for either a data or an error event
 20495  	select {
 20496  	case log := <-it.logs:
 20497  		it.Event = new(ExtBridgeKLAYFeeChanged)
 20498  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20499  			it.fail = err
 20500  			return false
 20501  		}
 20502  		it.Event.Raw = log
 20503  		return true
 20504  
 20505  	case err := <-it.sub.Err():
 20506  		it.done = true
 20507  		it.fail = err
 20508  		return it.Next()
 20509  	}
 20510  }
 20511  
 20512  // Error returns any retrieval or parsing error occurred during filtering.
 20513  func (it *ExtBridgeKLAYFeeChangedIterator) Error() error {
 20514  	return it.fail
 20515  }
 20516  
 20517  // Close terminates the iteration process, releasing any pending underlying
 20518  // resources.
 20519  func (it *ExtBridgeKLAYFeeChangedIterator) Close() error {
 20520  	it.sub.Unsubscribe()
 20521  	return nil
 20522  }
 20523  
 20524  // ExtBridgeKLAYFeeChanged represents a KLAYFeeChanged event raised by the ExtBridge contract.
 20525  type ExtBridgeKLAYFeeChanged struct {
 20526  	Fee *big.Int
 20527  	Raw types.Log // Blockchain specific contextual infos
 20528  }
 20529  
 20530  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 20531  //
 20532  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 20533  func (_ExtBridge *ExtBridgeFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*ExtBridgeKLAYFeeChangedIterator, error) {
 20534  
 20535  	var feeRule []interface{}
 20536  	for _, feeItem := range fee {
 20537  		feeRule = append(feeRule, feeItem)
 20538  	}
 20539  
 20540  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
 20541  	if err != nil {
 20542  		return nil, err
 20543  	}
 20544  	return &ExtBridgeKLAYFeeChangedIterator{contract: _ExtBridge.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
 20545  }
 20546  
 20547  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 20548  //
 20549  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 20550  func (_ExtBridge *ExtBridgeFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *ExtBridgeKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
 20551  
 20552  	var feeRule []interface{}
 20553  	for _, feeItem := range fee {
 20554  		feeRule = append(feeRule, feeItem)
 20555  	}
 20556  
 20557  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
 20558  	if err != nil {
 20559  		return nil, err
 20560  	}
 20561  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20562  		defer sub.Unsubscribe()
 20563  		for {
 20564  			select {
 20565  			case log := <-logs:
 20566  				// New log arrived, parse the event and forward to the user
 20567  				event := new(ExtBridgeKLAYFeeChanged)
 20568  				if err := _ExtBridge.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 20569  					return err
 20570  				}
 20571  				event.Raw = log
 20572  
 20573  				select {
 20574  				case sink <- event:
 20575  				case err := <-sub.Err():
 20576  					return err
 20577  				case <-quit:
 20578  					return nil
 20579  				}
 20580  			case err := <-sub.Err():
 20581  				return err
 20582  			case <-quit:
 20583  				return nil
 20584  			}
 20585  		}
 20586  	}), nil
 20587  }
 20588  
 20589  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 20590  //
 20591  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 20592  func (_ExtBridge *ExtBridgeFilterer) ParseKLAYFeeChanged(log types.Log) (*ExtBridgeKLAYFeeChanged, error) {
 20593  	event := new(ExtBridgeKLAYFeeChanged)
 20594  	if err := _ExtBridge.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 20595  		return nil, err
 20596  	}
 20597  	return event, nil
 20598  }
 20599  
 20600  // ExtBridgeOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ExtBridge contract.
 20601  type ExtBridgeOwnershipTransferredIterator struct {
 20602  	Event *ExtBridgeOwnershipTransferred // Event containing the contract specifics and raw log
 20603  
 20604  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20605  	event    string              // Event name to use for unpacking event data
 20606  
 20607  	logs chan types.Log      // Log channel receiving the found contract events
 20608  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20609  	done bool                // Whether the subscription completed delivering logs
 20610  	fail error               // Occurred error to stop iteration
 20611  }
 20612  
 20613  // Next advances the iterator to the subsequent event, returning whether there
 20614  // are any more events found. In case of a retrieval or parsing error, false is
 20615  // returned and Error() can be queried for the exact failure.
 20616  func (it *ExtBridgeOwnershipTransferredIterator) Next() bool {
 20617  	// If the iterator failed, stop iterating
 20618  	if it.fail != nil {
 20619  		return false
 20620  	}
 20621  	// If the iterator completed, deliver directly whatever's available
 20622  	if it.done {
 20623  		select {
 20624  		case log := <-it.logs:
 20625  			it.Event = new(ExtBridgeOwnershipTransferred)
 20626  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20627  				it.fail = err
 20628  				return false
 20629  			}
 20630  			it.Event.Raw = log
 20631  			return true
 20632  
 20633  		default:
 20634  			return false
 20635  		}
 20636  	}
 20637  	// Iterator still in progress, wait for either a data or an error event
 20638  	select {
 20639  	case log := <-it.logs:
 20640  		it.Event = new(ExtBridgeOwnershipTransferred)
 20641  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20642  			it.fail = err
 20643  			return false
 20644  		}
 20645  		it.Event.Raw = log
 20646  		return true
 20647  
 20648  	case err := <-it.sub.Err():
 20649  		it.done = true
 20650  		it.fail = err
 20651  		return it.Next()
 20652  	}
 20653  }
 20654  
 20655  // Error returns any retrieval or parsing error occurred during filtering.
 20656  func (it *ExtBridgeOwnershipTransferredIterator) Error() error {
 20657  	return it.fail
 20658  }
 20659  
 20660  // Close terminates the iteration process, releasing any pending underlying
 20661  // resources.
 20662  func (it *ExtBridgeOwnershipTransferredIterator) Close() error {
 20663  	it.sub.Unsubscribe()
 20664  	return nil
 20665  }
 20666  
 20667  // ExtBridgeOwnershipTransferred represents a OwnershipTransferred event raised by the ExtBridge contract.
 20668  type ExtBridgeOwnershipTransferred struct {
 20669  	PreviousOwner common.Address
 20670  	NewOwner      common.Address
 20671  	Raw           types.Log // Blockchain specific contextual infos
 20672  }
 20673  
 20674  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 20675  //
 20676  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 20677  func (_ExtBridge *ExtBridgeFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ExtBridgeOwnershipTransferredIterator, error) {
 20678  
 20679  	var previousOwnerRule []interface{}
 20680  	for _, previousOwnerItem := range previousOwner {
 20681  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 20682  	}
 20683  	var newOwnerRule []interface{}
 20684  	for _, newOwnerItem := range newOwner {
 20685  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 20686  	}
 20687  
 20688  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 20689  	if err != nil {
 20690  		return nil, err
 20691  	}
 20692  	return &ExtBridgeOwnershipTransferredIterator{contract: _ExtBridge.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 20693  }
 20694  
 20695  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 20696  //
 20697  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 20698  func (_ExtBridge *ExtBridgeFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ExtBridgeOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 20699  
 20700  	var previousOwnerRule []interface{}
 20701  	for _, previousOwnerItem := range previousOwner {
 20702  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 20703  	}
 20704  	var newOwnerRule []interface{}
 20705  	for _, newOwnerItem := range newOwner {
 20706  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 20707  	}
 20708  
 20709  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 20710  	if err != nil {
 20711  		return nil, err
 20712  	}
 20713  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20714  		defer sub.Unsubscribe()
 20715  		for {
 20716  			select {
 20717  			case log := <-logs:
 20718  				// New log arrived, parse the event and forward to the user
 20719  				event := new(ExtBridgeOwnershipTransferred)
 20720  				if err := _ExtBridge.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 20721  					return err
 20722  				}
 20723  				event.Raw = log
 20724  
 20725  				select {
 20726  				case sink <- event:
 20727  				case err := <-sub.Err():
 20728  					return err
 20729  				case <-quit:
 20730  					return nil
 20731  				}
 20732  			case err := <-sub.Err():
 20733  				return err
 20734  			case <-quit:
 20735  				return nil
 20736  			}
 20737  		}
 20738  	}), nil
 20739  }
 20740  
 20741  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 20742  //
 20743  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 20744  func (_ExtBridge *ExtBridgeFilterer) ParseOwnershipTransferred(log types.Log) (*ExtBridgeOwnershipTransferred, error) {
 20745  	event := new(ExtBridgeOwnershipTransferred)
 20746  	if err := _ExtBridge.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 20747  		return nil, err
 20748  	}
 20749  	return event, nil
 20750  }
 20751  
 20752  // ExtBridgeRequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the ExtBridge contract.
 20753  type ExtBridgeRequestValueTransferIterator struct {
 20754  	Event *ExtBridgeRequestValueTransfer // Event containing the contract specifics and raw log
 20755  
 20756  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20757  	event    string              // Event name to use for unpacking event data
 20758  
 20759  	logs chan types.Log      // Log channel receiving the found contract events
 20760  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20761  	done bool                // Whether the subscription completed delivering logs
 20762  	fail error               // Occurred error to stop iteration
 20763  }
 20764  
 20765  // Next advances the iterator to the subsequent event, returning whether there
 20766  // are any more events found. In case of a retrieval or parsing error, false is
 20767  // returned and Error() can be queried for the exact failure.
 20768  func (it *ExtBridgeRequestValueTransferIterator) Next() bool {
 20769  	// If the iterator failed, stop iterating
 20770  	if it.fail != nil {
 20771  		return false
 20772  	}
 20773  	// If the iterator completed, deliver directly whatever's available
 20774  	if it.done {
 20775  		select {
 20776  		case log := <-it.logs:
 20777  			it.Event = new(ExtBridgeRequestValueTransfer)
 20778  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20779  				it.fail = err
 20780  				return false
 20781  			}
 20782  			it.Event.Raw = log
 20783  			return true
 20784  
 20785  		default:
 20786  			return false
 20787  		}
 20788  	}
 20789  	// Iterator still in progress, wait for either a data or an error event
 20790  	select {
 20791  	case log := <-it.logs:
 20792  		it.Event = new(ExtBridgeRequestValueTransfer)
 20793  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20794  			it.fail = err
 20795  			return false
 20796  		}
 20797  		it.Event.Raw = log
 20798  		return true
 20799  
 20800  	case err := <-it.sub.Err():
 20801  		it.done = true
 20802  		it.fail = err
 20803  		return it.Next()
 20804  	}
 20805  }
 20806  
 20807  // Error returns any retrieval or parsing error occurred during filtering.
 20808  func (it *ExtBridgeRequestValueTransferIterator) Error() error {
 20809  	return it.fail
 20810  }
 20811  
 20812  // Close terminates the iteration process, releasing any pending underlying
 20813  // resources.
 20814  func (it *ExtBridgeRequestValueTransferIterator) Close() error {
 20815  	it.sub.Unsubscribe()
 20816  	return nil
 20817  }
 20818  
 20819  // ExtBridgeRequestValueTransfer represents a RequestValueTransfer event raised by the ExtBridge contract.
 20820  type ExtBridgeRequestValueTransfer struct {
 20821  	TokenType      uint8
 20822  	From           common.Address
 20823  	To             common.Address
 20824  	TokenAddress   common.Address
 20825  	ValueOrTokenId *big.Int
 20826  	RequestNonce   uint64
 20827  	Fee            *big.Int
 20828  	ExtraData      []byte
 20829  	Raw            types.Log // Blockchain specific contextual infos
 20830  }
 20831  
 20832  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 20833  //
 20834  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 20835  func (_ExtBridge *ExtBridgeFilterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*ExtBridgeRequestValueTransferIterator, error) {
 20836  
 20837  	var fromRule []interface{}
 20838  	for _, fromItem := range from {
 20839  		fromRule = append(fromRule, fromItem)
 20840  	}
 20841  	var toRule []interface{}
 20842  	for _, toItem := range to {
 20843  		toRule = append(toRule, toItem)
 20844  	}
 20845  	var tokenAddressRule []interface{}
 20846  	for _, tokenAddressItem := range tokenAddress {
 20847  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 20848  	}
 20849  
 20850  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 20851  	if err != nil {
 20852  		return nil, err
 20853  	}
 20854  	return &ExtBridgeRequestValueTransferIterator{contract: _ExtBridge.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
 20855  }
 20856  
 20857  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 20858  //
 20859  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 20860  func (_ExtBridge *ExtBridgeFilterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *ExtBridgeRequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 20861  
 20862  	var fromRule []interface{}
 20863  	for _, fromItem := range from {
 20864  		fromRule = append(fromRule, fromItem)
 20865  	}
 20866  	var toRule []interface{}
 20867  	for _, toItem := range to {
 20868  		toRule = append(toRule, toItem)
 20869  	}
 20870  	var tokenAddressRule []interface{}
 20871  	for _, tokenAddressItem := range tokenAddress {
 20872  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 20873  	}
 20874  
 20875  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 20876  	if err != nil {
 20877  		return nil, err
 20878  	}
 20879  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20880  		defer sub.Unsubscribe()
 20881  		for {
 20882  			select {
 20883  			case log := <-logs:
 20884  				// New log arrived, parse the event and forward to the user
 20885  				event := new(ExtBridgeRequestValueTransfer)
 20886  				if err := _ExtBridge.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 20887  					return err
 20888  				}
 20889  				event.Raw = log
 20890  
 20891  				select {
 20892  				case sink <- event:
 20893  				case err := <-sub.Err():
 20894  					return err
 20895  				case <-quit:
 20896  					return nil
 20897  				}
 20898  			case err := <-sub.Err():
 20899  				return err
 20900  			case <-quit:
 20901  				return nil
 20902  			}
 20903  		}
 20904  	}), nil
 20905  }
 20906  
 20907  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 20908  //
 20909  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 20910  func (_ExtBridge *ExtBridgeFilterer) ParseRequestValueTransfer(log types.Log) (*ExtBridgeRequestValueTransfer, error) {
 20911  	event := new(ExtBridgeRequestValueTransfer)
 20912  	if err := _ExtBridge.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 20913  		return nil, err
 20914  	}
 20915  	return event, nil
 20916  }
 20917  
 20918  // ExtBridgeRequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the ExtBridge contract.
 20919  type ExtBridgeRequestValueTransferEncodedIterator struct {
 20920  	Event *ExtBridgeRequestValueTransferEncoded // Event containing the contract specifics and raw log
 20921  
 20922  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20923  	event    string              // Event name to use for unpacking event data
 20924  
 20925  	logs chan types.Log      // Log channel receiving the found contract events
 20926  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20927  	done bool                // Whether the subscription completed delivering logs
 20928  	fail error               // Occurred error to stop iteration
 20929  }
 20930  
 20931  // Next advances the iterator to the subsequent event, returning whether there
 20932  // are any more events found. In case of a retrieval or parsing error, false is
 20933  // returned and Error() can be queried for the exact failure.
 20934  func (it *ExtBridgeRequestValueTransferEncodedIterator) Next() bool {
 20935  	// If the iterator failed, stop iterating
 20936  	if it.fail != nil {
 20937  		return false
 20938  	}
 20939  	// If the iterator completed, deliver directly whatever's available
 20940  	if it.done {
 20941  		select {
 20942  		case log := <-it.logs:
 20943  			it.Event = new(ExtBridgeRequestValueTransferEncoded)
 20944  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20945  				it.fail = err
 20946  				return false
 20947  			}
 20948  			it.Event.Raw = log
 20949  			return true
 20950  
 20951  		default:
 20952  			return false
 20953  		}
 20954  	}
 20955  	// Iterator still in progress, wait for either a data or an error event
 20956  	select {
 20957  	case log := <-it.logs:
 20958  		it.Event = new(ExtBridgeRequestValueTransferEncoded)
 20959  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20960  			it.fail = err
 20961  			return false
 20962  		}
 20963  		it.Event.Raw = log
 20964  		return true
 20965  
 20966  	case err := <-it.sub.Err():
 20967  		it.done = true
 20968  		it.fail = err
 20969  		return it.Next()
 20970  	}
 20971  }
 20972  
 20973  // Error returns any retrieval or parsing error occurred during filtering.
 20974  func (it *ExtBridgeRequestValueTransferEncodedIterator) Error() error {
 20975  	return it.fail
 20976  }
 20977  
 20978  // Close terminates the iteration process, releasing any pending underlying
 20979  // resources.
 20980  func (it *ExtBridgeRequestValueTransferEncodedIterator) Close() error {
 20981  	it.sub.Unsubscribe()
 20982  	return nil
 20983  }
 20984  
 20985  // ExtBridgeRequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the ExtBridge contract.
 20986  type ExtBridgeRequestValueTransferEncoded struct {
 20987  	TokenType      uint8
 20988  	From           common.Address
 20989  	To             common.Address
 20990  	TokenAddress   common.Address
 20991  	ValueOrTokenId *big.Int
 20992  	RequestNonce   uint64
 20993  	Fee            *big.Int
 20994  	ExtraData      []byte
 20995  	EncodingVer    uint8
 20996  	EncodedData    []byte
 20997  	Raw            types.Log // Blockchain specific contextual infos
 20998  }
 20999  
 21000  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 21001  //
 21002  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 21003  func (_ExtBridge *ExtBridgeFilterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*ExtBridgeRequestValueTransferEncodedIterator, error) {
 21004  
 21005  	var fromRule []interface{}
 21006  	for _, fromItem := range from {
 21007  		fromRule = append(fromRule, fromItem)
 21008  	}
 21009  	var toRule []interface{}
 21010  	for _, toItem := range to {
 21011  		toRule = append(toRule, toItem)
 21012  	}
 21013  	var tokenAddressRule []interface{}
 21014  	for _, tokenAddressItem := range tokenAddress {
 21015  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 21016  	}
 21017  
 21018  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 21019  	if err != nil {
 21020  		return nil, err
 21021  	}
 21022  	return &ExtBridgeRequestValueTransferEncodedIterator{contract: _ExtBridge.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
 21023  }
 21024  
 21025  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 21026  //
 21027  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 21028  func (_ExtBridge *ExtBridgeFilterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *ExtBridgeRequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 21029  
 21030  	var fromRule []interface{}
 21031  	for _, fromItem := range from {
 21032  		fromRule = append(fromRule, fromItem)
 21033  	}
 21034  	var toRule []interface{}
 21035  	for _, toItem := range to {
 21036  		toRule = append(toRule, toItem)
 21037  	}
 21038  	var tokenAddressRule []interface{}
 21039  	for _, tokenAddressItem := range tokenAddress {
 21040  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 21041  	}
 21042  
 21043  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 21044  	if err != nil {
 21045  		return nil, err
 21046  	}
 21047  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21048  		defer sub.Unsubscribe()
 21049  		for {
 21050  			select {
 21051  			case log := <-logs:
 21052  				// New log arrived, parse the event and forward to the user
 21053  				event := new(ExtBridgeRequestValueTransferEncoded)
 21054  				if err := _ExtBridge.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 21055  					return err
 21056  				}
 21057  				event.Raw = log
 21058  
 21059  				select {
 21060  				case sink <- event:
 21061  				case err := <-sub.Err():
 21062  					return err
 21063  				case <-quit:
 21064  					return nil
 21065  				}
 21066  			case err := <-sub.Err():
 21067  				return err
 21068  			case <-quit:
 21069  				return nil
 21070  			}
 21071  		}
 21072  	}), nil
 21073  }
 21074  
 21075  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 21076  //
 21077  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 21078  func (_ExtBridge *ExtBridgeFilterer) ParseRequestValueTransferEncoded(log types.Log) (*ExtBridgeRequestValueTransferEncoded, error) {
 21079  	event := new(ExtBridgeRequestValueTransferEncoded)
 21080  	if err := _ExtBridge.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 21081  		return nil, err
 21082  	}
 21083  	return event, nil
 21084  }
 21085  
 21086  // ExtBridgeTokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the ExtBridge contract.
 21087  type ExtBridgeTokenDeregisteredIterator struct {
 21088  	Event *ExtBridgeTokenDeregistered // Event containing the contract specifics and raw log
 21089  
 21090  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21091  	event    string              // Event name to use for unpacking event data
 21092  
 21093  	logs chan types.Log      // Log channel receiving the found contract events
 21094  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21095  	done bool                // Whether the subscription completed delivering logs
 21096  	fail error               // Occurred error to stop iteration
 21097  }
 21098  
 21099  // Next advances the iterator to the subsequent event, returning whether there
 21100  // are any more events found. In case of a retrieval or parsing error, false is
 21101  // returned and Error() can be queried for the exact failure.
 21102  func (it *ExtBridgeTokenDeregisteredIterator) Next() bool {
 21103  	// If the iterator failed, stop iterating
 21104  	if it.fail != nil {
 21105  		return false
 21106  	}
 21107  	// If the iterator completed, deliver directly whatever's available
 21108  	if it.done {
 21109  		select {
 21110  		case log := <-it.logs:
 21111  			it.Event = new(ExtBridgeTokenDeregistered)
 21112  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21113  				it.fail = err
 21114  				return false
 21115  			}
 21116  			it.Event.Raw = log
 21117  			return true
 21118  
 21119  		default:
 21120  			return false
 21121  		}
 21122  	}
 21123  	// Iterator still in progress, wait for either a data or an error event
 21124  	select {
 21125  	case log := <-it.logs:
 21126  		it.Event = new(ExtBridgeTokenDeregistered)
 21127  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21128  			it.fail = err
 21129  			return false
 21130  		}
 21131  		it.Event.Raw = log
 21132  		return true
 21133  
 21134  	case err := <-it.sub.Err():
 21135  		it.done = true
 21136  		it.fail = err
 21137  		return it.Next()
 21138  	}
 21139  }
 21140  
 21141  // Error returns any retrieval or parsing error occurred during filtering.
 21142  func (it *ExtBridgeTokenDeregisteredIterator) Error() error {
 21143  	return it.fail
 21144  }
 21145  
 21146  // Close terminates the iteration process, releasing any pending underlying
 21147  // resources.
 21148  func (it *ExtBridgeTokenDeregisteredIterator) Close() error {
 21149  	it.sub.Unsubscribe()
 21150  	return nil
 21151  }
 21152  
 21153  // ExtBridgeTokenDeregistered represents a TokenDeregistered event raised by the ExtBridge contract.
 21154  type ExtBridgeTokenDeregistered struct {
 21155  	Token common.Address
 21156  	Raw   types.Log // Blockchain specific contextual infos
 21157  }
 21158  
 21159  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 21160  //
 21161  // Solidity: event TokenDeregistered(address indexed token)
 21162  func (_ExtBridge *ExtBridgeFilterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*ExtBridgeTokenDeregisteredIterator, error) {
 21163  
 21164  	var tokenRule []interface{}
 21165  	for _, tokenItem := range token {
 21166  		tokenRule = append(tokenRule, tokenItem)
 21167  	}
 21168  
 21169  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
 21170  	if err != nil {
 21171  		return nil, err
 21172  	}
 21173  	return &ExtBridgeTokenDeregisteredIterator{contract: _ExtBridge.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
 21174  }
 21175  
 21176  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 21177  //
 21178  // Solidity: event TokenDeregistered(address indexed token)
 21179  func (_ExtBridge *ExtBridgeFilterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *ExtBridgeTokenDeregistered, token []common.Address) (event.Subscription, error) {
 21180  
 21181  	var tokenRule []interface{}
 21182  	for _, tokenItem := range token {
 21183  		tokenRule = append(tokenRule, tokenItem)
 21184  	}
 21185  
 21186  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
 21187  	if err != nil {
 21188  		return nil, err
 21189  	}
 21190  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21191  		defer sub.Unsubscribe()
 21192  		for {
 21193  			select {
 21194  			case log := <-logs:
 21195  				// New log arrived, parse the event and forward to the user
 21196  				event := new(ExtBridgeTokenDeregistered)
 21197  				if err := _ExtBridge.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 21198  					return err
 21199  				}
 21200  				event.Raw = log
 21201  
 21202  				select {
 21203  				case sink <- event:
 21204  				case err := <-sub.Err():
 21205  					return err
 21206  				case <-quit:
 21207  					return nil
 21208  				}
 21209  			case err := <-sub.Err():
 21210  				return err
 21211  			case <-quit:
 21212  				return nil
 21213  			}
 21214  		}
 21215  	}), nil
 21216  }
 21217  
 21218  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 21219  //
 21220  // Solidity: event TokenDeregistered(address indexed token)
 21221  func (_ExtBridge *ExtBridgeFilterer) ParseTokenDeregistered(log types.Log) (*ExtBridgeTokenDeregistered, error) {
 21222  	event := new(ExtBridgeTokenDeregistered)
 21223  	if err := _ExtBridge.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 21224  		return nil, err
 21225  	}
 21226  	return event, nil
 21227  }
 21228  
 21229  // ExtBridgeTokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the ExtBridge contract.
 21230  type ExtBridgeTokenLockedIterator struct {
 21231  	Event *ExtBridgeTokenLocked // Event containing the contract specifics and raw log
 21232  
 21233  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21234  	event    string              // Event name to use for unpacking event data
 21235  
 21236  	logs chan types.Log      // Log channel receiving the found contract events
 21237  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21238  	done bool                // Whether the subscription completed delivering logs
 21239  	fail error               // Occurred error to stop iteration
 21240  }
 21241  
 21242  // Next advances the iterator to the subsequent event, returning whether there
 21243  // are any more events found. In case of a retrieval or parsing error, false is
 21244  // returned and Error() can be queried for the exact failure.
 21245  func (it *ExtBridgeTokenLockedIterator) Next() bool {
 21246  	// If the iterator failed, stop iterating
 21247  	if it.fail != nil {
 21248  		return false
 21249  	}
 21250  	// If the iterator completed, deliver directly whatever's available
 21251  	if it.done {
 21252  		select {
 21253  		case log := <-it.logs:
 21254  			it.Event = new(ExtBridgeTokenLocked)
 21255  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21256  				it.fail = err
 21257  				return false
 21258  			}
 21259  			it.Event.Raw = log
 21260  			return true
 21261  
 21262  		default:
 21263  			return false
 21264  		}
 21265  	}
 21266  	// Iterator still in progress, wait for either a data or an error event
 21267  	select {
 21268  	case log := <-it.logs:
 21269  		it.Event = new(ExtBridgeTokenLocked)
 21270  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21271  			it.fail = err
 21272  			return false
 21273  		}
 21274  		it.Event.Raw = log
 21275  		return true
 21276  
 21277  	case err := <-it.sub.Err():
 21278  		it.done = true
 21279  		it.fail = err
 21280  		return it.Next()
 21281  	}
 21282  }
 21283  
 21284  // Error returns any retrieval or parsing error occurred during filtering.
 21285  func (it *ExtBridgeTokenLockedIterator) Error() error {
 21286  	return it.fail
 21287  }
 21288  
 21289  // Close terminates the iteration process, releasing any pending underlying
 21290  // resources.
 21291  func (it *ExtBridgeTokenLockedIterator) Close() error {
 21292  	it.sub.Unsubscribe()
 21293  	return nil
 21294  }
 21295  
 21296  // ExtBridgeTokenLocked represents a TokenLocked event raised by the ExtBridge contract.
 21297  type ExtBridgeTokenLocked struct {
 21298  	Token common.Address
 21299  	Raw   types.Log // Blockchain specific contextual infos
 21300  }
 21301  
 21302  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 21303  //
 21304  // Solidity: event TokenLocked(address indexed token)
 21305  func (_ExtBridge *ExtBridgeFilterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*ExtBridgeTokenLockedIterator, error) {
 21306  
 21307  	var tokenRule []interface{}
 21308  	for _, tokenItem := range token {
 21309  		tokenRule = append(tokenRule, tokenItem)
 21310  	}
 21311  
 21312  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "TokenLocked", tokenRule)
 21313  	if err != nil {
 21314  		return nil, err
 21315  	}
 21316  	return &ExtBridgeTokenLockedIterator{contract: _ExtBridge.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
 21317  }
 21318  
 21319  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 21320  //
 21321  // Solidity: event TokenLocked(address indexed token)
 21322  func (_ExtBridge *ExtBridgeFilterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *ExtBridgeTokenLocked, token []common.Address) (event.Subscription, error) {
 21323  
 21324  	var tokenRule []interface{}
 21325  	for _, tokenItem := range token {
 21326  		tokenRule = append(tokenRule, tokenItem)
 21327  	}
 21328  
 21329  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "TokenLocked", tokenRule)
 21330  	if err != nil {
 21331  		return nil, err
 21332  	}
 21333  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21334  		defer sub.Unsubscribe()
 21335  		for {
 21336  			select {
 21337  			case log := <-logs:
 21338  				// New log arrived, parse the event and forward to the user
 21339  				event := new(ExtBridgeTokenLocked)
 21340  				if err := _ExtBridge.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 21341  					return err
 21342  				}
 21343  				event.Raw = log
 21344  
 21345  				select {
 21346  				case sink <- event:
 21347  				case err := <-sub.Err():
 21348  					return err
 21349  				case <-quit:
 21350  					return nil
 21351  				}
 21352  			case err := <-sub.Err():
 21353  				return err
 21354  			case <-quit:
 21355  				return nil
 21356  			}
 21357  		}
 21358  	}), nil
 21359  }
 21360  
 21361  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 21362  //
 21363  // Solidity: event TokenLocked(address indexed token)
 21364  func (_ExtBridge *ExtBridgeFilterer) ParseTokenLocked(log types.Log) (*ExtBridgeTokenLocked, error) {
 21365  	event := new(ExtBridgeTokenLocked)
 21366  	if err := _ExtBridge.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 21367  		return nil, err
 21368  	}
 21369  	return event, nil
 21370  }
 21371  
 21372  // ExtBridgeTokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the ExtBridge contract.
 21373  type ExtBridgeTokenRegisteredIterator struct {
 21374  	Event *ExtBridgeTokenRegistered // Event containing the contract specifics and raw log
 21375  
 21376  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21377  	event    string              // Event name to use for unpacking event data
 21378  
 21379  	logs chan types.Log      // Log channel receiving the found contract events
 21380  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21381  	done bool                // Whether the subscription completed delivering logs
 21382  	fail error               // Occurred error to stop iteration
 21383  }
 21384  
 21385  // Next advances the iterator to the subsequent event, returning whether there
 21386  // are any more events found. In case of a retrieval or parsing error, false is
 21387  // returned and Error() can be queried for the exact failure.
 21388  func (it *ExtBridgeTokenRegisteredIterator) Next() bool {
 21389  	// If the iterator failed, stop iterating
 21390  	if it.fail != nil {
 21391  		return false
 21392  	}
 21393  	// If the iterator completed, deliver directly whatever's available
 21394  	if it.done {
 21395  		select {
 21396  		case log := <-it.logs:
 21397  			it.Event = new(ExtBridgeTokenRegistered)
 21398  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21399  				it.fail = err
 21400  				return false
 21401  			}
 21402  			it.Event.Raw = log
 21403  			return true
 21404  
 21405  		default:
 21406  			return false
 21407  		}
 21408  	}
 21409  	// Iterator still in progress, wait for either a data or an error event
 21410  	select {
 21411  	case log := <-it.logs:
 21412  		it.Event = new(ExtBridgeTokenRegistered)
 21413  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21414  			it.fail = err
 21415  			return false
 21416  		}
 21417  		it.Event.Raw = log
 21418  		return true
 21419  
 21420  	case err := <-it.sub.Err():
 21421  		it.done = true
 21422  		it.fail = err
 21423  		return it.Next()
 21424  	}
 21425  }
 21426  
 21427  // Error returns any retrieval or parsing error occurred during filtering.
 21428  func (it *ExtBridgeTokenRegisteredIterator) Error() error {
 21429  	return it.fail
 21430  }
 21431  
 21432  // Close terminates the iteration process, releasing any pending underlying
 21433  // resources.
 21434  func (it *ExtBridgeTokenRegisteredIterator) Close() error {
 21435  	it.sub.Unsubscribe()
 21436  	return nil
 21437  }
 21438  
 21439  // ExtBridgeTokenRegistered represents a TokenRegistered event raised by the ExtBridge contract.
 21440  type ExtBridgeTokenRegistered struct {
 21441  	Token common.Address
 21442  	Raw   types.Log // Blockchain specific contextual infos
 21443  }
 21444  
 21445  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 21446  //
 21447  // Solidity: event TokenRegistered(address indexed token)
 21448  func (_ExtBridge *ExtBridgeFilterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*ExtBridgeTokenRegisteredIterator, error) {
 21449  
 21450  	var tokenRule []interface{}
 21451  	for _, tokenItem := range token {
 21452  		tokenRule = append(tokenRule, tokenItem)
 21453  	}
 21454  
 21455  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
 21456  	if err != nil {
 21457  		return nil, err
 21458  	}
 21459  	return &ExtBridgeTokenRegisteredIterator{contract: _ExtBridge.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
 21460  }
 21461  
 21462  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 21463  //
 21464  // Solidity: event TokenRegistered(address indexed token)
 21465  func (_ExtBridge *ExtBridgeFilterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *ExtBridgeTokenRegistered, token []common.Address) (event.Subscription, error) {
 21466  
 21467  	var tokenRule []interface{}
 21468  	for _, tokenItem := range token {
 21469  		tokenRule = append(tokenRule, tokenItem)
 21470  	}
 21471  
 21472  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
 21473  	if err != nil {
 21474  		return nil, err
 21475  	}
 21476  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21477  		defer sub.Unsubscribe()
 21478  		for {
 21479  			select {
 21480  			case log := <-logs:
 21481  				// New log arrived, parse the event and forward to the user
 21482  				event := new(ExtBridgeTokenRegistered)
 21483  				if err := _ExtBridge.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 21484  					return err
 21485  				}
 21486  				event.Raw = log
 21487  
 21488  				select {
 21489  				case sink <- event:
 21490  				case err := <-sub.Err():
 21491  					return err
 21492  				case <-quit:
 21493  					return nil
 21494  				}
 21495  			case err := <-sub.Err():
 21496  				return err
 21497  			case <-quit:
 21498  				return nil
 21499  			}
 21500  		}
 21501  	}), nil
 21502  }
 21503  
 21504  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 21505  //
 21506  // Solidity: event TokenRegistered(address indexed token)
 21507  func (_ExtBridge *ExtBridgeFilterer) ParseTokenRegistered(log types.Log) (*ExtBridgeTokenRegistered, error) {
 21508  	event := new(ExtBridgeTokenRegistered)
 21509  	if err := _ExtBridge.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 21510  		return nil, err
 21511  	}
 21512  	return event, nil
 21513  }
 21514  
 21515  // ExtBridgeTokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the ExtBridge contract.
 21516  type ExtBridgeTokenUnlockedIterator struct {
 21517  	Event *ExtBridgeTokenUnlocked // Event containing the contract specifics and raw log
 21518  
 21519  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21520  	event    string              // Event name to use for unpacking event data
 21521  
 21522  	logs chan types.Log      // Log channel receiving the found contract events
 21523  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21524  	done bool                // Whether the subscription completed delivering logs
 21525  	fail error               // Occurred error to stop iteration
 21526  }
 21527  
 21528  // Next advances the iterator to the subsequent event, returning whether there
 21529  // are any more events found. In case of a retrieval or parsing error, false is
 21530  // returned and Error() can be queried for the exact failure.
 21531  func (it *ExtBridgeTokenUnlockedIterator) Next() bool {
 21532  	// If the iterator failed, stop iterating
 21533  	if it.fail != nil {
 21534  		return false
 21535  	}
 21536  	// If the iterator completed, deliver directly whatever's available
 21537  	if it.done {
 21538  		select {
 21539  		case log := <-it.logs:
 21540  			it.Event = new(ExtBridgeTokenUnlocked)
 21541  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21542  				it.fail = err
 21543  				return false
 21544  			}
 21545  			it.Event.Raw = log
 21546  			return true
 21547  
 21548  		default:
 21549  			return false
 21550  		}
 21551  	}
 21552  	// Iterator still in progress, wait for either a data or an error event
 21553  	select {
 21554  	case log := <-it.logs:
 21555  		it.Event = new(ExtBridgeTokenUnlocked)
 21556  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21557  			it.fail = err
 21558  			return false
 21559  		}
 21560  		it.Event.Raw = log
 21561  		return true
 21562  
 21563  	case err := <-it.sub.Err():
 21564  		it.done = true
 21565  		it.fail = err
 21566  		return it.Next()
 21567  	}
 21568  }
 21569  
 21570  // Error returns any retrieval or parsing error occurred during filtering.
 21571  func (it *ExtBridgeTokenUnlockedIterator) Error() error {
 21572  	return it.fail
 21573  }
 21574  
 21575  // Close terminates the iteration process, releasing any pending underlying
 21576  // resources.
 21577  func (it *ExtBridgeTokenUnlockedIterator) Close() error {
 21578  	it.sub.Unsubscribe()
 21579  	return nil
 21580  }
 21581  
 21582  // ExtBridgeTokenUnlocked represents a TokenUnlocked event raised by the ExtBridge contract.
 21583  type ExtBridgeTokenUnlocked struct {
 21584  	Token common.Address
 21585  	Raw   types.Log // Blockchain specific contextual infos
 21586  }
 21587  
 21588  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 21589  //
 21590  // Solidity: event TokenUnlocked(address indexed token)
 21591  func (_ExtBridge *ExtBridgeFilterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*ExtBridgeTokenUnlockedIterator, error) {
 21592  
 21593  	var tokenRule []interface{}
 21594  	for _, tokenItem := range token {
 21595  		tokenRule = append(tokenRule, tokenItem)
 21596  	}
 21597  
 21598  	logs, sub, err := _ExtBridge.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
 21599  	if err != nil {
 21600  		return nil, err
 21601  	}
 21602  	return &ExtBridgeTokenUnlockedIterator{contract: _ExtBridge.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
 21603  }
 21604  
 21605  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 21606  //
 21607  // Solidity: event TokenUnlocked(address indexed token)
 21608  func (_ExtBridge *ExtBridgeFilterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *ExtBridgeTokenUnlocked, token []common.Address) (event.Subscription, error) {
 21609  
 21610  	var tokenRule []interface{}
 21611  	for _, tokenItem := range token {
 21612  		tokenRule = append(tokenRule, tokenItem)
 21613  	}
 21614  
 21615  	logs, sub, err := _ExtBridge.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
 21616  	if err != nil {
 21617  		return nil, err
 21618  	}
 21619  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21620  		defer sub.Unsubscribe()
 21621  		for {
 21622  			select {
 21623  			case log := <-logs:
 21624  				// New log arrived, parse the event and forward to the user
 21625  				event := new(ExtBridgeTokenUnlocked)
 21626  				if err := _ExtBridge.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 21627  					return err
 21628  				}
 21629  				event.Raw = log
 21630  
 21631  				select {
 21632  				case sink <- event:
 21633  				case err := <-sub.Err():
 21634  					return err
 21635  				case <-quit:
 21636  					return nil
 21637  				}
 21638  			case err := <-sub.Err():
 21639  				return err
 21640  			case <-quit:
 21641  				return nil
 21642  			}
 21643  		}
 21644  	}), nil
 21645  }
 21646  
 21647  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 21648  //
 21649  // Solidity: event TokenUnlocked(address indexed token)
 21650  func (_ExtBridge *ExtBridgeFilterer) ParseTokenUnlocked(log types.Log) (*ExtBridgeTokenUnlocked, error) {
 21651  	event := new(ExtBridgeTokenUnlocked)
 21652  	if err := _ExtBridge.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 21653  		return nil, err
 21654  	}
 21655  	return event, nil
 21656  }
 21657  
 21658  // IERC165MetaData contains all meta data concerning the IERC165 contract.
 21659  var IERC165MetaData = &bind.MetaData{
 21660  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
 21661  	Sigs: map[string]string{
 21662  		"01ffc9a7": "supportsInterface(bytes4)",
 21663  	},
 21664  }
 21665  
 21666  // IERC165ABI is the input ABI used to generate the binding from.
 21667  // Deprecated: Use IERC165MetaData.ABI instead.
 21668  var IERC165ABI = IERC165MetaData.ABI
 21669  
 21670  // IERC165BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 21671  const IERC165BinRuntime = ``
 21672  
 21673  // IERC165FuncSigs maps the 4-byte function signature to its string representation.
 21674  // Deprecated: Use IERC165MetaData.Sigs instead.
 21675  var IERC165FuncSigs = IERC165MetaData.Sigs
 21676  
 21677  // IERC165 is an auto generated Go binding around a Klaytn contract.
 21678  type IERC165 struct {
 21679  	IERC165Caller     // Read-only binding to the contract
 21680  	IERC165Transactor // Write-only binding to the contract
 21681  	IERC165Filterer   // Log filterer for contract events
 21682  }
 21683  
 21684  // IERC165Caller is an auto generated read-only Go binding around a Klaytn contract.
 21685  type IERC165Caller struct {
 21686  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21687  }
 21688  
 21689  // IERC165Transactor is an auto generated write-only Go binding around a Klaytn contract.
 21690  type IERC165Transactor struct {
 21691  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21692  }
 21693  
 21694  // IERC165Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 21695  type IERC165Filterer struct {
 21696  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21697  }
 21698  
 21699  // IERC165Session is an auto generated Go binding around a Klaytn contract,
 21700  // with pre-set call and transact options.
 21701  type IERC165Session struct {
 21702  	Contract     *IERC165          // Generic contract binding to set the session for
 21703  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 21704  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 21705  }
 21706  
 21707  // IERC165CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 21708  // with pre-set call options.
 21709  type IERC165CallerSession struct {
 21710  	Contract *IERC165Caller // Generic contract caller binding to set the session for
 21711  	CallOpts bind.CallOpts  // Call options to use throughout this session
 21712  }
 21713  
 21714  // IERC165TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 21715  // with pre-set transact options.
 21716  type IERC165TransactorSession struct {
 21717  	Contract     *IERC165Transactor // Generic contract transactor binding to set the session for
 21718  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 21719  }
 21720  
 21721  // IERC165Raw is an auto generated low-level Go binding around a Klaytn contract.
 21722  type IERC165Raw struct {
 21723  	Contract *IERC165 // Generic contract binding to access the raw methods on
 21724  }
 21725  
 21726  // IERC165CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 21727  type IERC165CallerRaw struct {
 21728  	Contract *IERC165Caller // Generic read-only contract binding to access the raw methods on
 21729  }
 21730  
 21731  // IERC165TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 21732  type IERC165TransactorRaw struct {
 21733  	Contract *IERC165Transactor // Generic write-only contract binding to access the raw methods on
 21734  }
 21735  
 21736  // NewIERC165 creates a new instance of IERC165, bound to a specific deployed contract.
 21737  func NewIERC165(address common.Address, backend bind.ContractBackend) (*IERC165, error) {
 21738  	contract, err := bindIERC165(address, backend, backend, backend)
 21739  	if err != nil {
 21740  		return nil, err
 21741  	}
 21742  	return &IERC165{IERC165Caller: IERC165Caller{contract: contract}, IERC165Transactor: IERC165Transactor{contract: contract}, IERC165Filterer: IERC165Filterer{contract: contract}}, nil
 21743  }
 21744  
 21745  // NewIERC165Caller creates a new read-only instance of IERC165, bound to a specific deployed contract.
 21746  func NewIERC165Caller(address common.Address, caller bind.ContractCaller) (*IERC165Caller, error) {
 21747  	contract, err := bindIERC165(address, caller, nil, nil)
 21748  	if err != nil {
 21749  		return nil, err
 21750  	}
 21751  	return &IERC165Caller{contract: contract}, nil
 21752  }
 21753  
 21754  // NewIERC165Transactor creates a new write-only instance of IERC165, bound to a specific deployed contract.
 21755  func NewIERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC165Transactor, error) {
 21756  	contract, err := bindIERC165(address, nil, transactor, nil)
 21757  	if err != nil {
 21758  		return nil, err
 21759  	}
 21760  	return &IERC165Transactor{contract: contract}, nil
 21761  }
 21762  
 21763  // NewIERC165Filterer creates a new log filterer instance of IERC165, bound to a specific deployed contract.
 21764  func NewIERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC165Filterer, error) {
 21765  	contract, err := bindIERC165(address, nil, nil, filterer)
 21766  	if err != nil {
 21767  		return nil, err
 21768  	}
 21769  	return &IERC165Filterer{contract: contract}, nil
 21770  }
 21771  
 21772  // bindIERC165 binds a generic wrapper to an already deployed contract.
 21773  func bindIERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 21774  	parsed, err := IERC165MetaData.GetAbi()
 21775  	if err != nil {
 21776  		return nil, err
 21777  	}
 21778  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 21779  }
 21780  
 21781  // Call invokes the (constant) contract method with params as input values and
 21782  // sets the output to result. The result type might be a single field for simple
 21783  // returns, a slice of interfaces for anonymous returns and a struct for named
 21784  // returns.
 21785  func (_IERC165 *IERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 21786  	return _IERC165.Contract.IERC165Caller.contract.Call(opts, result, method, params...)
 21787  }
 21788  
 21789  // Transfer initiates a plain transaction to move funds to the contract, calling
 21790  // its default method if one is available.
 21791  func (_IERC165 *IERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21792  	return _IERC165.Contract.IERC165Transactor.contract.Transfer(opts)
 21793  }
 21794  
 21795  // Transact invokes the (paid) contract method with params as input values.
 21796  func (_IERC165 *IERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21797  	return _IERC165.Contract.IERC165Transactor.contract.Transact(opts, method, params...)
 21798  }
 21799  
 21800  // Call invokes the (constant) contract method with params as input values and
 21801  // sets the output to result. The result type might be a single field for simple
 21802  // returns, a slice of interfaces for anonymous returns and a struct for named
 21803  // returns.
 21804  func (_IERC165 *IERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 21805  	return _IERC165.Contract.contract.Call(opts, result, method, params...)
 21806  }
 21807  
 21808  // Transfer initiates a plain transaction to move funds to the contract, calling
 21809  // its default method if one is available.
 21810  func (_IERC165 *IERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21811  	return _IERC165.Contract.contract.Transfer(opts)
 21812  }
 21813  
 21814  // Transact invokes the (paid) contract method with params as input values.
 21815  func (_IERC165 *IERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21816  	return _IERC165.Contract.contract.Transact(opts, method, params...)
 21817  }
 21818  
 21819  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 21820  //
 21821  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 21822  func (_IERC165 *IERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 21823  	var out []interface{}
 21824  	err := _IERC165.contract.Call(opts, &out, "supportsInterface", interfaceId)
 21825  
 21826  	if err != nil {
 21827  		return *new(bool), err
 21828  	}
 21829  
 21830  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 21831  
 21832  	return out0, err
 21833  
 21834  }
 21835  
 21836  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 21837  //
 21838  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 21839  func (_IERC165 *IERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 21840  	return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId)
 21841  }
 21842  
 21843  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 21844  //
 21845  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 21846  func (_IERC165 *IERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 21847  	return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId)
 21848  }
 21849  
 21850  // IERC20MetaData contains all meta data concerning the IERC20 contract.
 21851  var IERC20MetaData = &bind.MetaData{
 21852  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 21853  	Sigs: map[string]string{
 21854  		"dd62ed3e": "allowance(address,address)",
 21855  		"095ea7b3": "approve(address,uint256)",
 21856  		"70a08231": "balanceOf(address)",
 21857  		"18160ddd": "totalSupply()",
 21858  		"a9059cbb": "transfer(address,uint256)",
 21859  		"23b872dd": "transferFrom(address,address,uint256)",
 21860  	},
 21861  }
 21862  
 21863  // IERC20ABI is the input ABI used to generate the binding from.
 21864  // Deprecated: Use IERC20MetaData.ABI instead.
 21865  var IERC20ABI = IERC20MetaData.ABI
 21866  
 21867  // IERC20BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 21868  const IERC20BinRuntime = ``
 21869  
 21870  // IERC20FuncSigs maps the 4-byte function signature to its string representation.
 21871  // Deprecated: Use IERC20MetaData.Sigs instead.
 21872  var IERC20FuncSigs = IERC20MetaData.Sigs
 21873  
 21874  // IERC20 is an auto generated Go binding around a Klaytn contract.
 21875  type IERC20 struct {
 21876  	IERC20Caller     // Read-only binding to the contract
 21877  	IERC20Transactor // Write-only binding to the contract
 21878  	IERC20Filterer   // Log filterer for contract events
 21879  }
 21880  
 21881  // IERC20Caller is an auto generated read-only Go binding around a Klaytn contract.
 21882  type IERC20Caller struct {
 21883  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21884  }
 21885  
 21886  // IERC20Transactor is an auto generated write-only Go binding around a Klaytn contract.
 21887  type IERC20Transactor struct {
 21888  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21889  }
 21890  
 21891  // IERC20Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 21892  type IERC20Filterer struct {
 21893  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21894  }
 21895  
 21896  // IERC20Session is an auto generated Go binding around a Klaytn contract,
 21897  // with pre-set call and transact options.
 21898  type IERC20Session struct {
 21899  	Contract     *IERC20           // Generic contract binding to set the session for
 21900  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 21901  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 21902  }
 21903  
 21904  // IERC20CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 21905  // with pre-set call options.
 21906  type IERC20CallerSession struct {
 21907  	Contract *IERC20Caller // Generic contract caller binding to set the session for
 21908  	CallOpts bind.CallOpts // Call options to use throughout this session
 21909  }
 21910  
 21911  // IERC20TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 21912  // with pre-set transact options.
 21913  type IERC20TransactorSession struct {
 21914  	Contract     *IERC20Transactor // Generic contract transactor binding to set the session for
 21915  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 21916  }
 21917  
 21918  // IERC20Raw is an auto generated low-level Go binding around a Klaytn contract.
 21919  type IERC20Raw struct {
 21920  	Contract *IERC20 // Generic contract binding to access the raw methods on
 21921  }
 21922  
 21923  // IERC20CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 21924  type IERC20CallerRaw struct {
 21925  	Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on
 21926  }
 21927  
 21928  // IERC20TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 21929  type IERC20TransactorRaw struct {
 21930  	Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on
 21931  }
 21932  
 21933  // NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract.
 21934  func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error) {
 21935  	contract, err := bindIERC20(address, backend, backend, backend)
 21936  	if err != nil {
 21937  		return nil, err
 21938  	}
 21939  	return &IERC20{IERC20Caller: IERC20Caller{contract: contract}, IERC20Transactor: IERC20Transactor{contract: contract}, IERC20Filterer: IERC20Filterer{contract: contract}}, nil
 21940  }
 21941  
 21942  // NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract.
 21943  func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error) {
 21944  	contract, err := bindIERC20(address, caller, nil, nil)
 21945  	if err != nil {
 21946  		return nil, err
 21947  	}
 21948  	return &IERC20Caller{contract: contract}, nil
 21949  }
 21950  
 21951  // NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract.
 21952  func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error) {
 21953  	contract, err := bindIERC20(address, nil, transactor, nil)
 21954  	if err != nil {
 21955  		return nil, err
 21956  	}
 21957  	return &IERC20Transactor{contract: contract}, nil
 21958  }
 21959  
 21960  // NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract.
 21961  func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error) {
 21962  	contract, err := bindIERC20(address, nil, nil, filterer)
 21963  	if err != nil {
 21964  		return nil, err
 21965  	}
 21966  	return &IERC20Filterer{contract: contract}, nil
 21967  }
 21968  
 21969  // bindIERC20 binds a generic wrapper to an already deployed contract.
 21970  func bindIERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 21971  	parsed, err := IERC20MetaData.GetAbi()
 21972  	if err != nil {
 21973  		return nil, err
 21974  	}
 21975  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 21976  }
 21977  
 21978  // Call invokes the (constant) contract method with params as input values and
 21979  // sets the output to result. The result type might be a single field for simple
 21980  // returns, a slice of interfaces for anonymous returns and a struct for named
 21981  // returns.
 21982  func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 21983  	return _IERC20.Contract.IERC20Caller.contract.Call(opts, result, method, params...)
 21984  }
 21985  
 21986  // Transfer initiates a plain transaction to move funds to the contract, calling
 21987  // its default method if one is available.
 21988  func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21989  	return _IERC20.Contract.IERC20Transactor.contract.Transfer(opts)
 21990  }
 21991  
 21992  // Transact invokes the (paid) contract method with params as input values.
 21993  func (_IERC20 *IERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21994  	return _IERC20.Contract.IERC20Transactor.contract.Transact(opts, method, params...)
 21995  }
 21996  
 21997  // Call invokes the (constant) contract method with params as input values and
 21998  // sets the output to result. The result type might be a single field for simple
 21999  // returns, a slice of interfaces for anonymous returns and a struct for named
 22000  // returns.
 22001  func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22002  	return _IERC20.Contract.contract.Call(opts, result, method, params...)
 22003  }
 22004  
 22005  // Transfer initiates a plain transaction to move funds to the contract, calling
 22006  // its default method if one is available.
 22007  func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22008  	return _IERC20.Contract.contract.Transfer(opts)
 22009  }
 22010  
 22011  // Transact invokes the (paid) contract method with params as input values.
 22012  func (_IERC20 *IERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22013  	return _IERC20.Contract.contract.Transact(opts, method, params...)
 22014  }
 22015  
 22016  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 22017  //
 22018  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 22019  func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 22020  	var out []interface{}
 22021  	err := _IERC20.contract.Call(opts, &out, "allowance", owner, spender)
 22022  
 22023  	if err != nil {
 22024  		return *new(*big.Int), err
 22025  	}
 22026  
 22027  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 22028  
 22029  	return out0, err
 22030  
 22031  }
 22032  
 22033  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 22034  //
 22035  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 22036  func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 22037  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
 22038  }
 22039  
 22040  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 22041  //
 22042  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 22043  func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 22044  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
 22045  }
 22046  
 22047  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22048  //
 22049  // Solidity: function balanceOf(address account) view returns(uint256)
 22050  func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 22051  	var out []interface{}
 22052  	err := _IERC20.contract.Call(opts, &out, "balanceOf", account)
 22053  
 22054  	if err != nil {
 22055  		return *new(*big.Int), err
 22056  	}
 22057  
 22058  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 22059  
 22060  	return out0, err
 22061  
 22062  }
 22063  
 22064  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22065  //
 22066  // Solidity: function balanceOf(address account) view returns(uint256)
 22067  func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
 22068  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
 22069  }
 22070  
 22071  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22072  //
 22073  // Solidity: function balanceOf(address account) view returns(uint256)
 22074  func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 22075  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
 22076  }
 22077  
 22078  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 22079  //
 22080  // Solidity: function totalSupply() view returns(uint256)
 22081  func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 22082  	var out []interface{}
 22083  	err := _IERC20.contract.Call(opts, &out, "totalSupply")
 22084  
 22085  	if err != nil {
 22086  		return *new(*big.Int), err
 22087  	}
 22088  
 22089  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 22090  
 22091  	return out0, err
 22092  
 22093  }
 22094  
 22095  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 22096  //
 22097  // Solidity: function totalSupply() view returns(uint256)
 22098  func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error) {
 22099  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
 22100  }
 22101  
 22102  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 22103  //
 22104  // Solidity: function totalSupply() view returns(uint256)
 22105  func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error) {
 22106  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
 22107  }
 22108  
 22109  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22110  //
 22111  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 22112  func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 22113  	return _IERC20.contract.Transact(opts, "approve", spender, amount)
 22114  }
 22115  
 22116  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22117  //
 22118  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 22119  func (_IERC20 *IERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 22120  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
 22121  }
 22122  
 22123  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22124  //
 22125  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 22126  func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 22127  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
 22128  }
 22129  
 22130  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 22131  //
 22132  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 22133  func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 22134  	return _IERC20.contract.Transact(opts, "transfer", recipient, amount)
 22135  }
 22136  
 22137  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 22138  //
 22139  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 22140  func (_IERC20 *IERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 22141  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
 22142  }
 22143  
 22144  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 22145  //
 22146  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 22147  func (_IERC20 *IERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 22148  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
 22149  }
 22150  
 22151  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 22152  //
 22153  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 22154  func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 22155  	return _IERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 22156  }
 22157  
 22158  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 22159  //
 22160  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 22161  func (_IERC20 *IERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 22162  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
 22163  }
 22164  
 22165  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 22166  //
 22167  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 22168  func (_IERC20 *IERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 22169  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
 22170  }
 22171  
 22172  // IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract.
 22173  type IERC20ApprovalIterator struct {
 22174  	Event *IERC20Approval // Event containing the contract specifics and raw log
 22175  
 22176  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 22177  	event    string              // Event name to use for unpacking event data
 22178  
 22179  	logs chan types.Log      // Log channel receiving the found contract events
 22180  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 22181  	done bool                // Whether the subscription completed delivering logs
 22182  	fail error               // Occurred error to stop iteration
 22183  }
 22184  
 22185  // Next advances the iterator to the subsequent event, returning whether there
 22186  // are any more events found. In case of a retrieval or parsing error, false is
 22187  // returned and Error() can be queried for the exact failure.
 22188  func (it *IERC20ApprovalIterator) Next() bool {
 22189  	// If the iterator failed, stop iterating
 22190  	if it.fail != nil {
 22191  		return false
 22192  	}
 22193  	// If the iterator completed, deliver directly whatever's available
 22194  	if it.done {
 22195  		select {
 22196  		case log := <-it.logs:
 22197  			it.Event = new(IERC20Approval)
 22198  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22199  				it.fail = err
 22200  				return false
 22201  			}
 22202  			it.Event.Raw = log
 22203  			return true
 22204  
 22205  		default:
 22206  			return false
 22207  		}
 22208  	}
 22209  	// Iterator still in progress, wait for either a data or an error event
 22210  	select {
 22211  	case log := <-it.logs:
 22212  		it.Event = new(IERC20Approval)
 22213  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22214  			it.fail = err
 22215  			return false
 22216  		}
 22217  		it.Event.Raw = log
 22218  		return true
 22219  
 22220  	case err := <-it.sub.Err():
 22221  		it.done = true
 22222  		it.fail = err
 22223  		return it.Next()
 22224  	}
 22225  }
 22226  
 22227  // Error returns any retrieval or parsing error occurred during filtering.
 22228  func (it *IERC20ApprovalIterator) Error() error {
 22229  	return it.fail
 22230  }
 22231  
 22232  // Close terminates the iteration process, releasing any pending underlying
 22233  // resources.
 22234  func (it *IERC20ApprovalIterator) Close() error {
 22235  	it.sub.Unsubscribe()
 22236  	return nil
 22237  }
 22238  
 22239  // IERC20Approval represents a Approval event raised by the IERC20 contract.
 22240  type IERC20Approval struct {
 22241  	Owner   common.Address
 22242  	Spender common.Address
 22243  	Value   *big.Int
 22244  	Raw     types.Log // Blockchain specific contextual infos
 22245  }
 22246  
 22247  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 22248  //
 22249  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 22250  func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error) {
 22251  
 22252  	var ownerRule []interface{}
 22253  	for _, ownerItem := range owner {
 22254  		ownerRule = append(ownerRule, ownerItem)
 22255  	}
 22256  	var spenderRule []interface{}
 22257  	for _, spenderItem := range spender {
 22258  		spenderRule = append(spenderRule, spenderItem)
 22259  	}
 22260  
 22261  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 22262  	if err != nil {
 22263  		return nil, err
 22264  	}
 22265  	return &IERC20ApprovalIterator{contract: _IERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
 22266  }
 22267  
 22268  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 22269  //
 22270  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 22271  func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 22272  
 22273  	var ownerRule []interface{}
 22274  	for _, ownerItem := range owner {
 22275  		ownerRule = append(ownerRule, ownerItem)
 22276  	}
 22277  	var spenderRule []interface{}
 22278  	for _, spenderItem := range spender {
 22279  		spenderRule = append(spenderRule, spenderItem)
 22280  	}
 22281  
 22282  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 22283  	if err != nil {
 22284  		return nil, err
 22285  	}
 22286  	return event.NewSubscription(func(quit <-chan struct{}) error {
 22287  		defer sub.Unsubscribe()
 22288  		for {
 22289  			select {
 22290  			case log := <-logs:
 22291  				// New log arrived, parse the event and forward to the user
 22292  				event := new(IERC20Approval)
 22293  				if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 22294  					return err
 22295  				}
 22296  				event.Raw = log
 22297  
 22298  				select {
 22299  				case sink <- event:
 22300  				case err := <-sub.Err():
 22301  					return err
 22302  				case <-quit:
 22303  					return nil
 22304  				}
 22305  			case err := <-sub.Err():
 22306  				return err
 22307  			case <-quit:
 22308  				return nil
 22309  			}
 22310  		}
 22311  	}), nil
 22312  }
 22313  
 22314  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 22315  //
 22316  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 22317  func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error) {
 22318  	event := new(IERC20Approval)
 22319  	if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 22320  		return nil, err
 22321  	}
 22322  	return event, nil
 22323  }
 22324  
 22325  // IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20 contract.
 22326  type IERC20TransferIterator struct {
 22327  	Event *IERC20Transfer // Event containing the contract specifics and raw log
 22328  
 22329  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 22330  	event    string              // Event name to use for unpacking event data
 22331  
 22332  	logs chan types.Log      // Log channel receiving the found contract events
 22333  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 22334  	done bool                // Whether the subscription completed delivering logs
 22335  	fail error               // Occurred error to stop iteration
 22336  }
 22337  
 22338  // Next advances the iterator to the subsequent event, returning whether there
 22339  // are any more events found. In case of a retrieval or parsing error, false is
 22340  // returned and Error() can be queried for the exact failure.
 22341  func (it *IERC20TransferIterator) Next() bool {
 22342  	// If the iterator failed, stop iterating
 22343  	if it.fail != nil {
 22344  		return false
 22345  	}
 22346  	// If the iterator completed, deliver directly whatever's available
 22347  	if it.done {
 22348  		select {
 22349  		case log := <-it.logs:
 22350  			it.Event = new(IERC20Transfer)
 22351  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22352  				it.fail = err
 22353  				return false
 22354  			}
 22355  			it.Event.Raw = log
 22356  			return true
 22357  
 22358  		default:
 22359  			return false
 22360  		}
 22361  	}
 22362  	// Iterator still in progress, wait for either a data or an error event
 22363  	select {
 22364  	case log := <-it.logs:
 22365  		it.Event = new(IERC20Transfer)
 22366  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22367  			it.fail = err
 22368  			return false
 22369  		}
 22370  		it.Event.Raw = log
 22371  		return true
 22372  
 22373  	case err := <-it.sub.Err():
 22374  		it.done = true
 22375  		it.fail = err
 22376  		return it.Next()
 22377  	}
 22378  }
 22379  
 22380  // Error returns any retrieval or parsing error occurred during filtering.
 22381  func (it *IERC20TransferIterator) Error() error {
 22382  	return it.fail
 22383  }
 22384  
 22385  // Close terminates the iteration process, releasing any pending underlying
 22386  // resources.
 22387  func (it *IERC20TransferIterator) Close() error {
 22388  	it.sub.Unsubscribe()
 22389  	return nil
 22390  }
 22391  
 22392  // IERC20Transfer represents a Transfer event raised by the IERC20 contract.
 22393  type IERC20Transfer struct {
 22394  	From  common.Address
 22395  	To    common.Address
 22396  	Value *big.Int
 22397  	Raw   types.Log // Blockchain specific contextual infos
 22398  }
 22399  
 22400  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 22401  //
 22402  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 22403  func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error) {
 22404  
 22405  	var fromRule []interface{}
 22406  	for _, fromItem := range from {
 22407  		fromRule = append(fromRule, fromItem)
 22408  	}
 22409  	var toRule []interface{}
 22410  	for _, toItem := range to {
 22411  		toRule = append(toRule, toItem)
 22412  	}
 22413  
 22414  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 22415  	if err != nil {
 22416  		return nil, err
 22417  	}
 22418  	return &IERC20TransferIterator{contract: _IERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
 22419  }
 22420  
 22421  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 22422  //
 22423  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 22424  func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 22425  
 22426  	var fromRule []interface{}
 22427  	for _, fromItem := range from {
 22428  		fromRule = append(fromRule, fromItem)
 22429  	}
 22430  	var toRule []interface{}
 22431  	for _, toItem := range to {
 22432  		toRule = append(toRule, toItem)
 22433  	}
 22434  
 22435  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 22436  	if err != nil {
 22437  		return nil, err
 22438  	}
 22439  	return event.NewSubscription(func(quit <-chan struct{}) error {
 22440  		defer sub.Unsubscribe()
 22441  		for {
 22442  			select {
 22443  			case log := <-logs:
 22444  				// New log arrived, parse the event and forward to the user
 22445  				event := new(IERC20Transfer)
 22446  				if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 22447  					return err
 22448  				}
 22449  				event.Raw = log
 22450  
 22451  				select {
 22452  				case sink <- event:
 22453  				case err := <-sub.Err():
 22454  					return err
 22455  				case <-quit:
 22456  					return nil
 22457  				}
 22458  			case err := <-sub.Err():
 22459  				return err
 22460  			case <-quit:
 22461  				return nil
 22462  			}
 22463  		}
 22464  	}), nil
 22465  }
 22466  
 22467  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 22468  //
 22469  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 22470  func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error) {
 22471  	event := new(IERC20Transfer)
 22472  	if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 22473  		return nil, err
 22474  	}
 22475  	return event, nil
 22476  }
 22477  
 22478  // IERC20BridgeReceiverMetaData contains all meta data concerning the IERC20BridgeReceiver contract.
 22479  var IERC20BridgeReceiverMetaData = &bind.MetaData{
 22480  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC20Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 22481  	Sigs: map[string]string{
 22482  		"f1656e53": "onERC20Received(address,address,uint256,uint256,bytes)",
 22483  	},
 22484  }
 22485  
 22486  // IERC20BridgeReceiverABI is the input ABI used to generate the binding from.
 22487  // Deprecated: Use IERC20BridgeReceiverMetaData.ABI instead.
 22488  var IERC20BridgeReceiverABI = IERC20BridgeReceiverMetaData.ABI
 22489  
 22490  // IERC20BridgeReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 22491  const IERC20BridgeReceiverBinRuntime = ``
 22492  
 22493  // IERC20BridgeReceiverFuncSigs maps the 4-byte function signature to its string representation.
 22494  // Deprecated: Use IERC20BridgeReceiverMetaData.Sigs instead.
 22495  var IERC20BridgeReceiverFuncSigs = IERC20BridgeReceiverMetaData.Sigs
 22496  
 22497  // IERC20BridgeReceiver is an auto generated Go binding around a Klaytn contract.
 22498  type IERC20BridgeReceiver struct {
 22499  	IERC20BridgeReceiverCaller     // Read-only binding to the contract
 22500  	IERC20BridgeReceiverTransactor // Write-only binding to the contract
 22501  	IERC20BridgeReceiverFilterer   // Log filterer for contract events
 22502  }
 22503  
 22504  // IERC20BridgeReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
 22505  type IERC20BridgeReceiverCaller struct {
 22506  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22507  }
 22508  
 22509  // IERC20BridgeReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
 22510  type IERC20BridgeReceiverTransactor struct {
 22511  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22512  }
 22513  
 22514  // IERC20BridgeReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 22515  type IERC20BridgeReceiverFilterer struct {
 22516  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22517  }
 22518  
 22519  // IERC20BridgeReceiverSession is an auto generated Go binding around a Klaytn contract,
 22520  // with pre-set call and transact options.
 22521  type IERC20BridgeReceiverSession struct {
 22522  	Contract     *IERC20BridgeReceiver // Generic contract binding to set the session for
 22523  	CallOpts     bind.CallOpts         // Call options to use throughout this session
 22524  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 22525  }
 22526  
 22527  // IERC20BridgeReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 22528  // with pre-set call options.
 22529  type IERC20BridgeReceiverCallerSession struct {
 22530  	Contract *IERC20BridgeReceiverCaller // Generic contract caller binding to set the session for
 22531  	CallOpts bind.CallOpts               // Call options to use throughout this session
 22532  }
 22533  
 22534  // IERC20BridgeReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 22535  // with pre-set transact options.
 22536  type IERC20BridgeReceiverTransactorSession struct {
 22537  	Contract     *IERC20BridgeReceiverTransactor // Generic contract transactor binding to set the session for
 22538  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
 22539  }
 22540  
 22541  // IERC20BridgeReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
 22542  type IERC20BridgeReceiverRaw struct {
 22543  	Contract *IERC20BridgeReceiver // Generic contract binding to access the raw methods on
 22544  }
 22545  
 22546  // IERC20BridgeReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 22547  type IERC20BridgeReceiverCallerRaw struct {
 22548  	Contract *IERC20BridgeReceiverCaller // Generic read-only contract binding to access the raw methods on
 22549  }
 22550  
 22551  // IERC20BridgeReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 22552  type IERC20BridgeReceiverTransactorRaw struct {
 22553  	Contract *IERC20BridgeReceiverTransactor // Generic write-only contract binding to access the raw methods on
 22554  }
 22555  
 22556  // NewIERC20BridgeReceiver creates a new instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 22557  func NewIERC20BridgeReceiver(address common.Address, backend bind.ContractBackend) (*IERC20BridgeReceiver, error) {
 22558  	contract, err := bindIERC20BridgeReceiver(address, backend, backend, backend)
 22559  	if err != nil {
 22560  		return nil, err
 22561  	}
 22562  	return &IERC20BridgeReceiver{IERC20BridgeReceiverCaller: IERC20BridgeReceiverCaller{contract: contract}, IERC20BridgeReceiverTransactor: IERC20BridgeReceiverTransactor{contract: contract}, IERC20BridgeReceiverFilterer: IERC20BridgeReceiverFilterer{contract: contract}}, nil
 22563  }
 22564  
 22565  // NewIERC20BridgeReceiverCaller creates a new read-only instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 22566  func NewIERC20BridgeReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC20BridgeReceiverCaller, error) {
 22567  	contract, err := bindIERC20BridgeReceiver(address, caller, nil, nil)
 22568  	if err != nil {
 22569  		return nil, err
 22570  	}
 22571  	return &IERC20BridgeReceiverCaller{contract: contract}, nil
 22572  }
 22573  
 22574  // NewIERC20BridgeReceiverTransactor creates a new write-only instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 22575  func NewIERC20BridgeReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20BridgeReceiverTransactor, error) {
 22576  	contract, err := bindIERC20BridgeReceiver(address, nil, transactor, nil)
 22577  	if err != nil {
 22578  		return nil, err
 22579  	}
 22580  	return &IERC20BridgeReceiverTransactor{contract: contract}, nil
 22581  }
 22582  
 22583  // NewIERC20BridgeReceiverFilterer creates a new log filterer instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 22584  func NewIERC20BridgeReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20BridgeReceiverFilterer, error) {
 22585  	contract, err := bindIERC20BridgeReceiver(address, nil, nil, filterer)
 22586  	if err != nil {
 22587  		return nil, err
 22588  	}
 22589  	return &IERC20BridgeReceiverFilterer{contract: contract}, nil
 22590  }
 22591  
 22592  // bindIERC20BridgeReceiver binds a generic wrapper to an already deployed contract.
 22593  func bindIERC20BridgeReceiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22594  	parsed, err := IERC20BridgeReceiverMetaData.GetAbi()
 22595  	if err != nil {
 22596  		return nil, err
 22597  	}
 22598  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 22599  }
 22600  
 22601  // Call invokes the (constant) contract method with params as input values and
 22602  // sets the output to result. The result type might be a single field for simple
 22603  // returns, a slice of interfaces for anonymous returns and a struct for named
 22604  // returns.
 22605  func (_IERC20BridgeReceiver *IERC20BridgeReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22606  	return _IERC20BridgeReceiver.Contract.IERC20BridgeReceiverCaller.contract.Call(opts, result, method, params...)
 22607  }
 22608  
 22609  // Transfer initiates a plain transaction to move funds to the contract, calling
 22610  // its default method if one is available.
 22611  func (_IERC20BridgeReceiver *IERC20BridgeReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22612  	return _IERC20BridgeReceiver.Contract.IERC20BridgeReceiverTransactor.contract.Transfer(opts)
 22613  }
 22614  
 22615  // Transact invokes the (paid) contract method with params as input values.
 22616  func (_IERC20BridgeReceiver *IERC20BridgeReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22617  	return _IERC20BridgeReceiver.Contract.IERC20BridgeReceiverTransactor.contract.Transact(opts, method, params...)
 22618  }
 22619  
 22620  // Call invokes the (constant) contract method with params as input values and
 22621  // sets the output to result. The result type might be a single field for simple
 22622  // returns, a slice of interfaces for anonymous returns and a struct for named
 22623  // returns.
 22624  func (_IERC20BridgeReceiver *IERC20BridgeReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22625  	return _IERC20BridgeReceiver.Contract.contract.Call(opts, result, method, params...)
 22626  }
 22627  
 22628  // Transfer initiates a plain transaction to move funds to the contract, calling
 22629  // its default method if one is available.
 22630  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22631  	return _IERC20BridgeReceiver.Contract.contract.Transfer(opts)
 22632  }
 22633  
 22634  // Transact invokes the (paid) contract method with params as input values.
 22635  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22636  	return _IERC20BridgeReceiver.Contract.contract.Transact(opts, method, params...)
 22637  }
 22638  
 22639  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 22640  //
 22641  // Solidity: function onERC20Received(address _from, address _to, uint256 _amount, uint256 _feeLimit, bytes _extraData) returns()
 22642  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactor) OnERC20Received(opts *bind.TransactOpts, _from common.Address, _to common.Address, _amount *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 22643  	return _IERC20BridgeReceiver.contract.Transact(opts, "onERC20Received", _from, _to, _amount, _feeLimit, _extraData)
 22644  }
 22645  
 22646  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 22647  //
 22648  // Solidity: function onERC20Received(address _from, address _to, uint256 _amount, uint256 _feeLimit, bytes _extraData) returns()
 22649  func (_IERC20BridgeReceiver *IERC20BridgeReceiverSession) OnERC20Received(_from common.Address, _to common.Address, _amount *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 22650  	return _IERC20BridgeReceiver.Contract.OnERC20Received(&_IERC20BridgeReceiver.TransactOpts, _from, _to, _amount, _feeLimit, _extraData)
 22651  }
 22652  
 22653  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 22654  //
 22655  // Solidity: function onERC20Received(address _from, address _to, uint256 _amount, uint256 _feeLimit, bytes _extraData) returns()
 22656  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactorSession) OnERC20Received(_from common.Address, _to common.Address, _amount *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 22657  	return _IERC20BridgeReceiver.Contract.OnERC20Received(&_IERC20BridgeReceiver.TransactOpts, _from, _to, _amount, _feeLimit, _extraData)
 22658  }
 22659  
 22660  // IERC721MetaData contains all meta data concerning the IERC721 contract.
 22661  var IERC721MetaData = &bind.MetaData{
 22662  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 22663  	Sigs: map[string]string{
 22664  		"095ea7b3": "approve(address,uint256)",
 22665  		"70a08231": "balanceOf(address)",
 22666  		"081812fc": "getApproved(uint256)",
 22667  		"e985e9c5": "isApprovedForAll(address,address)",
 22668  		"6352211e": "ownerOf(uint256)",
 22669  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 22670  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 22671  		"a22cb465": "setApprovalForAll(address,bool)",
 22672  		"01ffc9a7": "supportsInterface(bytes4)",
 22673  		"23b872dd": "transferFrom(address,address,uint256)",
 22674  	},
 22675  }
 22676  
 22677  // IERC721ABI is the input ABI used to generate the binding from.
 22678  // Deprecated: Use IERC721MetaData.ABI instead.
 22679  var IERC721ABI = IERC721MetaData.ABI
 22680  
 22681  // IERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 22682  const IERC721BinRuntime = ``
 22683  
 22684  // IERC721FuncSigs maps the 4-byte function signature to its string representation.
 22685  // Deprecated: Use IERC721MetaData.Sigs instead.
 22686  var IERC721FuncSigs = IERC721MetaData.Sigs
 22687  
 22688  // IERC721 is an auto generated Go binding around a Klaytn contract.
 22689  type IERC721 struct {
 22690  	IERC721Caller     // Read-only binding to the contract
 22691  	IERC721Transactor // Write-only binding to the contract
 22692  	IERC721Filterer   // Log filterer for contract events
 22693  }
 22694  
 22695  // IERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
 22696  type IERC721Caller struct {
 22697  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22698  }
 22699  
 22700  // IERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
 22701  type IERC721Transactor struct {
 22702  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22703  }
 22704  
 22705  // IERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 22706  type IERC721Filterer struct {
 22707  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22708  }
 22709  
 22710  // IERC721Session is an auto generated Go binding around a Klaytn contract,
 22711  // with pre-set call and transact options.
 22712  type IERC721Session struct {
 22713  	Contract     *IERC721          // Generic contract binding to set the session for
 22714  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 22715  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 22716  }
 22717  
 22718  // IERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 22719  // with pre-set call options.
 22720  type IERC721CallerSession struct {
 22721  	Contract *IERC721Caller // Generic contract caller binding to set the session for
 22722  	CallOpts bind.CallOpts  // Call options to use throughout this session
 22723  }
 22724  
 22725  // IERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 22726  // with pre-set transact options.
 22727  type IERC721TransactorSession struct {
 22728  	Contract     *IERC721Transactor // Generic contract transactor binding to set the session for
 22729  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 22730  }
 22731  
 22732  // IERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
 22733  type IERC721Raw struct {
 22734  	Contract *IERC721 // Generic contract binding to access the raw methods on
 22735  }
 22736  
 22737  // IERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 22738  type IERC721CallerRaw struct {
 22739  	Contract *IERC721Caller // Generic read-only contract binding to access the raw methods on
 22740  }
 22741  
 22742  // IERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 22743  type IERC721TransactorRaw struct {
 22744  	Contract *IERC721Transactor // Generic write-only contract binding to access the raw methods on
 22745  }
 22746  
 22747  // NewIERC721 creates a new instance of IERC721, bound to a specific deployed contract.
 22748  func NewIERC721(address common.Address, backend bind.ContractBackend) (*IERC721, error) {
 22749  	contract, err := bindIERC721(address, backend, backend, backend)
 22750  	if err != nil {
 22751  		return nil, err
 22752  	}
 22753  	return &IERC721{IERC721Caller: IERC721Caller{contract: contract}, IERC721Transactor: IERC721Transactor{contract: contract}, IERC721Filterer: IERC721Filterer{contract: contract}}, nil
 22754  }
 22755  
 22756  // NewIERC721Caller creates a new read-only instance of IERC721, bound to a specific deployed contract.
 22757  func NewIERC721Caller(address common.Address, caller bind.ContractCaller) (*IERC721Caller, error) {
 22758  	contract, err := bindIERC721(address, caller, nil, nil)
 22759  	if err != nil {
 22760  		return nil, err
 22761  	}
 22762  	return &IERC721Caller{contract: contract}, nil
 22763  }
 22764  
 22765  // NewIERC721Transactor creates a new write-only instance of IERC721, bound to a specific deployed contract.
 22766  func NewIERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC721Transactor, error) {
 22767  	contract, err := bindIERC721(address, nil, transactor, nil)
 22768  	if err != nil {
 22769  		return nil, err
 22770  	}
 22771  	return &IERC721Transactor{contract: contract}, nil
 22772  }
 22773  
 22774  // NewIERC721Filterer creates a new log filterer instance of IERC721, bound to a specific deployed contract.
 22775  func NewIERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC721Filterer, error) {
 22776  	contract, err := bindIERC721(address, nil, nil, filterer)
 22777  	if err != nil {
 22778  		return nil, err
 22779  	}
 22780  	return &IERC721Filterer{contract: contract}, nil
 22781  }
 22782  
 22783  // bindIERC721 binds a generic wrapper to an already deployed contract.
 22784  func bindIERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22785  	parsed, err := IERC721MetaData.GetAbi()
 22786  	if err != nil {
 22787  		return nil, err
 22788  	}
 22789  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 22790  }
 22791  
 22792  // Call invokes the (constant) contract method with params as input values and
 22793  // sets the output to result. The result type might be a single field for simple
 22794  // returns, a slice of interfaces for anonymous returns and a struct for named
 22795  // returns.
 22796  func (_IERC721 *IERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22797  	return _IERC721.Contract.IERC721Caller.contract.Call(opts, result, method, params...)
 22798  }
 22799  
 22800  // Transfer initiates a plain transaction to move funds to the contract, calling
 22801  // its default method if one is available.
 22802  func (_IERC721 *IERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22803  	return _IERC721.Contract.IERC721Transactor.contract.Transfer(opts)
 22804  }
 22805  
 22806  // Transact invokes the (paid) contract method with params as input values.
 22807  func (_IERC721 *IERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22808  	return _IERC721.Contract.IERC721Transactor.contract.Transact(opts, method, params...)
 22809  }
 22810  
 22811  // Call invokes the (constant) contract method with params as input values and
 22812  // sets the output to result. The result type might be a single field for simple
 22813  // returns, a slice of interfaces for anonymous returns and a struct for named
 22814  // returns.
 22815  func (_IERC721 *IERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22816  	return _IERC721.Contract.contract.Call(opts, result, method, params...)
 22817  }
 22818  
 22819  // Transfer initiates a plain transaction to move funds to the contract, calling
 22820  // its default method if one is available.
 22821  func (_IERC721 *IERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22822  	return _IERC721.Contract.contract.Transfer(opts)
 22823  }
 22824  
 22825  // Transact invokes the (paid) contract method with params as input values.
 22826  func (_IERC721 *IERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22827  	return _IERC721.Contract.contract.Transact(opts, method, params...)
 22828  }
 22829  
 22830  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22831  //
 22832  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 22833  func (_IERC721 *IERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 22834  	var out []interface{}
 22835  	err := _IERC721.contract.Call(opts, &out, "balanceOf", owner)
 22836  
 22837  	if err != nil {
 22838  		return *new(*big.Int), err
 22839  	}
 22840  
 22841  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 22842  
 22843  	return out0, err
 22844  
 22845  }
 22846  
 22847  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22848  //
 22849  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 22850  func (_IERC721 *IERC721Session) BalanceOf(owner common.Address) (*big.Int, error) {
 22851  	return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner)
 22852  }
 22853  
 22854  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22855  //
 22856  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 22857  func (_IERC721 *IERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 22858  	return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner)
 22859  }
 22860  
 22861  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 22862  //
 22863  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 22864  func (_IERC721 *IERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 22865  	var out []interface{}
 22866  	err := _IERC721.contract.Call(opts, &out, "getApproved", tokenId)
 22867  
 22868  	if err != nil {
 22869  		return *new(common.Address), err
 22870  	}
 22871  
 22872  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 22873  
 22874  	return out0, err
 22875  
 22876  }
 22877  
 22878  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 22879  //
 22880  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 22881  func (_IERC721 *IERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
 22882  	return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId)
 22883  }
 22884  
 22885  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 22886  //
 22887  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 22888  func (_IERC721 *IERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 22889  	return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId)
 22890  }
 22891  
 22892  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 22893  //
 22894  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 22895  func (_IERC721 *IERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 22896  	var out []interface{}
 22897  	err := _IERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 22898  
 22899  	if err != nil {
 22900  		return *new(bool), err
 22901  	}
 22902  
 22903  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 22904  
 22905  	return out0, err
 22906  
 22907  }
 22908  
 22909  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 22910  //
 22911  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 22912  func (_IERC721 *IERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 22913  	return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator)
 22914  }
 22915  
 22916  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 22917  //
 22918  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 22919  func (_IERC721 *IERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 22920  	return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator)
 22921  }
 22922  
 22923  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 22924  //
 22925  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 22926  func (_IERC721 *IERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 22927  	var out []interface{}
 22928  	err := _IERC721.contract.Call(opts, &out, "ownerOf", tokenId)
 22929  
 22930  	if err != nil {
 22931  		return *new(common.Address), err
 22932  	}
 22933  
 22934  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 22935  
 22936  	return out0, err
 22937  
 22938  }
 22939  
 22940  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 22941  //
 22942  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 22943  func (_IERC721 *IERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
 22944  	return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId)
 22945  }
 22946  
 22947  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 22948  //
 22949  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 22950  func (_IERC721 *IERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 22951  	return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId)
 22952  }
 22953  
 22954  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 22955  //
 22956  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 22957  func (_IERC721 *IERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 22958  	var out []interface{}
 22959  	err := _IERC721.contract.Call(opts, &out, "supportsInterface", interfaceId)
 22960  
 22961  	if err != nil {
 22962  		return *new(bool), err
 22963  	}
 22964  
 22965  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 22966  
 22967  	return out0, err
 22968  
 22969  }
 22970  
 22971  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 22972  //
 22973  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 22974  func (_IERC721 *IERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 22975  	return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId)
 22976  }
 22977  
 22978  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 22979  //
 22980  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 22981  func (_IERC721 *IERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 22982  	return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId)
 22983  }
 22984  
 22985  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22986  //
 22987  // Solidity: function approve(address to, uint256 tokenId) returns()
 22988  func (_IERC721 *IERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22989  	return _IERC721.contract.Transact(opts, "approve", to, tokenId)
 22990  }
 22991  
 22992  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22993  //
 22994  // Solidity: function approve(address to, uint256 tokenId) returns()
 22995  func (_IERC721 *IERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22996  	return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId)
 22997  }
 22998  
 22999  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 23000  //
 23001  // Solidity: function approve(address to, uint256 tokenId) returns()
 23002  func (_IERC721 *IERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23003  	return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId)
 23004  }
 23005  
 23006  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 23007  //
 23008  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 23009  func (_IERC721 *IERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23010  	return _IERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 23011  }
 23012  
 23013  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 23014  //
 23015  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 23016  func (_IERC721 *IERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23017  	return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 23018  }
 23019  
 23020  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 23021  //
 23022  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 23023  func (_IERC721 *IERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23024  	return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 23025  }
 23026  
 23027  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 23028  //
 23029  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 23030  func (_IERC721 *IERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 23031  	return _IERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
 23032  }
 23033  
 23034  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 23035  //
 23036  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 23037  func (_IERC721 *IERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 23038  	return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data)
 23039  }
 23040  
 23041  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 23042  //
 23043  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 23044  func (_IERC721 *IERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 23045  	return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data)
 23046  }
 23047  
 23048  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 23049  //
 23050  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 23051  func (_IERC721 *IERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) {
 23052  	return _IERC721.contract.Transact(opts, "setApprovalForAll", operator, _approved)
 23053  }
 23054  
 23055  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 23056  //
 23057  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 23058  func (_IERC721 *IERC721Session) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 23059  	return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved)
 23060  }
 23061  
 23062  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 23063  //
 23064  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 23065  func (_IERC721 *IERC721TransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 23066  	return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved)
 23067  }
 23068  
 23069  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 23070  //
 23071  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 23072  func (_IERC721 *IERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23073  	return _IERC721.contract.Transact(opts, "transferFrom", from, to, tokenId)
 23074  }
 23075  
 23076  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 23077  //
 23078  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 23079  func (_IERC721 *IERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23080  	return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 23081  }
 23082  
 23083  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 23084  //
 23085  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 23086  func (_IERC721 *IERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23087  	return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 23088  }
 23089  
 23090  // IERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721 contract.
 23091  type IERC721ApprovalIterator struct {
 23092  	Event *IERC721Approval // Event containing the contract specifics and raw log
 23093  
 23094  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 23095  	event    string              // Event name to use for unpacking event data
 23096  
 23097  	logs chan types.Log      // Log channel receiving the found contract events
 23098  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 23099  	done bool                // Whether the subscription completed delivering logs
 23100  	fail error               // Occurred error to stop iteration
 23101  }
 23102  
 23103  // Next advances the iterator to the subsequent event, returning whether there
 23104  // are any more events found. In case of a retrieval or parsing error, false is
 23105  // returned and Error() can be queried for the exact failure.
 23106  func (it *IERC721ApprovalIterator) Next() bool {
 23107  	// If the iterator failed, stop iterating
 23108  	if it.fail != nil {
 23109  		return false
 23110  	}
 23111  	// If the iterator completed, deliver directly whatever's available
 23112  	if it.done {
 23113  		select {
 23114  		case log := <-it.logs:
 23115  			it.Event = new(IERC721Approval)
 23116  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23117  				it.fail = err
 23118  				return false
 23119  			}
 23120  			it.Event.Raw = log
 23121  			return true
 23122  
 23123  		default:
 23124  			return false
 23125  		}
 23126  	}
 23127  	// Iterator still in progress, wait for either a data or an error event
 23128  	select {
 23129  	case log := <-it.logs:
 23130  		it.Event = new(IERC721Approval)
 23131  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23132  			it.fail = err
 23133  			return false
 23134  		}
 23135  		it.Event.Raw = log
 23136  		return true
 23137  
 23138  	case err := <-it.sub.Err():
 23139  		it.done = true
 23140  		it.fail = err
 23141  		return it.Next()
 23142  	}
 23143  }
 23144  
 23145  // Error returns any retrieval or parsing error occurred during filtering.
 23146  func (it *IERC721ApprovalIterator) Error() error {
 23147  	return it.fail
 23148  }
 23149  
 23150  // Close terminates the iteration process, releasing any pending underlying
 23151  // resources.
 23152  func (it *IERC721ApprovalIterator) Close() error {
 23153  	it.sub.Unsubscribe()
 23154  	return nil
 23155  }
 23156  
 23157  // IERC721Approval represents a Approval event raised by the IERC721 contract.
 23158  type IERC721Approval struct {
 23159  	Owner    common.Address
 23160  	Approved common.Address
 23161  	TokenId  *big.Int
 23162  	Raw      types.Log // Blockchain specific contextual infos
 23163  }
 23164  
 23165  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 23166  //
 23167  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 23168  func (_IERC721 *IERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721ApprovalIterator, error) {
 23169  
 23170  	var ownerRule []interface{}
 23171  	for _, ownerItem := range owner {
 23172  		ownerRule = append(ownerRule, ownerItem)
 23173  	}
 23174  	var approvedRule []interface{}
 23175  	for _, approvedItem := range approved {
 23176  		approvedRule = append(approvedRule, approvedItem)
 23177  	}
 23178  	var tokenIdRule []interface{}
 23179  	for _, tokenIdItem := range tokenId {
 23180  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23181  	}
 23182  
 23183  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 23184  	if err != nil {
 23185  		return nil, err
 23186  	}
 23187  	return &IERC721ApprovalIterator{contract: _IERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
 23188  }
 23189  
 23190  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 23191  //
 23192  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 23193  func (_IERC721 *IERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 23194  
 23195  	var ownerRule []interface{}
 23196  	for _, ownerItem := range owner {
 23197  		ownerRule = append(ownerRule, ownerItem)
 23198  	}
 23199  	var approvedRule []interface{}
 23200  	for _, approvedItem := range approved {
 23201  		approvedRule = append(approvedRule, approvedItem)
 23202  	}
 23203  	var tokenIdRule []interface{}
 23204  	for _, tokenIdItem := range tokenId {
 23205  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23206  	}
 23207  
 23208  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 23209  	if err != nil {
 23210  		return nil, err
 23211  	}
 23212  	return event.NewSubscription(func(quit <-chan struct{}) error {
 23213  		defer sub.Unsubscribe()
 23214  		for {
 23215  			select {
 23216  			case log := <-logs:
 23217  				// New log arrived, parse the event and forward to the user
 23218  				event := new(IERC721Approval)
 23219  				if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 23220  					return err
 23221  				}
 23222  				event.Raw = log
 23223  
 23224  				select {
 23225  				case sink <- event:
 23226  				case err := <-sub.Err():
 23227  					return err
 23228  				case <-quit:
 23229  					return nil
 23230  				}
 23231  			case err := <-sub.Err():
 23232  				return err
 23233  			case <-quit:
 23234  				return nil
 23235  			}
 23236  		}
 23237  	}), nil
 23238  }
 23239  
 23240  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 23241  //
 23242  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 23243  func (_IERC721 *IERC721Filterer) ParseApproval(log types.Log) (*IERC721Approval, error) {
 23244  	event := new(IERC721Approval)
 23245  	if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 23246  		return nil, err
 23247  	}
 23248  	return event, nil
 23249  }
 23250  
 23251  // IERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721 contract.
 23252  type IERC721ApprovalForAllIterator struct {
 23253  	Event *IERC721ApprovalForAll // Event containing the contract specifics and raw log
 23254  
 23255  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 23256  	event    string              // Event name to use for unpacking event data
 23257  
 23258  	logs chan types.Log      // Log channel receiving the found contract events
 23259  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 23260  	done bool                // Whether the subscription completed delivering logs
 23261  	fail error               // Occurred error to stop iteration
 23262  }
 23263  
 23264  // Next advances the iterator to the subsequent event, returning whether there
 23265  // are any more events found. In case of a retrieval or parsing error, false is
 23266  // returned and Error() can be queried for the exact failure.
 23267  func (it *IERC721ApprovalForAllIterator) Next() bool {
 23268  	// If the iterator failed, stop iterating
 23269  	if it.fail != nil {
 23270  		return false
 23271  	}
 23272  	// If the iterator completed, deliver directly whatever's available
 23273  	if it.done {
 23274  		select {
 23275  		case log := <-it.logs:
 23276  			it.Event = new(IERC721ApprovalForAll)
 23277  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23278  				it.fail = err
 23279  				return false
 23280  			}
 23281  			it.Event.Raw = log
 23282  			return true
 23283  
 23284  		default:
 23285  			return false
 23286  		}
 23287  	}
 23288  	// Iterator still in progress, wait for either a data or an error event
 23289  	select {
 23290  	case log := <-it.logs:
 23291  		it.Event = new(IERC721ApprovalForAll)
 23292  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23293  			it.fail = err
 23294  			return false
 23295  		}
 23296  		it.Event.Raw = log
 23297  		return true
 23298  
 23299  	case err := <-it.sub.Err():
 23300  		it.done = true
 23301  		it.fail = err
 23302  		return it.Next()
 23303  	}
 23304  }
 23305  
 23306  // Error returns any retrieval or parsing error occurred during filtering.
 23307  func (it *IERC721ApprovalForAllIterator) Error() error {
 23308  	return it.fail
 23309  }
 23310  
 23311  // Close terminates the iteration process, releasing any pending underlying
 23312  // resources.
 23313  func (it *IERC721ApprovalForAllIterator) Close() error {
 23314  	it.sub.Unsubscribe()
 23315  	return nil
 23316  }
 23317  
 23318  // IERC721ApprovalForAll represents a ApprovalForAll event raised by the IERC721 contract.
 23319  type IERC721ApprovalForAll struct {
 23320  	Owner    common.Address
 23321  	Operator common.Address
 23322  	Approved bool
 23323  	Raw      types.Log // Blockchain specific contextual infos
 23324  }
 23325  
 23326  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 23327  //
 23328  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 23329  func (_IERC721 *IERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721ApprovalForAllIterator, error) {
 23330  
 23331  	var ownerRule []interface{}
 23332  	for _, ownerItem := range owner {
 23333  		ownerRule = append(ownerRule, ownerItem)
 23334  	}
 23335  	var operatorRule []interface{}
 23336  	for _, operatorItem := range operator {
 23337  		operatorRule = append(operatorRule, operatorItem)
 23338  	}
 23339  
 23340  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 23341  	if err != nil {
 23342  		return nil, err
 23343  	}
 23344  	return &IERC721ApprovalForAllIterator{contract: _IERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 23345  }
 23346  
 23347  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 23348  //
 23349  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 23350  func (_IERC721 *IERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 23351  
 23352  	var ownerRule []interface{}
 23353  	for _, ownerItem := range owner {
 23354  		ownerRule = append(ownerRule, ownerItem)
 23355  	}
 23356  	var operatorRule []interface{}
 23357  	for _, operatorItem := range operator {
 23358  		operatorRule = append(operatorRule, operatorItem)
 23359  	}
 23360  
 23361  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 23362  	if err != nil {
 23363  		return nil, err
 23364  	}
 23365  	return event.NewSubscription(func(quit <-chan struct{}) error {
 23366  		defer sub.Unsubscribe()
 23367  		for {
 23368  			select {
 23369  			case log := <-logs:
 23370  				// New log arrived, parse the event and forward to the user
 23371  				event := new(IERC721ApprovalForAll)
 23372  				if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 23373  					return err
 23374  				}
 23375  				event.Raw = log
 23376  
 23377  				select {
 23378  				case sink <- event:
 23379  				case err := <-sub.Err():
 23380  					return err
 23381  				case <-quit:
 23382  					return nil
 23383  				}
 23384  			case err := <-sub.Err():
 23385  				return err
 23386  			case <-quit:
 23387  				return nil
 23388  			}
 23389  		}
 23390  	}), nil
 23391  }
 23392  
 23393  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 23394  //
 23395  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 23396  func (_IERC721 *IERC721Filterer) ParseApprovalForAll(log types.Log) (*IERC721ApprovalForAll, error) {
 23397  	event := new(IERC721ApprovalForAll)
 23398  	if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 23399  		return nil, err
 23400  	}
 23401  	return event, nil
 23402  }
 23403  
 23404  // IERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721 contract.
 23405  type IERC721TransferIterator struct {
 23406  	Event *IERC721Transfer // Event containing the contract specifics and raw log
 23407  
 23408  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 23409  	event    string              // Event name to use for unpacking event data
 23410  
 23411  	logs chan types.Log      // Log channel receiving the found contract events
 23412  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 23413  	done bool                // Whether the subscription completed delivering logs
 23414  	fail error               // Occurred error to stop iteration
 23415  }
 23416  
 23417  // Next advances the iterator to the subsequent event, returning whether there
 23418  // are any more events found. In case of a retrieval or parsing error, false is
 23419  // returned and Error() can be queried for the exact failure.
 23420  func (it *IERC721TransferIterator) Next() bool {
 23421  	// If the iterator failed, stop iterating
 23422  	if it.fail != nil {
 23423  		return false
 23424  	}
 23425  	// If the iterator completed, deliver directly whatever's available
 23426  	if it.done {
 23427  		select {
 23428  		case log := <-it.logs:
 23429  			it.Event = new(IERC721Transfer)
 23430  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23431  				it.fail = err
 23432  				return false
 23433  			}
 23434  			it.Event.Raw = log
 23435  			return true
 23436  
 23437  		default:
 23438  			return false
 23439  		}
 23440  	}
 23441  	// Iterator still in progress, wait for either a data or an error event
 23442  	select {
 23443  	case log := <-it.logs:
 23444  		it.Event = new(IERC721Transfer)
 23445  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23446  			it.fail = err
 23447  			return false
 23448  		}
 23449  		it.Event.Raw = log
 23450  		return true
 23451  
 23452  	case err := <-it.sub.Err():
 23453  		it.done = true
 23454  		it.fail = err
 23455  		return it.Next()
 23456  	}
 23457  }
 23458  
 23459  // Error returns any retrieval or parsing error occurred during filtering.
 23460  func (it *IERC721TransferIterator) Error() error {
 23461  	return it.fail
 23462  }
 23463  
 23464  // Close terminates the iteration process, releasing any pending underlying
 23465  // resources.
 23466  func (it *IERC721TransferIterator) Close() error {
 23467  	it.sub.Unsubscribe()
 23468  	return nil
 23469  }
 23470  
 23471  // IERC721Transfer represents a Transfer event raised by the IERC721 contract.
 23472  type IERC721Transfer struct {
 23473  	From    common.Address
 23474  	To      common.Address
 23475  	TokenId *big.Int
 23476  	Raw     types.Log // Blockchain specific contextual infos
 23477  }
 23478  
 23479  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 23480  //
 23481  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 23482  func (_IERC721 *IERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721TransferIterator, error) {
 23483  
 23484  	var fromRule []interface{}
 23485  	for _, fromItem := range from {
 23486  		fromRule = append(fromRule, fromItem)
 23487  	}
 23488  	var toRule []interface{}
 23489  	for _, toItem := range to {
 23490  		toRule = append(toRule, toItem)
 23491  	}
 23492  	var tokenIdRule []interface{}
 23493  	for _, tokenIdItem := range tokenId {
 23494  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23495  	}
 23496  
 23497  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 23498  	if err != nil {
 23499  		return nil, err
 23500  	}
 23501  	return &IERC721TransferIterator{contract: _IERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
 23502  }
 23503  
 23504  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 23505  //
 23506  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 23507  func (_IERC721 *IERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 23508  
 23509  	var fromRule []interface{}
 23510  	for _, fromItem := range from {
 23511  		fromRule = append(fromRule, fromItem)
 23512  	}
 23513  	var toRule []interface{}
 23514  	for _, toItem := range to {
 23515  		toRule = append(toRule, toItem)
 23516  	}
 23517  	var tokenIdRule []interface{}
 23518  	for _, tokenIdItem := range tokenId {
 23519  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23520  	}
 23521  
 23522  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 23523  	if err != nil {
 23524  		return nil, err
 23525  	}
 23526  	return event.NewSubscription(func(quit <-chan struct{}) error {
 23527  		defer sub.Unsubscribe()
 23528  		for {
 23529  			select {
 23530  			case log := <-logs:
 23531  				// New log arrived, parse the event and forward to the user
 23532  				event := new(IERC721Transfer)
 23533  				if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 23534  					return err
 23535  				}
 23536  				event.Raw = log
 23537  
 23538  				select {
 23539  				case sink <- event:
 23540  				case err := <-sub.Err():
 23541  					return err
 23542  				case <-quit:
 23543  					return nil
 23544  				}
 23545  			case err := <-sub.Err():
 23546  				return err
 23547  			case <-quit:
 23548  				return nil
 23549  			}
 23550  		}
 23551  	}), nil
 23552  }
 23553  
 23554  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 23555  //
 23556  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 23557  func (_IERC721 *IERC721Filterer) ParseTransfer(log types.Log) (*IERC721Transfer, error) {
 23558  	event := new(IERC721Transfer)
 23559  	if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 23560  		return nil, err
 23561  	}
 23562  	return event, nil
 23563  }
 23564  
 23565  // IERC721BridgeReceiverMetaData contains all meta data concerning the IERC721BridgeReceiver contract.
 23566  var IERC721BridgeReceiverMetaData = &bind.MetaData{
 23567  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 23568  	Sigs: map[string]string{
 23569  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
 23570  	},
 23571  }
 23572  
 23573  // IERC721BridgeReceiverABI is the input ABI used to generate the binding from.
 23574  // Deprecated: Use IERC721BridgeReceiverMetaData.ABI instead.
 23575  var IERC721BridgeReceiverABI = IERC721BridgeReceiverMetaData.ABI
 23576  
 23577  // IERC721BridgeReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 23578  const IERC721BridgeReceiverBinRuntime = ``
 23579  
 23580  // IERC721BridgeReceiverFuncSigs maps the 4-byte function signature to its string representation.
 23581  // Deprecated: Use IERC721BridgeReceiverMetaData.Sigs instead.
 23582  var IERC721BridgeReceiverFuncSigs = IERC721BridgeReceiverMetaData.Sigs
 23583  
 23584  // IERC721BridgeReceiver is an auto generated Go binding around a Klaytn contract.
 23585  type IERC721BridgeReceiver struct {
 23586  	IERC721BridgeReceiverCaller     // Read-only binding to the contract
 23587  	IERC721BridgeReceiverTransactor // Write-only binding to the contract
 23588  	IERC721BridgeReceiverFilterer   // Log filterer for contract events
 23589  }
 23590  
 23591  // IERC721BridgeReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
 23592  type IERC721BridgeReceiverCaller struct {
 23593  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23594  }
 23595  
 23596  // IERC721BridgeReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
 23597  type IERC721BridgeReceiverTransactor struct {
 23598  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23599  }
 23600  
 23601  // IERC721BridgeReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 23602  type IERC721BridgeReceiverFilterer struct {
 23603  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23604  }
 23605  
 23606  // IERC721BridgeReceiverSession is an auto generated Go binding around a Klaytn contract,
 23607  // with pre-set call and transact options.
 23608  type IERC721BridgeReceiverSession struct {
 23609  	Contract     *IERC721BridgeReceiver // Generic contract binding to set the session for
 23610  	CallOpts     bind.CallOpts          // Call options to use throughout this session
 23611  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
 23612  }
 23613  
 23614  // IERC721BridgeReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 23615  // with pre-set call options.
 23616  type IERC721BridgeReceiverCallerSession struct {
 23617  	Contract *IERC721BridgeReceiverCaller // Generic contract caller binding to set the session for
 23618  	CallOpts bind.CallOpts                // Call options to use throughout this session
 23619  }
 23620  
 23621  // IERC721BridgeReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 23622  // with pre-set transact options.
 23623  type IERC721BridgeReceiverTransactorSession struct {
 23624  	Contract     *IERC721BridgeReceiverTransactor // Generic contract transactor binding to set the session for
 23625  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
 23626  }
 23627  
 23628  // IERC721BridgeReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
 23629  type IERC721BridgeReceiverRaw struct {
 23630  	Contract *IERC721BridgeReceiver // Generic contract binding to access the raw methods on
 23631  }
 23632  
 23633  // IERC721BridgeReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 23634  type IERC721BridgeReceiverCallerRaw struct {
 23635  	Contract *IERC721BridgeReceiverCaller // Generic read-only contract binding to access the raw methods on
 23636  }
 23637  
 23638  // IERC721BridgeReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 23639  type IERC721BridgeReceiverTransactorRaw struct {
 23640  	Contract *IERC721BridgeReceiverTransactor // Generic write-only contract binding to access the raw methods on
 23641  }
 23642  
 23643  // NewIERC721BridgeReceiver creates a new instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 23644  func NewIERC721BridgeReceiver(address common.Address, backend bind.ContractBackend) (*IERC721BridgeReceiver, error) {
 23645  	contract, err := bindIERC721BridgeReceiver(address, backend, backend, backend)
 23646  	if err != nil {
 23647  		return nil, err
 23648  	}
 23649  	return &IERC721BridgeReceiver{IERC721BridgeReceiverCaller: IERC721BridgeReceiverCaller{contract: contract}, IERC721BridgeReceiverTransactor: IERC721BridgeReceiverTransactor{contract: contract}, IERC721BridgeReceiverFilterer: IERC721BridgeReceiverFilterer{contract: contract}}, nil
 23650  }
 23651  
 23652  // NewIERC721BridgeReceiverCaller creates a new read-only instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 23653  func NewIERC721BridgeReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721BridgeReceiverCaller, error) {
 23654  	contract, err := bindIERC721BridgeReceiver(address, caller, nil, nil)
 23655  	if err != nil {
 23656  		return nil, err
 23657  	}
 23658  	return &IERC721BridgeReceiverCaller{contract: contract}, nil
 23659  }
 23660  
 23661  // NewIERC721BridgeReceiverTransactor creates a new write-only instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 23662  func NewIERC721BridgeReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721BridgeReceiverTransactor, error) {
 23663  	contract, err := bindIERC721BridgeReceiver(address, nil, transactor, nil)
 23664  	if err != nil {
 23665  		return nil, err
 23666  	}
 23667  	return &IERC721BridgeReceiverTransactor{contract: contract}, nil
 23668  }
 23669  
 23670  // NewIERC721BridgeReceiverFilterer creates a new log filterer instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 23671  func NewIERC721BridgeReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721BridgeReceiverFilterer, error) {
 23672  	contract, err := bindIERC721BridgeReceiver(address, nil, nil, filterer)
 23673  	if err != nil {
 23674  		return nil, err
 23675  	}
 23676  	return &IERC721BridgeReceiverFilterer{contract: contract}, nil
 23677  }
 23678  
 23679  // bindIERC721BridgeReceiver binds a generic wrapper to an already deployed contract.
 23680  func bindIERC721BridgeReceiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23681  	parsed, err := IERC721BridgeReceiverMetaData.GetAbi()
 23682  	if err != nil {
 23683  		return nil, err
 23684  	}
 23685  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 23686  }
 23687  
 23688  // Call invokes the (constant) contract method with params as input values and
 23689  // sets the output to result. The result type might be a single field for simple
 23690  // returns, a slice of interfaces for anonymous returns and a struct for named
 23691  // returns.
 23692  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 23693  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverCaller.contract.Call(opts, result, method, params...)
 23694  }
 23695  
 23696  // Transfer initiates a plain transaction to move funds to the contract, calling
 23697  // its default method if one is available.
 23698  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23699  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverTransactor.contract.Transfer(opts)
 23700  }
 23701  
 23702  // Transact invokes the (paid) contract method with params as input values.
 23703  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23704  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverTransactor.contract.Transact(opts, method, params...)
 23705  }
 23706  
 23707  // Call invokes the (constant) contract method with params as input values and
 23708  // sets the output to result. The result type might be a single field for simple
 23709  // returns, a slice of interfaces for anonymous returns and a struct for named
 23710  // returns.
 23711  func (_IERC721BridgeReceiver *IERC721BridgeReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 23712  	return _IERC721BridgeReceiver.Contract.contract.Call(opts, result, method, params...)
 23713  }
 23714  
 23715  // Transfer initiates a plain transaction to move funds to the contract, calling
 23716  // its default method if one is available.
 23717  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23718  	return _IERC721BridgeReceiver.Contract.contract.Transfer(opts)
 23719  }
 23720  
 23721  // Transact invokes the (paid) contract method with params as input values.
 23722  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23723  	return _IERC721BridgeReceiver.Contract.contract.Transact(opts, method, params...)
 23724  }
 23725  
 23726  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 23727  //
 23728  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 23729  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 23730  	return _IERC721BridgeReceiver.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
 23731  }
 23732  
 23733  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 23734  //
 23735  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 23736  func (_IERC721BridgeReceiver *IERC721BridgeReceiverSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 23737  	return _IERC721BridgeReceiver.Contract.OnERC721Received(&_IERC721BridgeReceiver.TransactOpts, _from, _tokenId, _to, _extraData)
 23738  }
 23739  
 23740  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 23741  //
 23742  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 23743  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 23744  	return _IERC721BridgeReceiver.Contract.OnERC721Received(&_IERC721BridgeReceiver.TransactOpts, _from, _tokenId, _to, _extraData)
 23745  }
 23746  
 23747  // IERC721MetadataMetaData contains all meta data concerning the IERC721Metadata contract.
 23748  var IERC721MetadataMetaData = &bind.MetaData{
 23749  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 23750  	Sigs: map[string]string{
 23751  		"095ea7b3": "approve(address,uint256)",
 23752  		"70a08231": "balanceOf(address)",
 23753  		"081812fc": "getApproved(uint256)",
 23754  		"e985e9c5": "isApprovedForAll(address,address)",
 23755  		"06fdde03": "name()",
 23756  		"6352211e": "ownerOf(uint256)",
 23757  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 23758  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 23759  		"a22cb465": "setApprovalForAll(address,bool)",
 23760  		"01ffc9a7": "supportsInterface(bytes4)",
 23761  		"95d89b41": "symbol()",
 23762  		"c87b56dd": "tokenURI(uint256)",
 23763  		"23b872dd": "transferFrom(address,address,uint256)",
 23764  	},
 23765  }
 23766  
 23767  // IERC721MetadataABI is the input ABI used to generate the binding from.
 23768  // Deprecated: Use IERC721MetadataMetaData.ABI instead.
 23769  var IERC721MetadataABI = IERC721MetadataMetaData.ABI
 23770  
 23771  // IERC721MetadataBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 23772  const IERC721MetadataBinRuntime = ``
 23773  
 23774  // IERC721MetadataFuncSigs maps the 4-byte function signature to its string representation.
 23775  // Deprecated: Use IERC721MetadataMetaData.Sigs instead.
 23776  var IERC721MetadataFuncSigs = IERC721MetadataMetaData.Sigs
 23777  
 23778  // IERC721Metadata is an auto generated Go binding around a Klaytn contract.
 23779  type IERC721Metadata struct {
 23780  	IERC721MetadataCaller     // Read-only binding to the contract
 23781  	IERC721MetadataTransactor // Write-only binding to the contract
 23782  	IERC721MetadataFilterer   // Log filterer for contract events
 23783  }
 23784  
 23785  // IERC721MetadataCaller is an auto generated read-only Go binding around a Klaytn contract.
 23786  type IERC721MetadataCaller struct {
 23787  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23788  }
 23789  
 23790  // IERC721MetadataTransactor is an auto generated write-only Go binding around a Klaytn contract.
 23791  type IERC721MetadataTransactor struct {
 23792  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23793  }
 23794  
 23795  // IERC721MetadataFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 23796  type IERC721MetadataFilterer struct {
 23797  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23798  }
 23799  
 23800  // IERC721MetadataSession is an auto generated Go binding around a Klaytn contract,
 23801  // with pre-set call and transact options.
 23802  type IERC721MetadataSession struct {
 23803  	Contract     *IERC721Metadata  // Generic contract binding to set the session for
 23804  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 23805  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 23806  }
 23807  
 23808  // IERC721MetadataCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 23809  // with pre-set call options.
 23810  type IERC721MetadataCallerSession struct {
 23811  	Contract *IERC721MetadataCaller // Generic contract caller binding to set the session for
 23812  	CallOpts bind.CallOpts          // Call options to use throughout this session
 23813  }
 23814  
 23815  // IERC721MetadataTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 23816  // with pre-set transact options.
 23817  type IERC721MetadataTransactorSession struct {
 23818  	Contract     *IERC721MetadataTransactor // Generic contract transactor binding to set the session for
 23819  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 23820  }
 23821  
 23822  // IERC721MetadataRaw is an auto generated low-level Go binding around a Klaytn contract.
 23823  type IERC721MetadataRaw struct {
 23824  	Contract *IERC721Metadata // Generic contract binding to access the raw methods on
 23825  }
 23826  
 23827  // IERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 23828  type IERC721MetadataCallerRaw struct {
 23829  	Contract *IERC721MetadataCaller // Generic read-only contract binding to access the raw methods on
 23830  }
 23831  
 23832  // IERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 23833  type IERC721MetadataTransactorRaw struct {
 23834  	Contract *IERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on
 23835  }
 23836  
 23837  // NewIERC721Metadata creates a new instance of IERC721Metadata, bound to a specific deployed contract.
 23838  func NewIERC721Metadata(address common.Address, backend bind.ContractBackend) (*IERC721Metadata, error) {
 23839  	contract, err := bindIERC721Metadata(address, backend, backend, backend)
 23840  	if err != nil {
 23841  		return nil, err
 23842  	}
 23843  	return &IERC721Metadata{IERC721MetadataCaller: IERC721MetadataCaller{contract: contract}, IERC721MetadataTransactor: IERC721MetadataTransactor{contract: contract}, IERC721MetadataFilterer: IERC721MetadataFilterer{contract: contract}}, nil
 23844  }
 23845  
 23846  // NewIERC721MetadataCaller creates a new read-only instance of IERC721Metadata, bound to a specific deployed contract.
 23847  func NewIERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*IERC721MetadataCaller, error) {
 23848  	contract, err := bindIERC721Metadata(address, caller, nil, nil)
 23849  	if err != nil {
 23850  		return nil, err
 23851  	}
 23852  	return &IERC721MetadataCaller{contract: contract}, nil
 23853  }
 23854  
 23855  // NewIERC721MetadataTransactor creates a new write-only instance of IERC721Metadata, bound to a specific deployed contract.
 23856  func NewIERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721MetadataTransactor, error) {
 23857  	contract, err := bindIERC721Metadata(address, nil, transactor, nil)
 23858  	if err != nil {
 23859  		return nil, err
 23860  	}
 23861  	return &IERC721MetadataTransactor{contract: contract}, nil
 23862  }
 23863  
 23864  // NewIERC721MetadataFilterer creates a new log filterer instance of IERC721Metadata, bound to a specific deployed contract.
 23865  func NewIERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721MetadataFilterer, error) {
 23866  	contract, err := bindIERC721Metadata(address, nil, nil, filterer)
 23867  	if err != nil {
 23868  		return nil, err
 23869  	}
 23870  	return &IERC721MetadataFilterer{contract: contract}, nil
 23871  }
 23872  
 23873  // bindIERC721Metadata binds a generic wrapper to an already deployed contract.
 23874  func bindIERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23875  	parsed, err := IERC721MetadataMetaData.GetAbi()
 23876  	if err != nil {
 23877  		return nil, err
 23878  	}
 23879  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 23880  }
 23881  
 23882  // Call invokes the (constant) contract method with params as input values and
 23883  // sets the output to result. The result type might be a single field for simple
 23884  // returns, a slice of interfaces for anonymous returns and a struct for named
 23885  // returns.
 23886  func (_IERC721Metadata *IERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 23887  	return _IERC721Metadata.Contract.IERC721MetadataCaller.contract.Call(opts, result, method, params...)
 23888  }
 23889  
 23890  // Transfer initiates a plain transaction to move funds to the contract, calling
 23891  // its default method if one is available.
 23892  func (_IERC721Metadata *IERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23893  	return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transfer(opts)
 23894  }
 23895  
 23896  // Transact invokes the (paid) contract method with params as input values.
 23897  func (_IERC721Metadata *IERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23898  	return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transact(opts, method, params...)
 23899  }
 23900  
 23901  // Call invokes the (constant) contract method with params as input values and
 23902  // sets the output to result. The result type might be a single field for simple
 23903  // returns, a slice of interfaces for anonymous returns and a struct for named
 23904  // returns.
 23905  func (_IERC721Metadata *IERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 23906  	return _IERC721Metadata.Contract.contract.Call(opts, result, method, params...)
 23907  }
 23908  
 23909  // Transfer initiates a plain transaction to move funds to the contract, calling
 23910  // its default method if one is available.
 23911  func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23912  	return _IERC721Metadata.Contract.contract.Transfer(opts)
 23913  }
 23914  
 23915  // Transact invokes the (paid) contract method with params as input values.
 23916  func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23917  	return _IERC721Metadata.Contract.contract.Transact(opts, method, params...)
 23918  }
 23919  
 23920  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 23921  //
 23922  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 23923  func (_IERC721Metadata *IERC721MetadataCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 23924  	var out []interface{}
 23925  	err := _IERC721Metadata.contract.Call(opts, &out, "balanceOf", owner)
 23926  
 23927  	if err != nil {
 23928  		return *new(*big.Int), err
 23929  	}
 23930  
 23931  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 23932  
 23933  	return out0, err
 23934  
 23935  }
 23936  
 23937  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 23938  //
 23939  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 23940  func (_IERC721Metadata *IERC721MetadataSession) BalanceOf(owner common.Address) (*big.Int, error) {
 23941  	return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, owner)
 23942  }
 23943  
 23944  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 23945  //
 23946  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 23947  func (_IERC721Metadata *IERC721MetadataCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 23948  	return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, owner)
 23949  }
 23950  
 23951  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 23952  //
 23953  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 23954  func (_IERC721Metadata *IERC721MetadataCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 23955  	var out []interface{}
 23956  	err := _IERC721Metadata.contract.Call(opts, &out, "getApproved", tokenId)
 23957  
 23958  	if err != nil {
 23959  		return *new(common.Address), err
 23960  	}
 23961  
 23962  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 23963  
 23964  	return out0, err
 23965  
 23966  }
 23967  
 23968  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 23969  //
 23970  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 23971  func (_IERC721Metadata *IERC721MetadataSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 23972  	return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, tokenId)
 23973  }
 23974  
 23975  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 23976  //
 23977  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 23978  func (_IERC721Metadata *IERC721MetadataCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 23979  	return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, tokenId)
 23980  }
 23981  
 23982  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 23983  //
 23984  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 23985  func (_IERC721Metadata *IERC721MetadataCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 23986  	var out []interface{}
 23987  	err := _IERC721Metadata.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 23988  
 23989  	if err != nil {
 23990  		return *new(bool), err
 23991  	}
 23992  
 23993  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 23994  
 23995  	return out0, err
 23996  
 23997  }
 23998  
 23999  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 24000  //
 24001  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 24002  func (_IERC721Metadata *IERC721MetadataSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 24003  	return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, owner, operator)
 24004  }
 24005  
 24006  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 24007  //
 24008  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 24009  func (_IERC721Metadata *IERC721MetadataCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 24010  	return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, owner, operator)
 24011  }
 24012  
 24013  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 24014  //
 24015  // Solidity: function name() view returns(string)
 24016  func (_IERC721Metadata *IERC721MetadataCaller) Name(opts *bind.CallOpts) (string, error) {
 24017  	var out []interface{}
 24018  	err := _IERC721Metadata.contract.Call(opts, &out, "name")
 24019  
 24020  	if err != nil {
 24021  		return *new(string), err
 24022  	}
 24023  
 24024  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 24025  
 24026  	return out0, err
 24027  
 24028  }
 24029  
 24030  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 24031  //
 24032  // Solidity: function name() view returns(string)
 24033  func (_IERC721Metadata *IERC721MetadataSession) Name() (string, error) {
 24034  	return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts)
 24035  }
 24036  
 24037  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 24038  //
 24039  // Solidity: function name() view returns(string)
 24040  func (_IERC721Metadata *IERC721MetadataCallerSession) Name() (string, error) {
 24041  	return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts)
 24042  }
 24043  
 24044  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 24045  //
 24046  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 24047  func (_IERC721Metadata *IERC721MetadataCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 24048  	var out []interface{}
 24049  	err := _IERC721Metadata.contract.Call(opts, &out, "ownerOf", tokenId)
 24050  
 24051  	if err != nil {
 24052  		return *new(common.Address), err
 24053  	}
 24054  
 24055  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 24056  
 24057  	return out0, err
 24058  
 24059  }
 24060  
 24061  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 24062  //
 24063  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 24064  func (_IERC721Metadata *IERC721MetadataSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 24065  	return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, tokenId)
 24066  }
 24067  
 24068  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 24069  //
 24070  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 24071  func (_IERC721Metadata *IERC721MetadataCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 24072  	return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, tokenId)
 24073  }
 24074  
 24075  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 24076  //
 24077  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 24078  func (_IERC721Metadata *IERC721MetadataCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 24079  	var out []interface{}
 24080  	err := _IERC721Metadata.contract.Call(opts, &out, "supportsInterface", interfaceId)
 24081  
 24082  	if err != nil {
 24083  		return *new(bool), err
 24084  	}
 24085  
 24086  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 24087  
 24088  	return out0, err
 24089  
 24090  }
 24091  
 24092  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 24093  //
 24094  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 24095  func (_IERC721Metadata *IERC721MetadataSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 24096  	return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceId)
 24097  }
 24098  
 24099  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 24100  //
 24101  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 24102  func (_IERC721Metadata *IERC721MetadataCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 24103  	return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceId)
 24104  }
 24105  
 24106  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 24107  //
 24108  // Solidity: function symbol() view returns(string)
 24109  func (_IERC721Metadata *IERC721MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) {
 24110  	var out []interface{}
 24111  	err := _IERC721Metadata.contract.Call(opts, &out, "symbol")
 24112  
 24113  	if err != nil {
 24114  		return *new(string), err
 24115  	}
 24116  
 24117  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 24118  
 24119  	return out0, err
 24120  
 24121  }
 24122  
 24123  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 24124  //
 24125  // Solidity: function symbol() view returns(string)
 24126  func (_IERC721Metadata *IERC721MetadataSession) Symbol() (string, error) {
 24127  	return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts)
 24128  }
 24129  
 24130  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 24131  //
 24132  // Solidity: function symbol() view returns(string)
 24133  func (_IERC721Metadata *IERC721MetadataCallerSession) Symbol() (string, error) {
 24134  	return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts)
 24135  }
 24136  
 24137  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 24138  //
 24139  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 24140  func (_IERC721Metadata *IERC721MetadataCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
 24141  	var out []interface{}
 24142  	err := _IERC721Metadata.contract.Call(opts, &out, "tokenURI", tokenId)
 24143  
 24144  	if err != nil {
 24145  		return *new(string), err
 24146  	}
 24147  
 24148  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 24149  
 24150  	return out0, err
 24151  
 24152  }
 24153  
 24154  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 24155  //
 24156  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 24157  func (_IERC721Metadata *IERC721MetadataSession) TokenURI(tokenId *big.Int) (string, error) {
 24158  	return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, tokenId)
 24159  }
 24160  
 24161  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 24162  //
 24163  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 24164  func (_IERC721Metadata *IERC721MetadataCallerSession) TokenURI(tokenId *big.Int) (string, error) {
 24165  	return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, tokenId)
 24166  }
 24167  
 24168  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 24169  //
 24170  // Solidity: function approve(address to, uint256 tokenId) returns()
 24171  func (_IERC721Metadata *IERC721MetadataTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24172  	return _IERC721Metadata.contract.Transact(opts, "approve", to, tokenId)
 24173  }
 24174  
 24175  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 24176  //
 24177  // Solidity: function approve(address to, uint256 tokenId) returns()
 24178  func (_IERC721Metadata *IERC721MetadataSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24179  	return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, to, tokenId)
 24180  }
 24181  
 24182  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 24183  //
 24184  // Solidity: function approve(address to, uint256 tokenId) returns()
 24185  func (_IERC721Metadata *IERC721MetadataTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24186  	return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, to, tokenId)
 24187  }
 24188  
 24189  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 24190  //
 24191  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 24192  func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24193  	return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 24194  }
 24195  
 24196  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 24197  //
 24198  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 24199  func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24200  	return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 24201  }
 24202  
 24203  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 24204  //
 24205  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 24206  func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24207  	return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 24208  }
 24209  
 24210  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 24211  //
 24212  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 24213  func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 24214  	return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
 24215  }
 24216  
 24217  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 24218  //
 24219  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 24220  func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 24221  	return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, from, to, tokenId, data)
 24222  }
 24223  
 24224  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 24225  //
 24226  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 24227  func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 24228  	return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, from, to, tokenId, data)
 24229  }
 24230  
 24231  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 24232  //
 24233  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 24234  func (_IERC721Metadata *IERC721MetadataTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) {
 24235  	return _IERC721Metadata.contract.Transact(opts, "setApprovalForAll", operator, _approved)
 24236  }
 24237  
 24238  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 24239  //
 24240  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 24241  func (_IERC721Metadata *IERC721MetadataSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 24242  	return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, operator, _approved)
 24243  }
 24244  
 24245  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 24246  //
 24247  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 24248  func (_IERC721Metadata *IERC721MetadataTransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 24249  	return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, operator, _approved)
 24250  }
 24251  
 24252  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 24253  //
 24254  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 24255  func (_IERC721Metadata *IERC721MetadataTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24256  	return _IERC721Metadata.contract.Transact(opts, "transferFrom", from, to, tokenId)
 24257  }
 24258  
 24259  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 24260  //
 24261  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 24262  func (_IERC721Metadata *IERC721MetadataSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24263  	return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 24264  }
 24265  
 24266  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 24267  //
 24268  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 24269  func (_IERC721Metadata *IERC721MetadataTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 24270  	return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 24271  }
 24272  
 24273  // IERC721MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721Metadata contract.
 24274  type IERC721MetadataApprovalIterator struct {
 24275  	Event *IERC721MetadataApproval // Event containing the contract specifics and raw log
 24276  
 24277  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24278  	event    string              // Event name to use for unpacking event data
 24279  
 24280  	logs chan types.Log      // Log channel receiving the found contract events
 24281  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24282  	done bool                // Whether the subscription completed delivering logs
 24283  	fail error               // Occurred error to stop iteration
 24284  }
 24285  
 24286  // Next advances the iterator to the subsequent event, returning whether there
 24287  // are any more events found. In case of a retrieval or parsing error, false is
 24288  // returned and Error() can be queried for the exact failure.
 24289  func (it *IERC721MetadataApprovalIterator) Next() bool {
 24290  	// If the iterator failed, stop iterating
 24291  	if it.fail != nil {
 24292  		return false
 24293  	}
 24294  	// If the iterator completed, deliver directly whatever's available
 24295  	if it.done {
 24296  		select {
 24297  		case log := <-it.logs:
 24298  			it.Event = new(IERC721MetadataApproval)
 24299  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24300  				it.fail = err
 24301  				return false
 24302  			}
 24303  			it.Event.Raw = log
 24304  			return true
 24305  
 24306  		default:
 24307  			return false
 24308  		}
 24309  	}
 24310  	// Iterator still in progress, wait for either a data or an error event
 24311  	select {
 24312  	case log := <-it.logs:
 24313  		it.Event = new(IERC721MetadataApproval)
 24314  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24315  			it.fail = err
 24316  			return false
 24317  		}
 24318  		it.Event.Raw = log
 24319  		return true
 24320  
 24321  	case err := <-it.sub.Err():
 24322  		it.done = true
 24323  		it.fail = err
 24324  		return it.Next()
 24325  	}
 24326  }
 24327  
 24328  // Error returns any retrieval or parsing error occurred during filtering.
 24329  func (it *IERC721MetadataApprovalIterator) Error() error {
 24330  	return it.fail
 24331  }
 24332  
 24333  // Close terminates the iteration process, releasing any pending underlying
 24334  // resources.
 24335  func (it *IERC721MetadataApprovalIterator) Close() error {
 24336  	it.sub.Unsubscribe()
 24337  	return nil
 24338  }
 24339  
 24340  // IERC721MetadataApproval represents a Approval event raised by the IERC721Metadata contract.
 24341  type IERC721MetadataApproval struct {
 24342  	Owner    common.Address
 24343  	Approved common.Address
 24344  	TokenId  *big.Int
 24345  	Raw      types.Log // Blockchain specific contextual infos
 24346  }
 24347  
 24348  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 24349  //
 24350  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 24351  func (_IERC721Metadata *IERC721MetadataFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721MetadataApprovalIterator, error) {
 24352  
 24353  	var ownerRule []interface{}
 24354  	for _, ownerItem := range owner {
 24355  		ownerRule = append(ownerRule, ownerItem)
 24356  	}
 24357  	var approvedRule []interface{}
 24358  	for _, approvedItem := range approved {
 24359  		approvedRule = append(approvedRule, approvedItem)
 24360  	}
 24361  	var tokenIdRule []interface{}
 24362  	for _, tokenIdItem := range tokenId {
 24363  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24364  	}
 24365  
 24366  	logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 24367  	if err != nil {
 24368  		return nil, err
 24369  	}
 24370  	return &IERC721MetadataApprovalIterator{contract: _IERC721Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil
 24371  }
 24372  
 24373  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 24374  //
 24375  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 24376  func (_IERC721Metadata *IERC721MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 24377  
 24378  	var ownerRule []interface{}
 24379  	for _, ownerItem := range owner {
 24380  		ownerRule = append(ownerRule, ownerItem)
 24381  	}
 24382  	var approvedRule []interface{}
 24383  	for _, approvedItem := range approved {
 24384  		approvedRule = append(approvedRule, approvedItem)
 24385  	}
 24386  	var tokenIdRule []interface{}
 24387  	for _, tokenIdItem := range tokenId {
 24388  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24389  	}
 24390  
 24391  	logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 24392  	if err != nil {
 24393  		return nil, err
 24394  	}
 24395  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24396  		defer sub.Unsubscribe()
 24397  		for {
 24398  			select {
 24399  			case log := <-logs:
 24400  				// New log arrived, parse the event and forward to the user
 24401  				event := new(IERC721MetadataApproval)
 24402  				if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 24403  					return err
 24404  				}
 24405  				event.Raw = log
 24406  
 24407  				select {
 24408  				case sink <- event:
 24409  				case err := <-sub.Err():
 24410  					return err
 24411  				case <-quit:
 24412  					return nil
 24413  				}
 24414  			case err := <-sub.Err():
 24415  				return err
 24416  			case <-quit:
 24417  				return nil
 24418  			}
 24419  		}
 24420  	}), nil
 24421  }
 24422  
 24423  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 24424  //
 24425  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 24426  func (_IERC721Metadata *IERC721MetadataFilterer) ParseApproval(log types.Log) (*IERC721MetadataApproval, error) {
 24427  	event := new(IERC721MetadataApproval)
 24428  	if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 24429  		return nil, err
 24430  	}
 24431  	return event, nil
 24432  }
 24433  
 24434  // IERC721MetadataApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721Metadata contract.
 24435  type IERC721MetadataApprovalForAllIterator struct {
 24436  	Event *IERC721MetadataApprovalForAll // Event containing the contract specifics and raw log
 24437  
 24438  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24439  	event    string              // Event name to use for unpacking event data
 24440  
 24441  	logs chan types.Log      // Log channel receiving the found contract events
 24442  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24443  	done bool                // Whether the subscription completed delivering logs
 24444  	fail error               // Occurred error to stop iteration
 24445  }
 24446  
 24447  // Next advances the iterator to the subsequent event, returning whether there
 24448  // are any more events found. In case of a retrieval or parsing error, false is
 24449  // returned and Error() can be queried for the exact failure.
 24450  func (it *IERC721MetadataApprovalForAllIterator) Next() bool {
 24451  	// If the iterator failed, stop iterating
 24452  	if it.fail != nil {
 24453  		return false
 24454  	}
 24455  	// If the iterator completed, deliver directly whatever's available
 24456  	if it.done {
 24457  		select {
 24458  		case log := <-it.logs:
 24459  			it.Event = new(IERC721MetadataApprovalForAll)
 24460  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24461  				it.fail = err
 24462  				return false
 24463  			}
 24464  			it.Event.Raw = log
 24465  			return true
 24466  
 24467  		default:
 24468  			return false
 24469  		}
 24470  	}
 24471  	// Iterator still in progress, wait for either a data or an error event
 24472  	select {
 24473  	case log := <-it.logs:
 24474  		it.Event = new(IERC721MetadataApprovalForAll)
 24475  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24476  			it.fail = err
 24477  			return false
 24478  		}
 24479  		it.Event.Raw = log
 24480  		return true
 24481  
 24482  	case err := <-it.sub.Err():
 24483  		it.done = true
 24484  		it.fail = err
 24485  		return it.Next()
 24486  	}
 24487  }
 24488  
 24489  // Error returns any retrieval or parsing error occurred during filtering.
 24490  func (it *IERC721MetadataApprovalForAllIterator) Error() error {
 24491  	return it.fail
 24492  }
 24493  
 24494  // Close terminates the iteration process, releasing any pending underlying
 24495  // resources.
 24496  func (it *IERC721MetadataApprovalForAllIterator) Close() error {
 24497  	it.sub.Unsubscribe()
 24498  	return nil
 24499  }
 24500  
 24501  // IERC721MetadataApprovalForAll represents a ApprovalForAll event raised by the IERC721Metadata contract.
 24502  type IERC721MetadataApprovalForAll struct {
 24503  	Owner    common.Address
 24504  	Operator common.Address
 24505  	Approved bool
 24506  	Raw      types.Log // Blockchain specific contextual infos
 24507  }
 24508  
 24509  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 24510  //
 24511  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 24512  func (_IERC721Metadata *IERC721MetadataFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721MetadataApprovalForAllIterator, error) {
 24513  
 24514  	var ownerRule []interface{}
 24515  	for _, ownerItem := range owner {
 24516  		ownerRule = append(ownerRule, ownerItem)
 24517  	}
 24518  	var operatorRule []interface{}
 24519  	for _, operatorItem := range operator {
 24520  		operatorRule = append(operatorRule, operatorItem)
 24521  	}
 24522  
 24523  	logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 24524  	if err != nil {
 24525  		return nil, err
 24526  	}
 24527  	return &IERC721MetadataApprovalForAllIterator{contract: _IERC721Metadata.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 24528  }
 24529  
 24530  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 24531  //
 24532  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 24533  func (_IERC721Metadata *IERC721MetadataFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 24534  
 24535  	var ownerRule []interface{}
 24536  	for _, ownerItem := range owner {
 24537  		ownerRule = append(ownerRule, ownerItem)
 24538  	}
 24539  	var operatorRule []interface{}
 24540  	for _, operatorItem := range operator {
 24541  		operatorRule = append(operatorRule, operatorItem)
 24542  	}
 24543  
 24544  	logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 24545  	if err != nil {
 24546  		return nil, err
 24547  	}
 24548  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24549  		defer sub.Unsubscribe()
 24550  		for {
 24551  			select {
 24552  			case log := <-logs:
 24553  				// New log arrived, parse the event and forward to the user
 24554  				event := new(IERC721MetadataApprovalForAll)
 24555  				if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 24556  					return err
 24557  				}
 24558  				event.Raw = log
 24559  
 24560  				select {
 24561  				case sink <- event:
 24562  				case err := <-sub.Err():
 24563  					return err
 24564  				case <-quit:
 24565  					return nil
 24566  				}
 24567  			case err := <-sub.Err():
 24568  				return err
 24569  			case <-quit:
 24570  				return nil
 24571  			}
 24572  		}
 24573  	}), nil
 24574  }
 24575  
 24576  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 24577  //
 24578  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 24579  func (_IERC721Metadata *IERC721MetadataFilterer) ParseApprovalForAll(log types.Log) (*IERC721MetadataApprovalForAll, error) {
 24580  	event := new(IERC721MetadataApprovalForAll)
 24581  	if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 24582  		return nil, err
 24583  	}
 24584  	return event, nil
 24585  }
 24586  
 24587  // IERC721MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721Metadata contract.
 24588  type IERC721MetadataTransferIterator struct {
 24589  	Event *IERC721MetadataTransfer // Event containing the contract specifics and raw log
 24590  
 24591  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24592  	event    string              // Event name to use for unpacking event data
 24593  
 24594  	logs chan types.Log      // Log channel receiving the found contract events
 24595  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24596  	done bool                // Whether the subscription completed delivering logs
 24597  	fail error               // Occurred error to stop iteration
 24598  }
 24599  
 24600  // Next advances the iterator to the subsequent event, returning whether there
 24601  // are any more events found. In case of a retrieval or parsing error, false is
 24602  // returned and Error() can be queried for the exact failure.
 24603  func (it *IERC721MetadataTransferIterator) Next() bool {
 24604  	// If the iterator failed, stop iterating
 24605  	if it.fail != nil {
 24606  		return false
 24607  	}
 24608  	// If the iterator completed, deliver directly whatever's available
 24609  	if it.done {
 24610  		select {
 24611  		case log := <-it.logs:
 24612  			it.Event = new(IERC721MetadataTransfer)
 24613  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24614  				it.fail = err
 24615  				return false
 24616  			}
 24617  			it.Event.Raw = log
 24618  			return true
 24619  
 24620  		default:
 24621  			return false
 24622  		}
 24623  	}
 24624  	// Iterator still in progress, wait for either a data or an error event
 24625  	select {
 24626  	case log := <-it.logs:
 24627  		it.Event = new(IERC721MetadataTransfer)
 24628  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24629  			it.fail = err
 24630  			return false
 24631  		}
 24632  		it.Event.Raw = log
 24633  		return true
 24634  
 24635  	case err := <-it.sub.Err():
 24636  		it.done = true
 24637  		it.fail = err
 24638  		return it.Next()
 24639  	}
 24640  }
 24641  
 24642  // Error returns any retrieval or parsing error occurred during filtering.
 24643  func (it *IERC721MetadataTransferIterator) Error() error {
 24644  	return it.fail
 24645  }
 24646  
 24647  // Close terminates the iteration process, releasing any pending underlying
 24648  // resources.
 24649  func (it *IERC721MetadataTransferIterator) Close() error {
 24650  	it.sub.Unsubscribe()
 24651  	return nil
 24652  }
 24653  
 24654  // IERC721MetadataTransfer represents a Transfer event raised by the IERC721Metadata contract.
 24655  type IERC721MetadataTransfer struct {
 24656  	From    common.Address
 24657  	To      common.Address
 24658  	TokenId *big.Int
 24659  	Raw     types.Log // Blockchain specific contextual infos
 24660  }
 24661  
 24662  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 24663  //
 24664  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 24665  func (_IERC721Metadata *IERC721MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721MetadataTransferIterator, error) {
 24666  
 24667  	var fromRule []interface{}
 24668  	for _, fromItem := range from {
 24669  		fromRule = append(fromRule, fromItem)
 24670  	}
 24671  	var toRule []interface{}
 24672  	for _, toItem := range to {
 24673  		toRule = append(toRule, toItem)
 24674  	}
 24675  	var tokenIdRule []interface{}
 24676  	for _, tokenIdItem := range tokenId {
 24677  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24678  	}
 24679  
 24680  	logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 24681  	if err != nil {
 24682  		return nil, err
 24683  	}
 24684  	return &IERC721MetadataTransferIterator{contract: _IERC721Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil
 24685  }
 24686  
 24687  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 24688  //
 24689  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 24690  func (_IERC721Metadata *IERC721MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721MetadataTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 24691  
 24692  	var fromRule []interface{}
 24693  	for _, fromItem := range from {
 24694  		fromRule = append(fromRule, fromItem)
 24695  	}
 24696  	var toRule []interface{}
 24697  	for _, toItem := range to {
 24698  		toRule = append(toRule, toItem)
 24699  	}
 24700  	var tokenIdRule []interface{}
 24701  	for _, tokenIdItem := range tokenId {
 24702  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24703  	}
 24704  
 24705  	logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 24706  	if err != nil {
 24707  		return nil, err
 24708  	}
 24709  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24710  		defer sub.Unsubscribe()
 24711  		for {
 24712  			select {
 24713  			case log := <-logs:
 24714  				// New log arrived, parse the event and forward to the user
 24715  				event := new(IERC721MetadataTransfer)
 24716  				if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 24717  					return err
 24718  				}
 24719  				event.Raw = log
 24720  
 24721  				select {
 24722  				case sink <- event:
 24723  				case err := <-sub.Err():
 24724  					return err
 24725  				case <-quit:
 24726  					return nil
 24727  				}
 24728  			case err := <-sub.Err():
 24729  				return err
 24730  			case <-quit:
 24731  				return nil
 24732  			}
 24733  		}
 24734  	}), nil
 24735  }
 24736  
 24737  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 24738  //
 24739  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 24740  func (_IERC721Metadata *IERC721MetadataFilterer) ParseTransfer(log types.Log) (*IERC721MetadataTransfer, error) {
 24741  	event := new(IERC721MetadataTransfer)
 24742  	if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 24743  		return nil, err
 24744  	}
 24745  	return event, nil
 24746  }
 24747  
 24748  // IERC721ReceiverMetaData contains all meta data concerning the IERC721Receiver contract.
 24749  var IERC721ReceiverMetaData = &bind.MetaData{
 24750  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 24751  	Sigs: map[string]string{
 24752  		"150b7a02": "onERC721Received(address,address,uint256,bytes)",
 24753  	},
 24754  }
 24755  
 24756  // IERC721ReceiverABI is the input ABI used to generate the binding from.
 24757  // Deprecated: Use IERC721ReceiverMetaData.ABI instead.
 24758  var IERC721ReceiverABI = IERC721ReceiverMetaData.ABI
 24759  
 24760  // IERC721ReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 24761  const IERC721ReceiverBinRuntime = ``
 24762  
 24763  // IERC721ReceiverFuncSigs maps the 4-byte function signature to its string representation.
 24764  // Deprecated: Use IERC721ReceiverMetaData.Sigs instead.
 24765  var IERC721ReceiverFuncSigs = IERC721ReceiverMetaData.Sigs
 24766  
 24767  // IERC721Receiver is an auto generated Go binding around a Klaytn contract.
 24768  type IERC721Receiver struct {
 24769  	IERC721ReceiverCaller     // Read-only binding to the contract
 24770  	IERC721ReceiverTransactor // Write-only binding to the contract
 24771  	IERC721ReceiverFilterer   // Log filterer for contract events
 24772  }
 24773  
 24774  // IERC721ReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
 24775  type IERC721ReceiverCaller struct {
 24776  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24777  }
 24778  
 24779  // IERC721ReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
 24780  type IERC721ReceiverTransactor struct {
 24781  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24782  }
 24783  
 24784  // IERC721ReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 24785  type IERC721ReceiverFilterer struct {
 24786  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24787  }
 24788  
 24789  // IERC721ReceiverSession is an auto generated Go binding around a Klaytn contract,
 24790  // with pre-set call and transact options.
 24791  type IERC721ReceiverSession struct {
 24792  	Contract     *IERC721Receiver  // Generic contract binding to set the session for
 24793  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 24794  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 24795  }
 24796  
 24797  // IERC721ReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 24798  // with pre-set call options.
 24799  type IERC721ReceiverCallerSession struct {
 24800  	Contract *IERC721ReceiverCaller // Generic contract caller binding to set the session for
 24801  	CallOpts bind.CallOpts          // Call options to use throughout this session
 24802  }
 24803  
 24804  // IERC721ReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 24805  // with pre-set transact options.
 24806  type IERC721ReceiverTransactorSession struct {
 24807  	Contract     *IERC721ReceiverTransactor // Generic contract transactor binding to set the session for
 24808  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 24809  }
 24810  
 24811  // IERC721ReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
 24812  type IERC721ReceiverRaw struct {
 24813  	Contract *IERC721Receiver // Generic contract binding to access the raw methods on
 24814  }
 24815  
 24816  // IERC721ReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 24817  type IERC721ReceiverCallerRaw struct {
 24818  	Contract *IERC721ReceiverCaller // Generic read-only contract binding to access the raw methods on
 24819  }
 24820  
 24821  // IERC721ReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 24822  type IERC721ReceiverTransactorRaw struct {
 24823  	Contract *IERC721ReceiverTransactor // Generic write-only contract binding to access the raw methods on
 24824  }
 24825  
 24826  // NewIERC721Receiver creates a new instance of IERC721Receiver, bound to a specific deployed contract.
 24827  func NewIERC721Receiver(address common.Address, backend bind.ContractBackend) (*IERC721Receiver, error) {
 24828  	contract, err := bindIERC721Receiver(address, backend, backend, backend)
 24829  	if err != nil {
 24830  		return nil, err
 24831  	}
 24832  	return &IERC721Receiver{IERC721ReceiverCaller: IERC721ReceiverCaller{contract: contract}, IERC721ReceiverTransactor: IERC721ReceiverTransactor{contract: contract}, IERC721ReceiverFilterer: IERC721ReceiverFilterer{contract: contract}}, nil
 24833  }
 24834  
 24835  // NewIERC721ReceiverCaller creates a new read-only instance of IERC721Receiver, bound to a specific deployed contract.
 24836  func NewIERC721ReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721ReceiverCaller, error) {
 24837  	contract, err := bindIERC721Receiver(address, caller, nil, nil)
 24838  	if err != nil {
 24839  		return nil, err
 24840  	}
 24841  	return &IERC721ReceiverCaller{contract: contract}, nil
 24842  }
 24843  
 24844  // NewIERC721ReceiverTransactor creates a new write-only instance of IERC721Receiver, bound to a specific deployed contract.
 24845  func NewIERC721ReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721ReceiverTransactor, error) {
 24846  	contract, err := bindIERC721Receiver(address, nil, transactor, nil)
 24847  	if err != nil {
 24848  		return nil, err
 24849  	}
 24850  	return &IERC721ReceiverTransactor{contract: contract}, nil
 24851  }
 24852  
 24853  // NewIERC721ReceiverFilterer creates a new log filterer instance of IERC721Receiver, bound to a specific deployed contract.
 24854  func NewIERC721ReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721ReceiverFilterer, error) {
 24855  	contract, err := bindIERC721Receiver(address, nil, nil, filterer)
 24856  	if err != nil {
 24857  		return nil, err
 24858  	}
 24859  	return &IERC721ReceiverFilterer{contract: contract}, nil
 24860  }
 24861  
 24862  // bindIERC721Receiver binds a generic wrapper to an already deployed contract.
 24863  func bindIERC721Receiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 24864  	parsed, err := IERC721ReceiverMetaData.GetAbi()
 24865  	if err != nil {
 24866  		return nil, err
 24867  	}
 24868  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 24869  }
 24870  
 24871  // Call invokes the (constant) contract method with params as input values and
 24872  // sets the output to result. The result type might be a single field for simple
 24873  // returns, a slice of interfaces for anonymous returns and a struct for named
 24874  // returns.
 24875  func (_IERC721Receiver *IERC721ReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 24876  	return _IERC721Receiver.Contract.IERC721ReceiverCaller.contract.Call(opts, result, method, params...)
 24877  }
 24878  
 24879  // Transfer initiates a plain transaction to move funds to the contract, calling
 24880  // its default method if one is available.
 24881  func (_IERC721Receiver *IERC721ReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 24882  	return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transfer(opts)
 24883  }
 24884  
 24885  // Transact invokes the (paid) contract method with params as input values.
 24886  func (_IERC721Receiver *IERC721ReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 24887  	return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transact(opts, method, params...)
 24888  }
 24889  
 24890  // Call invokes the (constant) contract method with params as input values and
 24891  // sets the output to result. The result type might be a single field for simple
 24892  // returns, a slice of interfaces for anonymous returns and a struct for named
 24893  // returns.
 24894  func (_IERC721Receiver *IERC721ReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 24895  	return _IERC721Receiver.Contract.contract.Call(opts, result, method, params...)
 24896  }
 24897  
 24898  // Transfer initiates a plain transaction to move funds to the contract, calling
 24899  // its default method if one is available.
 24900  func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 24901  	return _IERC721Receiver.Contract.contract.Transfer(opts)
 24902  }
 24903  
 24904  // Transact invokes the (paid) contract method with params as input values.
 24905  func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 24906  	return _IERC721Receiver.Contract.contract.Transact(opts, method, params...)
 24907  }
 24908  
 24909  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
 24910  //
 24911  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
 24912  func (_IERC721Receiver *IERC721ReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 24913  	return _IERC721Receiver.contract.Transact(opts, "onERC721Received", operator, from, tokenId, data)
 24914  }
 24915  
 24916  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
 24917  //
 24918  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
 24919  func (_IERC721Receiver *IERC721ReceiverSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 24920  	return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data)
 24921  }
 24922  
 24923  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
 24924  //
 24925  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
 24926  func (_IERC721Receiver *IERC721ReceiverTransactorSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 24927  	return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data)
 24928  }
 24929  
 24930  // MinterRoleMetaData contains all meta data concerning the MinterRole contract.
 24931  var MinterRoleMetaData = &bind.MetaData{
 24932  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"}]",
 24933  	Sigs: map[string]string{
 24934  		"983b2d56": "addMinter(address)",
 24935  		"aa271e1a": "isMinter(address)",
 24936  		"98650275": "renounceMinter()",
 24937  	},
 24938  }
 24939  
 24940  // MinterRoleABI is the input ABI used to generate the binding from.
 24941  // Deprecated: Use MinterRoleMetaData.ABI instead.
 24942  var MinterRoleABI = MinterRoleMetaData.ABI
 24943  
 24944  // MinterRoleBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 24945  const MinterRoleBinRuntime = ``
 24946  
 24947  // MinterRoleFuncSigs maps the 4-byte function signature to its string representation.
 24948  // Deprecated: Use MinterRoleMetaData.Sigs instead.
 24949  var MinterRoleFuncSigs = MinterRoleMetaData.Sigs
 24950  
 24951  // MinterRole is an auto generated Go binding around a Klaytn contract.
 24952  type MinterRole struct {
 24953  	MinterRoleCaller     // Read-only binding to the contract
 24954  	MinterRoleTransactor // Write-only binding to the contract
 24955  	MinterRoleFilterer   // Log filterer for contract events
 24956  }
 24957  
 24958  // MinterRoleCaller is an auto generated read-only Go binding around a Klaytn contract.
 24959  type MinterRoleCaller struct {
 24960  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24961  }
 24962  
 24963  // MinterRoleTransactor is an auto generated write-only Go binding around a Klaytn contract.
 24964  type MinterRoleTransactor struct {
 24965  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24966  }
 24967  
 24968  // MinterRoleFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 24969  type MinterRoleFilterer struct {
 24970  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24971  }
 24972  
 24973  // MinterRoleSession is an auto generated Go binding around a Klaytn contract,
 24974  // with pre-set call and transact options.
 24975  type MinterRoleSession struct {
 24976  	Contract     *MinterRole       // Generic contract binding to set the session for
 24977  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 24978  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 24979  }
 24980  
 24981  // MinterRoleCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 24982  // with pre-set call options.
 24983  type MinterRoleCallerSession struct {
 24984  	Contract *MinterRoleCaller // Generic contract caller binding to set the session for
 24985  	CallOpts bind.CallOpts     // Call options to use throughout this session
 24986  }
 24987  
 24988  // MinterRoleTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 24989  // with pre-set transact options.
 24990  type MinterRoleTransactorSession struct {
 24991  	Contract     *MinterRoleTransactor // Generic contract transactor binding to set the session for
 24992  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 24993  }
 24994  
 24995  // MinterRoleRaw is an auto generated low-level Go binding around a Klaytn contract.
 24996  type MinterRoleRaw struct {
 24997  	Contract *MinterRole // Generic contract binding to access the raw methods on
 24998  }
 24999  
 25000  // MinterRoleCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 25001  type MinterRoleCallerRaw struct {
 25002  	Contract *MinterRoleCaller // Generic read-only contract binding to access the raw methods on
 25003  }
 25004  
 25005  // MinterRoleTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 25006  type MinterRoleTransactorRaw struct {
 25007  	Contract *MinterRoleTransactor // Generic write-only contract binding to access the raw methods on
 25008  }
 25009  
 25010  // NewMinterRole creates a new instance of MinterRole, bound to a specific deployed contract.
 25011  func NewMinterRole(address common.Address, backend bind.ContractBackend) (*MinterRole, error) {
 25012  	contract, err := bindMinterRole(address, backend, backend, backend)
 25013  	if err != nil {
 25014  		return nil, err
 25015  	}
 25016  	return &MinterRole{MinterRoleCaller: MinterRoleCaller{contract: contract}, MinterRoleTransactor: MinterRoleTransactor{contract: contract}, MinterRoleFilterer: MinterRoleFilterer{contract: contract}}, nil
 25017  }
 25018  
 25019  // NewMinterRoleCaller creates a new read-only instance of MinterRole, bound to a specific deployed contract.
 25020  func NewMinterRoleCaller(address common.Address, caller bind.ContractCaller) (*MinterRoleCaller, error) {
 25021  	contract, err := bindMinterRole(address, caller, nil, nil)
 25022  	if err != nil {
 25023  		return nil, err
 25024  	}
 25025  	return &MinterRoleCaller{contract: contract}, nil
 25026  }
 25027  
 25028  // NewMinterRoleTransactor creates a new write-only instance of MinterRole, bound to a specific deployed contract.
 25029  func NewMinterRoleTransactor(address common.Address, transactor bind.ContractTransactor) (*MinterRoleTransactor, error) {
 25030  	contract, err := bindMinterRole(address, nil, transactor, nil)
 25031  	if err != nil {
 25032  		return nil, err
 25033  	}
 25034  	return &MinterRoleTransactor{contract: contract}, nil
 25035  }
 25036  
 25037  // NewMinterRoleFilterer creates a new log filterer instance of MinterRole, bound to a specific deployed contract.
 25038  func NewMinterRoleFilterer(address common.Address, filterer bind.ContractFilterer) (*MinterRoleFilterer, error) {
 25039  	contract, err := bindMinterRole(address, nil, nil, filterer)
 25040  	if err != nil {
 25041  		return nil, err
 25042  	}
 25043  	return &MinterRoleFilterer{contract: contract}, nil
 25044  }
 25045  
 25046  // bindMinterRole binds a generic wrapper to an already deployed contract.
 25047  func bindMinterRole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 25048  	parsed, err := MinterRoleMetaData.GetAbi()
 25049  	if err != nil {
 25050  		return nil, err
 25051  	}
 25052  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 25053  }
 25054  
 25055  // Call invokes the (constant) contract method with params as input values and
 25056  // sets the output to result. The result type might be a single field for simple
 25057  // returns, a slice of interfaces for anonymous returns and a struct for named
 25058  // returns.
 25059  func (_MinterRole *MinterRoleRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25060  	return _MinterRole.Contract.MinterRoleCaller.contract.Call(opts, result, method, params...)
 25061  }
 25062  
 25063  // Transfer initiates a plain transaction to move funds to the contract, calling
 25064  // its default method if one is available.
 25065  func (_MinterRole *MinterRoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25066  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transfer(opts)
 25067  }
 25068  
 25069  // Transact invokes the (paid) contract method with params as input values.
 25070  func (_MinterRole *MinterRoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25071  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transact(opts, method, params...)
 25072  }
 25073  
 25074  // Call invokes the (constant) contract method with params as input values and
 25075  // sets the output to result. The result type might be a single field for simple
 25076  // returns, a slice of interfaces for anonymous returns and a struct for named
 25077  // returns.
 25078  func (_MinterRole *MinterRoleCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25079  	return _MinterRole.Contract.contract.Call(opts, result, method, params...)
 25080  }
 25081  
 25082  // Transfer initiates a plain transaction to move funds to the contract, calling
 25083  // its default method if one is available.
 25084  func (_MinterRole *MinterRoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25085  	return _MinterRole.Contract.contract.Transfer(opts)
 25086  }
 25087  
 25088  // Transact invokes the (paid) contract method with params as input values.
 25089  func (_MinterRole *MinterRoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25090  	return _MinterRole.Contract.contract.Transact(opts, method, params...)
 25091  }
 25092  
 25093  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 25094  //
 25095  // Solidity: function isMinter(address account) view returns(bool)
 25096  func (_MinterRole *MinterRoleCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 25097  	var out []interface{}
 25098  	err := _MinterRole.contract.Call(opts, &out, "isMinter", account)
 25099  
 25100  	if err != nil {
 25101  		return *new(bool), err
 25102  	}
 25103  
 25104  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 25105  
 25106  	return out0, err
 25107  
 25108  }
 25109  
 25110  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 25111  //
 25112  // Solidity: function isMinter(address account) view returns(bool)
 25113  func (_MinterRole *MinterRoleSession) IsMinter(account common.Address) (bool, error) {
 25114  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
 25115  }
 25116  
 25117  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 25118  //
 25119  // Solidity: function isMinter(address account) view returns(bool)
 25120  func (_MinterRole *MinterRoleCallerSession) IsMinter(account common.Address) (bool, error) {
 25121  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
 25122  }
 25123  
 25124  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 25125  //
 25126  // Solidity: function addMinter(address account) returns()
 25127  func (_MinterRole *MinterRoleTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 25128  	return _MinterRole.contract.Transact(opts, "addMinter", account)
 25129  }
 25130  
 25131  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 25132  //
 25133  // Solidity: function addMinter(address account) returns()
 25134  func (_MinterRole *MinterRoleSession) AddMinter(account common.Address) (*types.Transaction, error) {
 25135  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
 25136  }
 25137  
 25138  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 25139  //
 25140  // Solidity: function addMinter(address account) returns()
 25141  func (_MinterRole *MinterRoleTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 25142  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
 25143  }
 25144  
 25145  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 25146  //
 25147  // Solidity: function renounceMinter() returns()
 25148  func (_MinterRole *MinterRoleTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 25149  	return _MinterRole.contract.Transact(opts, "renounceMinter")
 25150  }
 25151  
 25152  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 25153  //
 25154  // Solidity: function renounceMinter() returns()
 25155  func (_MinterRole *MinterRoleSession) RenounceMinter() (*types.Transaction, error) {
 25156  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
 25157  }
 25158  
 25159  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 25160  //
 25161  // Solidity: function renounceMinter() returns()
 25162  func (_MinterRole *MinterRoleTransactorSession) RenounceMinter() (*types.Transaction, error) {
 25163  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
 25164  }
 25165  
 25166  // MinterRoleMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the MinterRole contract.
 25167  type MinterRoleMinterAddedIterator struct {
 25168  	Event *MinterRoleMinterAdded // Event containing the contract specifics and raw log
 25169  
 25170  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25171  	event    string              // Event name to use for unpacking event data
 25172  
 25173  	logs chan types.Log      // Log channel receiving the found contract events
 25174  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 25175  	done bool                // Whether the subscription completed delivering logs
 25176  	fail error               // Occurred error to stop iteration
 25177  }
 25178  
 25179  // Next advances the iterator to the subsequent event, returning whether there
 25180  // are any more events found. In case of a retrieval or parsing error, false is
 25181  // returned and Error() can be queried for the exact failure.
 25182  func (it *MinterRoleMinterAddedIterator) Next() bool {
 25183  	// If the iterator failed, stop iterating
 25184  	if it.fail != nil {
 25185  		return false
 25186  	}
 25187  	// If the iterator completed, deliver directly whatever's available
 25188  	if it.done {
 25189  		select {
 25190  		case log := <-it.logs:
 25191  			it.Event = new(MinterRoleMinterAdded)
 25192  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25193  				it.fail = err
 25194  				return false
 25195  			}
 25196  			it.Event.Raw = log
 25197  			return true
 25198  
 25199  		default:
 25200  			return false
 25201  		}
 25202  	}
 25203  	// Iterator still in progress, wait for either a data or an error event
 25204  	select {
 25205  	case log := <-it.logs:
 25206  		it.Event = new(MinterRoleMinterAdded)
 25207  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25208  			it.fail = err
 25209  			return false
 25210  		}
 25211  		it.Event.Raw = log
 25212  		return true
 25213  
 25214  	case err := <-it.sub.Err():
 25215  		it.done = true
 25216  		it.fail = err
 25217  		return it.Next()
 25218  	}
 25219  }
 25220  
 25221  // Error returns any retrieval or parsing error occurred during filtering.
 25222  func (it *MinterRoleMinterAddedIterator) Error() error {
 25223  	return it.fail
 25224  }
 25225  
 25226  // Close terminates the iteration process, releasing any pending underlying
 25227  // resources.
 25228  func (it *MinterRoleMinterAddedIterator) Close() error {
 25229  	it.sub.Unsubscribe()
 25230  	return nil
 25231  }
 25232  
 25233  // MinterRoleMinterAdded represents a MinterAdded event raised by the MinterRole contract.
 25234  type MinterRoleMinterAdded struct {
 25235  	Account common.Address
 25236  	Raw     types.Log // Blockchain specific contextual infos
 25237  }
 25238  
 25239  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 25240  //
 25241  // Solidity: event MinterAdded(address indexed account)
 25242  func (_MinterRole *MinterRoleFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterAddedIterator, error) {
 25243  
 25244  	var accountRule []interface{}
 25245  	for _, accountItem := range account {
 25246  		accountRule = append(accountRule, accountItem)
 25247  	}
 25248  
 25249  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterAdded", accountRule)
 25250  	if err != nil {
 25251  		return nil, err
 25252  	}
 25253  	return &MinterRoleMinterAddedIterator{contract: _MinterRole.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 25254  }
 25255  
 25256  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 25257  //
 25258  // Solidity: event MinterAdded(address indexed account)
 25259  func (_MinterRole *MinterRoleFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterAdded, account []common.Address) (event.Subscription, error) {
 25260  
 25261  	var accountRule []interface{}
 25262  	for _, accountItem := range account {
 25263  		accountRule = append(accountRule, accountItem)
 25264  	}
 25265  
 25266  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterAdded", accountRule)
 25267  	if err != nil {
 25268  		return nil, err
 25269  	}
 25270  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25271  		defer sub.Unsubscribe()
 25272  		for {
 25273  			select {
 25274  			case log := <-logs:
 25275  				// New log arrived, parse the event and forward to the user
 25276  				event := new(MinterRoleMinterAdded)
 25277  				if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 25278  					return err
 25279  				}
 25280  				event.Raw = log
 25281  
 25282  				select {
 25283  				case sink <- event:
 25284  				case err := <-sub.Err():
 25285  					return err
 25286  				case <-quit:
 25287  					return nil
 25288  				}
 25289  			case err := <-sub.Err():
 25290  				return err
 25291  			case <-quit:
 25292  				return nil
 25293  			}
 25294  		}
 25295  	}), nil
 25296  }
 25297  
 25298  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 25299  //
 25300  // Solidity: event MinterAdded(address indexed account)
 25301  func (_MinterRole *MinterRoleFilterer) ParseMinterAdded(log types.Log) (*MinterRoleMinterAdded, error) {
 25302  	event := new(MinterRoleMinterAdded)
 25303  	if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 25304  		return nil, err
 25305  	}
 25306  	return event, nil
 25307  }
 25308  
 25309  // MinterRoleMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the MinterRole contract.
 25310  type MinterRoleMinterRemovedIterator struct {
 25311  	Event *MinterRoleMinterRemoved // Event containing the contract specifics and raw log
 25312  
 25313  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25314  	event    string              // Event name to use for unpacking event data
 25315  
 25316  	logs chan types.Log      // Log channel receiving the found contract events
 25317  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 25318  	done bool                // Whether the subscription completed delivering logs
 25319  	fail error               // Occurred error to stop iteration
 25320  }
 25321  
 25322  // Next advances the iterator to the subsequent event, returning whether there
 25323  // are any more events found. In case of a retrieval or parsing error, false is
 25324  // returned and Error() can be queried for the exact failure.
 25325  func (it *MinterRoleMinterRemovedIterator) Next() bool {
 25326  	// If the iterator failed, stop iterating
 25327  	if it.fail != nil {
 25328  		return false
 25329  	}
 25330  	// If the iterator completed, deliver directly whatever's available
 25331  	if it.done {
 25332  		select {
 25333  		case log := <-it.logs:
 25334  			it.Event = new(MinterRoleMinterRemoved)
 25335  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25336  				it.fail = err
 25337  				return false
 25338  			}
 25339  			it.Event.Raw = log
 25340  			return true
 25341  
 25342  		default:
 25343  			return false
 25344  		}
 25345  	}
 25346  	// Iterator still in progress, wait for either a data or an error event
 25347  	select {
 25348  	case log := <-it.logs:
 25349  		it.Event = new(MinterRoleMinterRemoved)
 25350  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25351  			it.fail = err
 25352  			return false
 25353  		}
 25354  		it.Event.Raw = log
 25355  		return true
 25356  
 25357  	case err := <-it.sub.Err():
 25358  		it.done = true
 25359  		it.fail = err
 25360  		return it.Next()
 25361  	}
 25362  }
 25363  
 25364  // Error returns any retrieval or parsing error occurred during filtering.
 25365  func (it *MinterRoleMinterRemovedIterator) Error() error {
 25366  	return it.fail
 25367  }
 25368  
 25369  // Close terminates the iteration process, releasing any pending underlying
 25370  // resources.
 25371  func (it *MinterRoleMinterRemovedIterator) Close() error {
 25372  	it.sub.Unsubscribe()
 25373  	return nil
 25374  }
 25375  
 25376  // MinterRoleMinterRemoved represents a MinterRemoved event raised by the MinterRole contract.
 25377  type MinterRoleMinterRemoved struct {
 25378  	Account common.Address
 25379  	Raw     types.Log // Blockchain specific contextual infos
 25380  }
 25381  
 25382  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 25383  //
 25384  // Solidity: event MinterRemoved(address indexed account)
 25385  func (_MinterRole *MinterRoleFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterRemovedIterator, error) {
 25386  
 25387  	var accountRule []interface{}
 25388  	for _, accountItem := range account {
 25389  		accountRule = append(accountRule, accountItem)
 25390  	}
 25391  
 25392  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 25393  	if err != nil {
 25394  		return nil, err
 25395  	}
 25396  	return &MinterRoleMinterRemovedIterator{contract: _MinterRole.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 25397  }
 25398  
 25399  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 25400  //
 25401  // Solidity: event MinterRemoved(address indexed account)
 25402  func (_MinterRole *MinterRoleFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterRemoved, account []common.Address) (event.Subscription, error) {
 25403  
 25404  	var accountRule []interface{}
 25405  	for _, accountItem := range account {
 25406  		accountRule = append(accountRule, accountItem)
 25407  	}
 25408  
 25409  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 25410  	if err != nil {
 25411  		return nil, err
 25412  	}
 25413  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25414  		defer sub.Unsubscribe()
 25415  		for {
 25416  			select {
 25417  			case log := <-logs:
 25418  				// New log arrived, parse the event and forward to the user
 25419  				event := new(MinterRoleMinterRemoved)
 25420  				if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 25421  					return err
 25422  				}
 25423  				event.Raw = log
 25424  
 25425  				select {
 25426  				case sink <- event:
 25427  				case err := <-sub.Err():
 25428  					return err
 25429  				case <-quit:
 25430  					return nil
 25431  				}
 25432  			case err := <-sub.Err():
 25433  				return err
 25434  			case <-quit:
 25435  				return nil
 25436  			}
 25437  		}
 25438  	}), nil
 25439  }
 25440  
 25441  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 25442  //
 25443  // Solidity: event MinterRemoved(address indexed account)
 25444  func (_MinterRole *MinterRoleFilterer) ParseMinterRemoved(log types.Log) (*MinterRoleMinterRemoved, error) {
 25445  	event := new(MinterRoleMinterRemoved)
 25446  	if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 25447  		return nil, err
 25448  	}
 25449  	return event, nil
 25450  }
 25451  
 25452  // OwnableMetaData contains all meta data concerning the Ownable contract.
 25453  var OwnableMetaData = &bind.MetaData{
 25454  	ABI: "[{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
 25455  	Sigs: map[string]string{
 25456  		"8f32d59b": "isOwner()",
 25457  		"8da5cb5b": "owner()",
 25458  		"715018a6": "renounceOwnership()",
 25459  		"f2fde38b": "transferOwnership(address)",
 25460  	},
 25461  }
 25462  
 25463  // OwnableABI is the input ABI used to generate the binding from.
 25464  // Deprecated: Use OwnableMetaData.ABI instead.
 25465  var OwnableABI = OwnableMetaData.ABI
 25466  
 25467  // OwnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 25468  const OwnableBinRuntime = ``
 25469  
 25470  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
 25471  // Deprecated: Use OwnableMetaData.Sigs instead.
 25472  var OwnableFuncSigs = OwnableMetaData.Sigs
 25473  
 25474  // Ownable is an auto generated Go binding around a Klaytn contract.
 25475  type Ownable struct {
 25476  	OwnableCaller     // Read-only binding to the contract
 25477  	OwnableTransactor // Write-only binding to the contract
 25478  	OwnableFilterer   // Log filterer for contract events
 25479  }
 25480  
 25481  // OwnableCaller is an auto generated read-only Go binding around a Klaytn contract.
 25482  type OwnableCaller struct {
 25483  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25484  }
 25485  
 25486  // OwnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 25487  type OwnableTransactor struct {
 25488  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25489  }
 25490  
 25491  // OwnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 25492  type OwnableFilterer struct {
 25493  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25494  }
 25495  
 25496  // OwnableSession is an auto generated Go binding around a Klaytn contract,
 25497  // with pre-set call and transact options.
 25498  type OwnableSession struct {
 25499  	Contract     *Ownable          // Generic contract binding to set the session for
 25500  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 25501  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 25502  }
 25503  
 25504  // OwnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 25505  // with pre-set call options.
 25506  type OwnableCallerSession struct {
 25507  	Contract *OwnableCaller // Generic contract caller binding to set the session for
 25508  	CallOpts bind.CallOpts  // Call options to use throughout this session
 25509  }
 25510  
 25511  // OwnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 25512  // with pre-set transact options.
 25513  type OwnableTransactorSession struct {
 25514  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
 25515  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 25516  }
 25517  
 25518  // OwnableRaw is an auto generated low-level Go binding around a Klaytn contract.
 25519  type OwnableRaw struct {
 25520  	Contract *Ownable // Generic contract binding to access the raw methods on
 25521  }
 25522  
 25523  // OwnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 25524  type OwnableCallerRaw struct {
 25525  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
 25526  }
 25527  
 25528  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 25529  type OwnableTransactorRaw struct {
 25530  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
 25531  }
 25532  
 25533  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
 25534  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
 25535  	contract, err := bindOwnable(address, backend, backend, backend)
 25536  	if err != nil {
 25537  		return nil, err
 25538  	}
 25539  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
 25540  }
 25541  
 25542  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
 25543  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
 25544  	contract, err := bindOwnable(address, caller, nil, nil)
 25545  	if err != nil {
 25546  		return nil, err
 25547  	}
 25548  	return &OwnableCaller{contract: contract}, nil
 25549  }
 25550  
 25551  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
 25552  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
 25553  	contract, err := bindOwnable(address, nil, transactor, nil)
 25554  	if err != nil {
 25555  		return nil, err
 25556  	}
 25557  	return &OwnableTransactor{contract: contract}, nil
 25558  }
 25559  
 25560  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
 25561  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
 25562  	contract, err := bindOwnable(address, nil, nil, filterer)
 25563  	if err != nil {
 25564  		return nil, err
 25565  	}
 25566  	return &OwnableFilterer{contract: contract}, nil
 25567  }
 25568  
 25569  // bindOwnable binds a generic wrapper to an already deployed contract.
 25570  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 25571  	parsed, err := OwnableMetaData.GetAbi()
 25572  	if err != nil {
 25573  		return nil, err
 25574  	}
 25575  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 25576  }
 25577  
 25578  // Call invokes the (constant) contract method with params as input values and
 25579  // sets the output to result. The result type might be a single field for simple
 25580  // returns, a slice of interfaces for anonymous returns and a struct for named
 25581  // returns.
 25582  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25583  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
 25584  }
 25585  
 25586  // Transfer initiates a plain transaction to move funds to the contract, calling
 25587  // its default method if one is available.
 25588  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25589  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
 25590  }
 25591  
 25592  // Transact invokes the (paid) contract method with params as input values.
 25593  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25594  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
 25595  }
 25596  
 25597  // Call invokes the (constant) contract method with params as input values and
 25598  // sets the output to result. The result type might be a single field for simple
 25599  // returns, a slice of interfaces for anonymous returns and a struct for named
 25600  // returns.
 25601  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25602  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
 25603  }
 25604  
 25605  // Transfer initiates a plain transaction to move funds to the contract, calling
 25606  // its default method if one is available.
 25607  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25608  	return _Ownable.Contract.contract.Transfer(opts)
 25609  }
 25610  
 25611  // Transact invokes the (paid) contract method with params as input values.
 25612  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25613  	return _Ownable.Contract.contract.Transact(opts, method, params...)
 25614  }
 25615  
 25616  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 25617  //
 25618  // Solidity: function isOwner() view returns(bool)
 25619  func (_Ownable *OwnableCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 25620  	var out []interface{}
 25621  	err := _Ownable.contract.Call(opts, &out, "isOwner")
 25622  
 25623  	if err != nil {
 25624  		return *new(bool), err
 25625  	}
 25626  
 25627  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 25628  
 25629  	return out0, err
 25630  
 25631  }
 25632  
 25633  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 25634  //
 25635  // Solidity: function isOwner() view returns(bool)
 25636  func (_Ownable *OwnableSession) IsOwner() (bool, error) {
 25637  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
 25638  }
 25639  
 25640  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 25641  //
 25642  // Solidity: function isOwner() view returns(bool)
 25643  func (_Ownable *OwnableCallerSession) IsOwner() (bool, error) {
 25644  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
 25645  }
 25646  
 25647  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 25648  //
 25649  // Solidity: function owner() view returns(address)
 25650  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 25651  	var out []interface{}
 25652  	err := _Ownable.contract.Call(opts, &out, "owner")
 25653  
 25654  	if err != nil {
 25655  		return *new(common.Address), err
 25656  	}
 25657  
 25658  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 25659  
 25660  	return out0, err
 25661  
 25662  }
 25663  
 25664  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 25665  //
 25666  // Solidity: function owner() view returns(address)
 25667  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
 25668  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 25669  }
 25670  
 25671  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 25672  //
 25673  // Solidity: function owner() view returns(address)
 25674  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
 25675  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 25676  }
 25677  
 25678  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 25679  //
 25680  // Solidity: function renounceOwnership() returns()
 25681  func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 25682  	return _Ownable.contract.Transact(opts, "renounceOwnership")
 25683  }
 25684  
 25685  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 25686  //
 25687  // Solidity: function renounceOwnership() returns()
 25688  func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) {
 25689  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
 25690  }
 25691  
 25692  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 25693  //
 25694  // Solidity: function renounceOwnership() returns()
 25695  func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 25696  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
 25697  }
 25698  
 25699  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 25700  //
 25701  // Solidity: function transferOwnership(address newOwner) returns()
 25702  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 25703  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
 25704  }
 25705  
 25706  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 25707  //
 25708  // Solidity: function transferOwnership(address newOwner) returns()
 25709  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 25710  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 25711  }
 25712  
 25713  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 25714  //
 25715  // Solidity: function transferOwnership(address newOwner) returns()
 25716  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 25717  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 25718  }
 25719  
 25720  // OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract.
 25721  type OwnableOwnershipTransferredIterator struct {
 25722  	Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log
 25723  
 25724  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25725  	event    string              // Event name to use for unpacking event data
 25726  
 25727  	logs chan types.Log      // Log channel receiving the found contract events
 25728  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 25729  	done bool                // Whether the subscription completed delivering logs
 25730  	fail error               // Occurred error to stop iteration
 25731  }
 25732  
 25733  // Next advances the iterator to the subsequent event, returning whether there
 25734  // are any more events found. In case of a retrieval or parsing error, false is
 25735  // returned and Error() can be queried for the exact failure.
 25736  func (it *OwnableOwnershipTransferredIterator) Next() bool {
 25737  	// If the iterator failed, stop iterating
 25738  	if it.fail != nil {
 25739  		return false
 25740  	}
 25741  	// If the iterator completed, deliver directly whatever's available
 25742  	if it.done {
 25743  		select {
 25744  		case log := <-it.logs:
 25745  			it.Event = new(OwnableOwnershipTransferred)
 25746  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25747  				it.fail = err
 25748  				return false
 25749  			}
 25750  			it.Event.Raw = log
 25751  			return true
 25752  
 25753  		default:
 25754  			return false
 25755  		}
 25756  	}
 25757  	// Iterator still in progress, wait for either a data or an error event
 25758  	select {
 25759  	case log := <-it.logs:
 25760  		it.Event = new(OwnableOwnershipTransferred)
 25761  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25762  			it.fail = err
 25763  			return false
 25764  		}
 25765  		it.Event.Raw = log
 25766  		return true
 25767  
 25768  	case err := <-it.sub.Err():
 25769  		it.done = true
 25770  		it.fail = err
 25771  		return it.Next()
 25772  	}
 25773  }
 25774  
 25775  // Error returns any retrieval or parsing error occurred during filtering.
 25776  func (it *OwnableOwnershipTransferredIterator) Error() error {
 25777  	return it.fail
 25778  }
 25779  
 25780  // Close terminates the iteration process, releasing any pending underlying
 25781  // resources.
 25782  func (it *OwnableOwnershipTransferredIterator) Close() error {
 25783  	it.sub.Unsubscribe()
 25784  	return nil
 25785  }
 25786  
 25787  // OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract.
 25788  type OwnableOwnershipTransferred struct {
 25789  	PreviousOwner common.Address
 25790  	NewOwner      common.Address
 25791  	Raw           types.Log // Blockchain specific contextual infos
 25792  }
 25793  
 25794  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 25795  //
 25796  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 25797  func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) {
 25798  
 25799  	var previousOwnerRule []interface{}
 25800  	for _, previousOwnerItem := range previousOwner {
 25801  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 25802  	}
 25803  	var newOwnerRule []interface{}
 25804  	for _, newOwnerItem := range newOwner {
 25805  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 25806  	}
 25807  
 25808  	logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 25809  	if err != nil {
 25810  		return nil, err
 25811  	}
 25812  	return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 25813  }
 25814  
 25815  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 25816  //
 25817  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 25818  func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 25819  
 25820  	var previousOwnerRule []interface{}
 25821  	for _, previousOwnerItem := range previousOwner {
 25822  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 25823  	}
 25824  	var newOwnerRule []interface{}
 25825  	for _, newOwnerItem := range newOwner {
 25826  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 25827  	}
 25828  
 25829  	logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 25830  	if err != nil {
 25831  		return nil, err
 25832  	}
 25833  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25834  		defer sub.Unsubscribe()
 25835  		for {
 25836  			select {
 25837  			case log := <-logs:
 25838  				// New log arrived, parse the event and forward to the user
 25839  				event := new(OwnableOwnershipTransferred)
 25840  				if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 25841  					return err
 25842  				}
 25843  				event.Raw = log
 25844  
 25845  				select {
 25846  				case sink <- event:
 25847  				case err := <-sub.Err():
 25848  					return err
 25849  				case <-quit:
 25850  					return nil
 25851  				}
 25852  			case err := <-sub.Err():
 25853  				return err
 25854  			case <-quit:
 25855  				return nil
 25856  			}
 25857  		}
 25858  	}), nil
 25859  }
 25860  
 25861  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 25862  //
 25863  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 25864  func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) {
 25865  	event := new(OwnableOwnershipTransferred)
 25866  	if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 25867  		return nil, err
 25868  	}
 25869  	return event, nil
 25870  }
 25871  
 25872  // RolesMetaData contains all meta data concerning the Roles contract.
 25873  var RolesMetaData = &bind.MetaData{
 25874  	ABI: "[]",
 25875  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058206fdeeec4a4b0b444bd488c924c927184696cea63963686d57a13cf42f3830d840029",
 25876  }
 25877  
 25878  // RolesABI is the input ABI used to generate the binding from.
 25879  // Deprecated: Use RolesMetaData.ABI instead.
 25880  var RolesABI = RolesMetaData.ABI
 25881  
 25882  // RolesBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 25883  const RolesBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058206fdeeec4a4b0b444bd488c924c927184696cea63963686d57a13cf42f3830d840029`
 25884  
 25885  // RolesBin is the compiled bytecode used for deploying new contracts.
 25886  // Deprecated: Use RolesMetaData.Bin instead.
 25887  var RolesBin = RolesMetaData.Bin
 25888  
 25889  // DeployRoles deploys a new Klaytn contract, binding an instance of Roles to it.
 25890  func DeployRoles(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Roles, error) {
 25891  	parsed, err := RolesMetaData.GetAbi()
 25892  	if err != nil {
 25893  		return common.Address{}, nil, nil, err
 25894  	}
 25895  	if parsed == nil {
 25896  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 25897  	}
 25898  
 25899  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RolesBin), backend)
 25900  	if err != nil {
 25901  		return common.Address{}, nil, nil, err
 25902  	}
 25903  	return address, tx, &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
 25904  }
 25905  
 25906  // Roles is an auto generated Go binding around a Klaytn contract.
 25907  type Roles struct {
 25908  	RolesCaller     // Read-only binding to the contract
 25909  	RolesTransactor // Write-only binding to the contract
 25910  	RolesFilterer   // Log filterer for contract events
 25911  }
 25912  
 25913  // RolesCaller is an auto generated read-only Go binding around a Klaytn contract.
 25914  type RolesCaller struct {
 25915  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25916  }
 25917  
 25918  // RolesTransactor is an auto generated write-only Go binding around a Klaytn contract.
 25919  type RolesTransactor struct {
 25920  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25921  }
 25922  
 25923  // RolesFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 25924  type RolesFilterer struct {
 25925  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25926  }
 25927  
 25928  // RolesSession is an auto generated Go binding around a Klaytn contract,
 25929  // with pre-set call and transact options.
 25930  type RolesSession struct {
 25931  	Contract     *Roles            // Generic contract binding to set the session for
 25932  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 25933  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 25934  }
 25935  
 25936  // RolesCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 25937  // with pre-set call options.
 25938  type RolesCallerSession struct {
 25939  	Contract *RolesCaller  // Generic contract caller binding to set the session for
 25940  	CallOpts bind.CallOpts // Call options to use throughout this session
 25941  }
 25942  
 25943  // RolesTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 25944  // with pre-set transact options.
 25945  type RolesTransactorSession struct {
 25946  	Contract     *RolesTransactor  // Generic contract transactor binding to set the session for
 25947  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 25948  }
 25949  
 25950  // RolesRaw is an auto generated low-level Go binding around a Klaytn contract.
 25951  type RolesRaw struct {
 25952  	Contract *Roles // Generic contract binding to access the raw methods on
 25953  }
 25954  
 25955  // RolesCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 25956  type RolesCallerRaw struct {
 25957  	Contract *RolesCaller // Generic read-only contract binding to access the raw methods on
 25958  }
 25959  
 25960  // RolesTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 25961  type RolesTransactorRaw struct {
 25962  	Contract *RolesTransactor // Generic write-only contract binding to access the raw methods on
 25963  }
 25964  
 25965  // NewRoles creates a new instance of Roles, bound to a specific deployed contract.
 25966  func NewRoles(address common.Address, backend bind.ContractBackend) (*Roles, error) {
 25967  	contract, err := bindRoles(address, backend, backend, backend)
 25968  	if err != nil {
 25969  		return nil, err
 25970  	}
 25971  	return &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
 25972  }
 25973  
 25974  // NewRolesCaller creates a new read-only instance of Roles, bound to a specific deployed contract.
 25975  func NewRolesCaller(address common.Address, caller bind.ContractCaller) (*RolesCaller, error) {
 25976  	contract, err := bindRoles(address, caller, nil, nil)
 25977  	if err != nil {
 25978  		return nil, err
 25979  	}
 25980  	return &RolesCaller{contract: contract}, nil
 25981  }
 25982  
 25983  // NewRolesTransactor creates a new write-only instance of Roles, bound to a specific deployed contract.
 25984  func NewRolesTransactor(address common.Address, transactor bind.ContractTransactor) (*RolesTransactor, error) {
 25985  	contract, err := bindRoles(address, nil, transactor, nil)
 25986  	if err != nil {
 25987  		return nil, err
 25988  	}
 25989  	return &RolesTransactor{contract: contract}, nil
 25990  }
 25991  
 25992  // NewRolesFilterer creates a new log filterer instance of Roles, bound to a specific deployed contract.
 25993  func NewRolesFilterer(address common.Address, filterer bind.ContractFilterer) (*RolesFilterer, error) {
 25994  	contract, err := bindRoles(address, nil, nil, filterer)
 25995  	if err != nil {
 25996  		return nil, err
 25997  	}
 25998  	return &RolesFilterer{contract: contract}, nil
 25999  }
 26000  
 26001  // bindRoles binds a generic wrapper to an already deployed contract.
 26002  func bindRoles(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 26003  	parsed, err := RolesMetaData.GetAbi()
 26004  	if err != nil {
 26005  		return nil, err
 26006  	}
 26007  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 26008  }
 26009  
 26010  // Call invokes the (constant) contract method with params as input values and
 26011  // sets the output to result. The result type might be a single field for simple
 26012  // returns, a slice of interfaces for anonymous returns and a struct for named
 26013  // returns.
 26014  func (_Roles *RolesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26015  	return _Roles.Contract.RolesCaller.contract.Call(opts, result, method, params...)
 26016  }
 26017  
 26018  // Transfer initiates a plain transaction to move funds to the contract, calling
 26019  // its default method if one is available.
 26020  func (_Roles *RolesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26021  	return _Roles.Contract.RolesTransactor.contract.Transfer(opts)
 26022  }
 26023  
 26024  // Transact invokes the (paid) contract method with params as input values.
 26025  func (_Roles *RolesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26026  	return _Roles.Contract.RolesTransactor.contract.Transact(opts, method, params...)
 26027  }
 26028  
 26029  // Call invokes the (constant) contract method with params as input values and
 26030  // sets the output to result. The result type might be a single field for simple
 26031  // returns, a slice of interfaces for anonymous returns and a struct for named
 26032  // returns.
 26033  func (_Roles *RolesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26034  	return _Roles.Contract.contract.Call(opts, result, method, params...)
 26035  }
 26036  
 26037  // Transfer initiates a plain transaction to move funds to the contract, calling
 26038  // its default method if one is available.
 26039  func (_Roles *RolesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26040  	return _Roles.Contract.contract.Transfer(opts)
 26041  }
 26042  
 26043  // Transact invokes the (paid) contract method with params as input values.
 26044  func (_Roles *RolesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26045  	return _Roles.Contract.contract.Transact(opts, method, params...)
 26046  }
 26047  
 26048  // SafeMathMetaData contains all meta data concerning the SafeMath contract.
 26049  var SafeMathMetaData = &bind.MetaData{
 26050  	ABI: "[]",
 26051  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582052c975835d8618888691b14d52ff822fc00b24a3637e28a17d824cf0361b62b90029",
 26052  }
 26053  
 26054  // SafeMathABI is the input ABI used to generate the binding from.
 26055  // Deprecated: Use SafeMathMetaData.ABI instead.
 26056  var SafeMathABI = SafeMathMetaData.ABI
 26057  
 26058  // SafeMathBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 26059  const SafeMathBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582052c975835d8618888691b14d52ff822fc00b24a3637e28a17d824cf0361b62b90029`
 26060  
 26061  // SafeMathBin is the compiled bytecode used for deploying new contracts.
 26062  // Deprecated: Use SafeMathMetaData.Bin instead.
 26063  var SafeMathBin = SafeMathMetaData.Bin
 26064  
 26065  // DeploySafeMath deploys a new Klaytn contract, binding an instance of SafeMath to it.
 26066  func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
 26067  	parsed, err := SafeMathMetaData.GetAbi()
 26068  	if err != nil {
 26069  		return common.Address{}, nil, nil, err
 26070  	}
 26071  	if parsed == nil {
 26072  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 26073  	}
 26074  
 26075  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeMathBin), backend)
 26076  	if err != nil {
 26077  		return common.Address{}, nil, nil, err
 26078  	}
 26079  	return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
 26080  }
 26081  
 26082  // SafeMath is an auto generated Go binding around a Klaytn contract.
 26083  type SafeMath struct {
 26084  	SafeMathCaller     // Read-only binding to the contract
 26085  	SafeMathTransactor // Write-only binding to the contract
 26086  	SafeMathFilterer   // Log filterer for contract events
 26087  }
 26088  
 26089  // SafeMathCaller is an auto generated read-only Go binding around a Klaytn contract.
 26090  type SafeMathCaller struct {
 26091  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26092  }
 26093  
 26094  // SafeMathTransactor is an auto generated write-only Go binding around a Klaytn contract.
 26095  type SafeMathTransactor struct {
 26096  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26097  }
 26098  
 26099  // SafeMathFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 26100  type SafeMathFilterer struct {
 26101  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26102  }
 26103  
 26104  // SafeMathSession is an auto generated Go binding around a Klaytn contract,
 26105  // with pre-set call and transact options.
 26106  type SafeMathSession struct {
 26107  	Contract     *SafeMath         // Generic contract binding to set the session for
 26108  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 26109  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 26110  }
 26111  
 26112  // SafeMathCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 26113  // with pre-set call options.
 26114  type SafeMathCallerSession struct {
 26115  	Contract *SafeMathCaller // Generic contract caller binding to set the session for
 26116  	CallOpts bind.CallOpts   // Call options to use throughout this session
 26117  }
 26118  
 26119  // SafeMathTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 26120  // with pre-set transact options.
 26121  type SafeMathTransactorSession struct {
 26122  	Contract     *SafeMathTransactor // Generic contract transactor binding to set the session for
 26123  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 26124  }
 26125  
 26126  // SafeMathRaw is an auto generated low-level Go binding around a Klaytn contract.
 26127  type SafeMathRaw struct {
 26128  	Contract *SafeMath // Generic contract binding to access the raw methods on
 26129  }
 26130  
 26131  // SafeMathCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 26132  type SafeMathCallerRaw struct {
 26133  	Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on
 26134  }
 26135  
 26136  // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 26137  type SafeMathTransactorRaw struct {
 26138  	Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on
 26139  }
 26140  
 26141  // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract.
 26142  func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) {
 26143  	contract, err := bindSafeMath(address, backend, backend, backend)
 26144  	if err != nil {
 26145  		return nil, err
 26146  	}
 26147  	return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
 26148  }
 26149  
 26150  // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract.
 26151  func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) {
 26152  	contract, err := bindSafeMath(address, caller, nil, nil)
 26153  	if err != nil {
 26154  		return nil, err
 26155  	}
 26156  	return &SafeMathCaller{contract: contract}, nil
 26157  }
 26158  
 26159  // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract.
 26160  func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) {
 26161  	contract, err := bindSafeMath(address, nil, transactor, nil)
 26162  	if err != nil {
 26163  		return nil, err
 26164  	}
 26165  	return &SafeMathTransactor{contract: contract}, nil
 26166  }
 26167  
 26168  // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract.
 26169  func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) {
 26170  	contract, err := bindSafeMath(address, nil, nil, filterer)
 26171  	if err != nil {
 26172  		return nil, err
 26173  	}
 26174  	return &SafeMathFilterer{contract: contract}, nil
 26175  }
 26176  
 26177  // bindSafeMath binds a generic wrapper to an already deployed contract.
 26178  func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 26179  	parsed, err := SafeMathMetaData.GetAbi()
 26180  	if err != nil {
 26181  		return nil, err
 26182  	}
 26183  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 26184  }
 26185  
 26186  // Call invokes the (constant) contract method with params as input values and
 26187  // sets the output to result. The result type might be a single field for simple
 26188  // returns, a slice of interfaces for anonymous returns and a struct for named
 26189  // returns.
 26190  func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26191  	return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...)
 26192  }
 26193  
 26194  // Transfer initiates a plain transaction to move funds to the contract, calling
 26195  // its default method if one is available.
 26196  func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26197  	return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts)
 26198  }
 26199  
 26200  // Transact invokes the (paid) contract method with params as input values.
 26201  func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26202  	return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...)
 26203  }
 26204  
 26205  // Call invokes the (constant) contract method with params as input values and
 26206  // sets the output to result. The result type might be a single field for simple
 26207  // returns, a slice of interfaces for anonymous returns and a struct for named
 26208  // returns.
 26209  func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26210  	return _SafeMath.Contract.contract.Call(opts, result, method, params...)
 26211  }
 26212  
 26213  // Transfer initiates a plain transaction to move funds to the contract, calling
 26214  // its default method if one is available.
 26215  func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26216  	return _SafeMath.Contract.contract.Transfer(opts)
 26217  }
 26218  
 26219  // Transact invokes the (paid) contract method with params as input values.
 26220  func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26221  	return _SafeMath.Contract.contract.Transact(opts, method, params...)
 26222  }