github.com/klaytn/klaytn@v1.12.1/contracts/system_contracts/all.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 system_contracts
     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  // IKIP113BlsPublicKeyInfo is an auto generated low-level Go binding around an user-defined struct.
    33  type IKIP113BlsPublicKeyInfo struct {
    34  	PublicKey []byte
    35  	Pop       []byte
    36  }
    37  
    38  // IRegistryRecord is an auto generated low-level Go binding around an user-defined struct.
    39  type IRegistryRecord struct {
    40  	Addr       common.Address
    41  	Activation *big.Int
    42  }
    43  
    44  // AddressMetaData contains all meta data concerning the Address contract.
    45  var AddressMetaData = &bind.MetaData{
    46  	ABI: "[]",
    47  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122053101f7ec578e063c340643045a810e3dbc9e3321e7a485ecbf68e707cee458364736f6c63430008130033",
    48  }
    49  
    50  // AddressABI is the input ABI used to generate the binding from.
    51  // Deprecated: Use AddressMetaData.ABI instead.
    52  var AddressABI = AddressMetaData.ABI
    53  
    54  // AddressBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
    55  const AddressBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122053101f7ec578e063c340643045a810e3dbc9e3321e7a485ecbf68e707cee458364736f6c63430008130033`
    56  
    57  // AddressBin is the compiled bytecode used for deploying new contracts.
    58  // Deprecated: Use AddressMetaData.Bin instead.
    59  var AddressBin = AddressMetaData.Bin
    60  
    61  // DeployAddress deploys a new Klaytn contract, binding an instance of Address to it.
    62  func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) {
    63  	parsed, err := AddressMetaData.GetAbi()
    64  	if err != nil {
    65  		return common.Address{}, nil, nil, err
    66  	}
    67  	if parsed == nil {
    68  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    69  	}
    70  
    71  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressBin), backend)
    72  	if err != nil {
    73  		return common.Address{}, nil, nil, err
    74  	}
    75  	return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
    76  }
    77  
    78  // Address is an auto generated Go binding around a Klaytn contract.
    79  type Address struct {
    80  	AddressCaller     // Read-only binding to the contract
    81  	AddressTransactor // Write-only binding to the contract
    82  	AddressFilterer   // Log filterer for contract events
    83  }
    84  
    85  // AddressCaller is an auto generated read-only Go binding around a Klaytn contract.
    86  type AddressCaller struct {
    87  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    88  }
    89  
    90  // AddressTransactor is an auto generated write-only Go binding around a Klaytn contract.
    91  type AddressTransactor struct {
    92  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    93  }
    94  
    95  // AddressFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
    96  type AddressFilterer struct {
    97  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    98  }
    99  
   100  // AddressSession is an auto generated Go binding around a Klaytn contract,
   101  // with pre-set call and transact options.
   102  type AddressSession struct {
   103  	Contract     *Address          // Generic contract binding to set the session for
   104  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   105  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   106  }
   107  
   108  // AddressCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   109  // with pre-set call options.
   110  type AddressCallerSession struct {
   111  	Contract *AddressCaller // Generic contract caller binding to set the session for
   112  	CallOpts bind.CallOpts  // Call options to use throughout this session
   113  }
   114  
   115  // AddressTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   116  // with pre-set transact options.
   117  type AddressTransactorSession struct {
   118  	Contract     *AddressTransactor // Generic contract transactor binding to set the session for
   119  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
   120  }
   121  
   122  // AddressRaw is an auto generated low-level Go binding around a Klaytn contract.
   123  type AddressRaw struct {
   124  	Contract *Address // Generic contract binding to access the raw methods on
   125  }
   126  
   127  // AddressCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   128  type AddressCallerRaw struct {
   129  	Contract *AddressCaller // Generic read-only contract binding to access the raw methods on
   130  }
   131  
   132  // AddressTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   133  type AddressTransactorRaw struct {
   134  	Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on
   135  }
   136  
   137  // NewAddress creates a new instance of Address, bound to a specific deployed contract.
   138  func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) {
   139  	contract, err := bindAddress(address, backend, backend, backend)
   140  	if err != nil {
   141  		return nil, err
   142  	}
   143  	return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
   144  }
   145  
   146  // NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract.
   147  func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) {
   148  	contract, err := bindAddress(address, caller, nil, nil)
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	return &AddressCaller{contract: contract}, nil
   153  }
   154  
   155  // NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract.
   156  func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) {
   157  	contract, err := bindAddress(address, nil, transactor, nil)
   158  	if err != nil {
   159  		return nil, err
   160  	}
   161  	return &AddressTransactor{contract: contract}, nil
   162  }
   163  
   164  // NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract.
   165  func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) {
   166  	contract, err := bindAddress(address, nil, nil, filterer)
   167  	if err != nil {
   168  		return nil, err
   169  	}
   170  	return &AddressFilterer{contract: contract}, nil
   171  }
   172  
   173  // bindAddress binds a generic wrapper to an already deployed contract.
   174  func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   175  	parsed, err := AddressMetaData.GetAbi()
   176  	if err != nil {
   177  		return nil, err
   178  	}
   179  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   180  }
   181  
   182  // Call invokes the (constant) contract method with params as input values and
   183  // sets the output to result. The result type might be a single field for simple
   184  // returns, a slice of interfaces for anonymous returns and a struct for named
   185  // returns.
   186  func (_Address *AddressRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   187  	return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...)
   188  }
   189  
   190  // Transfer initiates a plain transaction to move funds to the contract, calling
   191  // its default method if one is available.
   192  func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   193  	return _Address.Contract.AddressTransactor.contract.Transfer(opts)
   194  }
   195  
   196  // Transact invokes the (paid) contract method with params as input values.
   197  func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   198  	return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...)
   199  }
   200  
   201  // Call invokes the (constant) contract method with params as input values and
   202  // sets the output to result. The result type might be a single field for simple
   203  // returns, a slice of interfaces for anonymous returns and a struct for named
   204  // returns.
   205  func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   206  	return _Address.Contract.contract.Call(opts, result, method, params...)
   207  }
   208  
   209  // Transfer initiates a plain transaction to move funds to the contract, calling
   210  // its default method if one is available.
   211  func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   212  	return _Address.Contract.contract.Transfer(opts)
   213  }
   214  
   215  // Transact invokes the (paid) contract method with params as input values.
   216  func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   217  	return _Address.Contract.contract.Transact(opts, method, params...)
   218  }
   219  
   220  // AddressUpgradeableMetaData contains all meta data concerning the AddressUpgradeable contract.
   221  var AddressUpgradeableMetaData = &bind.MetaData{
   222  	ABI: "[]",
   223  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bf91cc68b5d2a0488d512025c875a923a298928d8f1d2cef3996b4dc164352c64736f6c63430008130033",
   224  }
   225  
   226  // AddressUpgradeableABI is the input ABI used to generate the binding from.
   227  // Deprecated: Use AddressUpgradeableMetaData.ABI instead.
   228  var AddressUpgradeableABI = AddressUpgradeableMetaData.ABI
   229  
   230  // AddressUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   231  const AddressUpgradeableBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bf91cc68b5d2a0488d512025c875a923a298928d8f1d2cef3996b4dc164352c64736f6c63430008130033`
   232  
   233  // AddressUpgradeableBin is the compiled bytecode used for deploying new contracts.
   234  // Deprecated: Use AddressUpgradeableMetaData.Bin instead.
   235  var AddressUpgradeableBin = AddressUpgradeableMetaData.Bin
   236  
   237  // DeployAddressUpgradeable deploys a new Klaytn contract, binding an instance of AddressUpgradeable to it.
   238  func DeployAddressUpgradeable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AddressUpgradeable, error) {
   239  	parsed, err := AddressUpgradeableMetaData.GetAbi()
   240  	if err != nil {
   241  		return common.Address{}, nil, nil, err
   242  	}
   243  	if parsed == nil {
   244  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   245  	}
   246  
   247  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressUpgradeableBin), backend)
   248  	if err != nil {
   249  		return common.Address{}, nil, nil, err
   250  	}
   251  	return address, tx, &AddressUpgradeable{AddressUpgradeableCaller: AddressUpgradeableCaller{contract: contract}, AddressUpgradeableTransactor: AddressUpgradeableTransactor{contract: contract}, AddressUpgradeableFilterer: AddressUpgradeableFilterer{contract: contract}}, nil
   252  }
   253  
   254  // AddressUpgradeable is an auto generated Go binding around a Klaytn contract.
   255  type AddressUpgradeable struct {
   256  	AddressUpgradeableCaller     // Read-only binding to the contract
   257  	AddressUpgradeableTransactor // Write-only binding to the contract
   258  	AddressUpgradeableFilterer   // Log filterer for contract events
   259  }
   260  
   261  // AddressUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
   262  type AddressUpgradeableCaller struct {
   263  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   264  }
   265  
   266  // AddressUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
   267  type AddressUpgradeableTransactor struct {
   268  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   269  }
   270  
   271  // AddressUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   272  type AddressUpgradeableFilterer struct {
   273  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   274  }
   275  
   276  // AddressUpgradeableSession is an auto generated Go binding around a Klaytn contract,
   277  // with pre-set call and transact options.
   278  type AddressUpgradeableSession struct {
   279  	Contract     *AddressUpgradeable // Generic contract binding to set the session for
   280  	CallOpts     bind.CallOpts       // Call options to use throughout this session
   281  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
   282  }
   283  
   284  // AddressUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   285  // with pre-set call options.
   286  type AddressUpgradeableCallerSession struct {
   287  	Contract *AddressUpgradeableCaller // Generic contract caller binding to set the session for
   288  	CallOpts bind.CallOpts             // Call options to use throughout this session
   289  }
   290  
   291  // AddressUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   292  // with pre-set transact options.
   293  type AddressUpgradeableTransactorSession struct {
   294  	Contract     *AddressUpgradeableTransactor // Generic contract transactor binding to set the session for
   295  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
   296  }
   297  
   298  // AddressUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
   299  type AddressUpgradeableRaw struct {
   300  	Contract *AddressUpgradeable // Generic contract binding to access the raw methods on
   301  }
   302  
   303  // AddressUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   304  type AddressUpgradeableCallerRaw struct {
   305  	Contract *AddressUpgradeableCaller // Generic read-only contract binding to access the raw methods on
   306  }
   307  
   308  // AddressUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   309  type AddressUpgradeableTransactorRaw struct {
   310  	Contract *AddressUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
   311  }
   312  
   313  // NewAddressUpgradeable creates a new instance of AddressUpgradeable, bound to a specific deployed contract.
   314  func NewAddressUpgradeable(address common.Address, backend bind.ContractBackend) (*AddressUpgradeable, error) {
   315  	contract, err := bindAddressUpgradeable(address, backend, backend, backend)
   316  	if err != nil {
   317  		return nil, err
   318  	}
   319  	return &AddressUpgradeable{AddressUpgradeableCaller: AddressUpgradeableCaller{contract: contract}, AddressUpgradeableTransactor: AddressUpgradeableTransactor{contract: contract}, AddressUpgradeableFilterer: AddressUpgradeableFilterer{contract: contract}}, nil
   320  }
   321  
   322  // NewAddressUpgradeableCaller creates a new read-only instance of AddressUpgradeable, bound to a specific deployed contract.
   323  func NewAddressUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*AddressUpgradeableCaller, error) {
   324  	contract, err := bindAddressUpgradeable(address, caller, nil, nil)
   325  	if err != nil {
   326  		return nil, err
   327  	}
   328  	return &AddressUpgradeableCaller{contract: contract}, nil
   329  }
   330  
   331  // NewAddressUpgradeableTransactor creates a new write-only instance of AddressUpgradeable, bound to a specific deployed contract.
   332  func NewAddressUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressUpgradeableTransactor, error) {
   333  	contract, err := bindAddressUpgradeable(address, nil, transactor, nil)
   334  	if err != nil {
   335  		return nil, err
   336  	}
   337  	return &AddressUpgradeableTransactor{contract: contract}, nil
   338  }
   339  
   340  // NewAddressUpgradeableFilterer creates a new log filterer instance of AddressUpgradeable, bound to a specific deployed contract.
   341  func NewAddressUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressUpgradeableFilterer, error) {
   342  	contract, err := bindAddressUpgradeable(address, nil, nil, filterer)
   343  	if err != nil {
   344  		return nil, err
   345  	}
   346  	return &AddressUpgradeableFilterer{contract: contract}, nil
   347  }
   348  
   349  // bindAddressUpgradeable binds a generic wrapper to an already deployed contract.
   350  func bindAddressUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   351  	parsed, err := AddressUpgradeableMetaData.GetAbi()
   352  	if err != nil {
   353  		return nil, err
   354  	}
   355  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   356  }
   357  
   358  // Call invokes the (constant) contract method with params as input values and
   359  // sets the output to result. The result type might be a single field for simple
   360  // returns, a slice of interfaces for anonymous returns and a struct for named
   361  // returns.
   362  func (_AddressUpgradeable *AddressUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   363  	return _AddressUpgradeable.Contract.AddressUpgradeableCaller.contract.Call(opts, result, method, params...)
   364  }
   365  
   366  // Transfer initiates a plain transaction to move funds to the contract, calling
   367  // its default method if one is available.
   368  func (_AddressUpgradeable *AddressUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   369  	return _AddressUpgradeable.Contract.AddressUpgradeableTransactor.contract.Transfer(opts)
   370  }
   371  
   372  // Transact invokes the (paid) contract method with params as input values.
   373  func (_AddressUpgradeable *AddressUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   374  	return _AddressUpgradeable.Contract.AddressUpgradeableTransactor.contract.Transact(opts, method, params...)
   375  }
   376  
   377  // Call invokes the (constant) contract method with params as input values and
   378  // sets the output to result. The result type might be a single field for simple
   379  // returns, a slice of interfaces for anonymous returns and a struct for named
   380  // returns.
   381  func (_AddressUpgradeable *AddressUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   382  	return _AddressUpgradeable.Contract.contract.Call(opts, result, method, params...)
   383  }
   384  
   385  // Transfer initiates a plain transaction to move funds to the contract, calling
   386  // its default method if one is available.
   387  func (_AddressUpgradeable *AddressUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   388  	return _AddressUpgradeable.Contract.contract.Transfer(opts)
   389  }
   390  
   391  // Transact invokes the (paid) contract method with params as input values.
   392  func (_AddressUpgradeable *AddressUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   393  	return _AddressUpgradeable.Contract.contract.Transact(opts, method, params...)
   394  }
   395  
   396  // ContextUpgradeableMetaData contains all meta data concerning the ContextUpgradeable contract.
   397  var ContextUpgradeableMetaData = &bind.MetaData{
   398  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]",
   399  }
   400  
   401  // ContextUpgradeableABI is the input ABI used to generate the binding from.
   402  // Deprecated: Use ContextUpgradeableMetaData.ABI instead.
   403  var ContextUpgradeableABI = ContextUpgradeableMetaData.ABI
   404  
   405  // ContextUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   406  const ContextUpgradeableBinRuntime = ``
   407  
   408  // ContextUpgradeable is an auto generated Go binding around a Klaytn contract.
   409  type ContextUpgradeable struct {
   410  	ContextUpgradeableCaller     // Read-only binding to the contract
   411  	ContextUpgradeableTransactor // Write-only binding to the contract
   412  	ContextUpgradeableFilterer   // Log filterer for contract events
   413  }
   414  
   415  // ContextUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
   416  type ContextUpgradeableCaller struct {
   417  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   418  }
   419  
   420  // ContextUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
   421  type ContextUpgradeableTransactor struct {
   422  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   423  }
   424  
   425  // ContextUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   426  type ContextUpgradeableFilterer struct {
   427  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   428  }
   429  
   430  // ContextUpgradeableSession is an auto generated Go binding around a Klaytn contract,
   431  // with pre-set call and transact options.
   432  type ContextUpgradeableSession struct {
   433  	Contract     *ContextUpgradeable // Generic contract binding to set the session for
   434  	CallOpts     bind.CallOpts       // Call options to use throughout this session
   435  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
   436  }
   437  
   438  // ContextUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   439  // with pre-set call options.
   440  type ContextUpgradeableCallerSession struct {
   441  	Contract *ContextUpgradeableCaller // Generic contract caller binding to set the session for
   442  	CallOpts bind.CallOpts             // Call options to use throughout this session
   443  }
   444  
   445  // ContextUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   446  // with pre-set transact options.
   447  type ContextUpgradeableTransactorSession struct {
   448  	Contract     *ContextUpgradeableTransactor // Generic contract transactor binding to set the session for
   449  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
   450  }
   451  
   452  // ContextUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
   453  type ContextUpgradeableRaw struct {
   454  	Contract *ContextUpgradeable // Generic contract binding to access the raw methods on
   455  }
   456  
   457  // ContextUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   458  type ContextUpgradeableCallerRaw struct {
   459  	Contract *ContextUpgradeableCaller // Generic read-only contract binding to access the raw methods on
   460  }
   461  
   462  // ContextUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   463  type ContextUpgradeableTransactorRaw struct {
   464  	Contract *ContextUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
   465  }
   466  
   467  // NewContextUpgradeable creates a new instance of ContextUpgradeable, bound to a specific deployed contract.
   468  func NewContextUpgradeable(address common.Address, backend bind.ContractBackend) (*ContextUpgradeable, error) {
   469  	contract, err := bindContextUpgradeable(address, backend, backend, backend)
   470  	if err != nil {
   471  		return nil, err
   472  	}
   473  	return &ContextUpgradeable{ContextUpgradeableCaller: ContextUpgradeableCaller{contract: contract}, ContextUpgradeableTransactor: ContextUpgradeableTransactor{contract: contract}, ContextUpgradeableFilterer: ContextUpgradeableFilterer{contract: contract}}, nil
   474  }
   475  
   476  // NewContextUpgradeableCaller creates a new read-only instance of ContextUpgradeable, bound to a specific deployed contract.
   477  func NewContextUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*ContextUpgradeableCaller, error) {
   478  	contract, err := bindContextUpgradeable(address, caller, nil, nil)
   479  	if err != nil {
   480  		return nil, err
   481  	}
   482  	return &ContextUpgradeableCaller{contract: contract}, nil
   483  }
   484  
   485  // NewContextUpgradeableTransactor creates a new write-only instance of ContextUpgradeable, bound to a specific deployed contract.
   486  func NewContextUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextUpgradeableTransactor, error) {
   487  	contract, err := bindContextUpgradeable(address, nil, transactor, nil)
   488  	if err != nil {
   489  		return nil, err
   490  	}
   491  	return &ContextUpgradeableTransactor{contract: contract}, nil
   492  }
   493  
   494  // NewContextUpgradeableFilterer creates a new log filterer instance of ContextUpgradeable, bound to a specific deployed contract.
   495  func NewContextUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextUpgradeableFilterer, error) {
   496  	contract, err := bindContextUpgradeable(address, nil, nil, filterer)
   497  	if err != nil {
   498  		return nil, err
   499  	}
   500  	return &ContextUpgradeableFilterer{contract: contract}, nil
   501  }
   502  
   503  // bindContextUpgradeable binds a generic wrapper to an already deployed contract.
   504  func bindContextUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   505  	parsed, err := ContextUpgradeableMetaData.GetAbi()
   506  	if err != nil {
   507  		return nil, err
   508  	}
   509  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   510  }
   511  
   512  // Call invokes the (constant) contract method with params as input values and
   513  // sets the output to result. The result type might be a single field for simple
   514  // returns, a slice of interfaces for anonymous returns and a struct for named
   515  // returns.
   516  func (_ContextUpgradeable *ContextUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   517  	return _ContextUpgradeable.Contract.ContextUpgradeableCaller.contract.Call(opts, result, method, params...)
   518  }
   519  
   520  // Transfer initiates a plain transaction to move funds to the contract, calling
   521  // its default method if one is available.
   522  func (_ContextUpgradeable *ContextUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   523  	return _ContextUpgradeable.Contract.ContextUpgradeableTransactor.contract.Transfer(opts)
   524  }
   525  
   526  // Transact invokes the (paid) contract method with params as input values.
   527  func (_ContextUpgradeable *ContextUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   528  	return _ContextUpgradeable.Contract.ContextUpgradeableTransactor.contract.Transact(opts, method, params...)
   529  }
   530  
   531  // Call invokes the (constant) contract method with params as input values and
   532  // sets the output to result. The result type might be a single field for simple
   533  // returns, a slice of interfaces for anonymous returns and a struct for named
   534  // returns.
   535  func (_ContextUpgradeable *ContextUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   536  	return _ContextUpgradeable.Contract.contract.Call(opts, result, method, params...)
   537  }
   538  
   539  // Transfer initiates a plain transaction to move funds to the contract, calling
   540  // its default method if one is available.
   541  func (_ContextUpgradeable *ContextUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   542  	return _ContextUpgradeable.Contract.contract.Transfer(opts)
   543  }
   544  
   545  // Transact invokes the (paid) contract method with params as input values.
   546  func (_ContextUpgradeable *ContextUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   547  	return _ContextUpgradeable.Contract.contract.Transact(opts, method, params...)
   548  }
   549  
   550  // ContextUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContextUpgradeable contract.
   551  type ContextUpgradeableInitializedIterator struct {
   552  	Event *ContextUpgradeableInitialized // Event containing the contract specifics and raw log
   553  
   554  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   555  	event    string              // Event name to use for unpacking event data
   556  
   557  	logs chan types.Log      // Log channel receiving the found contract events
   558  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   559  	done bool                // Whether the subscription completed delivering logs
   560  	fail error               // Occurred error to stop iteration
   561  }
   562  
   563  // Next advances the iterator to the subsequent event, returning whether there
   564  // are any more events found. In case of a retrieval or parsing error, false is
   565  // returned and Error() can be queried for the exact failure.
   566  func (it *ContextUpgradeableInitializedIterator) Next() bool {
   567  	// If the iterator failed, stop iterating
   568  	if it.fail != nil {
   569  		return false
   570  	}
   571  	// If the iterator completed, deliver directly whatever's available
   572  	if it.done {
   573  		select {
   574  		case log := <-it.logs:
   575  			it.Event = new(ContextUpgradeableInitialized)
   576  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   577  				it.fail = err
   578  				return false
   579  			}
   580  			it.Event.Raw = log
   581  			return true
   582  
   583  		default:
   584  			return false
   585  		}
   586  	}
   587  	// Iterator still in progress, wait for either a data or an error event
   588  	select {
   589  	case log := <-it.logs:
   590  		it.Event = new(ContextUpgradeableInitialized)
   591  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   592  			it.fail = err
   593  			return false
   594  		}
   595  		it.Event.Raw = log
   596  		return true
   597  
   598  	case err := <-it.sub.Err():
   599  		it.done = true
   600  		it.fail = err
   601  		return it.Next()
   602  	}
   603  }
   604  
   605  // Error returns any retrieval or parsing error occurred during filtering.
   606  func (it *ContextUpgradeableInitializedIterator) Error() error {
   607  	return it.fail
   608  }
   609  
   610  // Close terminates the iteration process, releasing any pending underlying
   611  // resources.
   612  func (it *ContextUpgradeableInitializedIterator) Close() error {
   613  	it.sub.Unsubscribe()
   614  	return nil
   615  }
   616  
   617  // ContextUpgradeableInitialized represents a Initialized event raised by the ContextUpgradeable contract.
   618  type ContextUpgradeableInitialized struct {
   619  	Version uint8
   620  	Raw     types.Log // Blockchain specific contextual infos
   621  }
   622  
   623  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
   624  //
   625  // Solidity: event Initialized(uint8 version)
   626  func (_ContextUpgradeable *ContextUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContextUpgradeableInitializedIterator, error) {
   627  	logs, sub, err := _ContextUpgradeable.contract.FilterLogs(opts, "Initialized")
   628  	if err != nil {
   629  		return nil, err
   630  	}
   631  	return &ContextUpgradeableInitializedIterator{contract: _ContextUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil
   632  }
   633  
   634  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
   635  //
   636  // Solidity: event Initialized(uint8 version)
   637  func (_ContextUpgradeable *ContextUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ContextUpgradeableInitialized) (event.Subscription, error) {
   638  	logs, sub, err := _ContextUpgradeable.contract.WatchLogs(opts, "Initialized")
   639  	if err != nil {
   640  		return nil, err
   641  	}
   642  	return event.NewSubscription(func(quit <-chan struct{}) error {
   643  		defer sub.Unsubscribe()
   644  		for {
   645  			select {
   646  			case log := <-logs:
   647  				// New log arrived, parse the event and forward to the user
   648  				event := new(ContextUpgradeableInitialized)
   649  				if err := _ContextUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
   650  					return err
   651  				}
   652  				event.Raw = log
   653  
   654  				select {
   655  				case sink <- event:
   656  				case err := <-sub.Err():
   657  					return err
   658  				case <-quit:
   659  					return nil
   660  				}
   661  			case err := <-sub.Err():
   662  				return err
   663  			case <-quit:
   664  				return nil
   665  			}
   666  		}
   667  	}), nil
   668  }
   669  
   670  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
   671  //
   672  // Solidity: event Initialized(uint8 version)
   673  func (_ContextUpgradeable *ContextUpgradeableFilterer) ParseInitialized(log types.Log) (*ContextUpgradeableInitialized, error) {
   674  	event := new(ContextUpgradeableInitialized)
   675  	if err := _ContextUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
   676  		return nil, err
   677  	}
   678  	return event, nil
   679  }
   680  
   681  // ERC1967ProxyMetaData contains all meta data concerning the ERC1967Proxy contract.
   682  var ERC1967ProxyMetaData = &bind.MetaData{
   683  	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]",
   684  	Bin: "0x60806040526040516104e13803806104e1833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ba60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60b1806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122032c702aadb8f2fab233834f027cfcd56871fb029b5b175f59fdf7b82bb7dd0dc64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
   685  }
   686  
   687  // ERC1967ProxyABI is the input ABI used to generate the binding from.
   688  // Deprecated: Use ERC1967ProxyMetaData.ABI instead.
   689  var ERC1967ProxyABI = ERC1967ProxyMetaData.ABI
   690  
   691  // ERC1967ProxyBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   692  const ERC1967ProxyBinRuntime = `608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122032c702aadb8f2fab233834f027cfcd56871fb029b5b175f59fdf7b82bb7dd0dc64736f6c63430008130033`
   693  
   694  // ERC1967ProxyBin is the compiled bytecode used for deploying new contracts.
   695  // Deprecated: Use ERC1967ProxyMetaData.Bin instead.
   696  var ERC1967ProxyBin = ERC1967ProxyMetaData.Bin
   697  
   698  // DeployERC1967Proxy deploys a new Klaytn contract, binding an instance of ERC1967Proxy to it.
   699  func DeployERC1967Proxy(auth *bind.TransactOpts, backend bind.ContractBackend, _logic common.Address, _data []byte) (common.Address, *types.Transaction, *ERC1967Proxy, error) {
   700  	parsed, err := ERC1967ProxyMetaData.GetAbi()
   701  	if err != nil {
   702  		return common.Address{}, nil, nil, err
   703  	}
   704  	if parsed == nil {
   705  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   706  	}
   707  
   708  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC1967ProxyBin), backend, _logic, _data)
   709  	if err != nil {
   710  		return common.Address{}, nil, nil, err
   711  	}
   712  	return address, tx, &ERC1967Proxy{ERC1967ProxyCaller: ERC1967ProxyCaller{contract: contract}, ERC1967ProxyTransactor: ERC1967ProxyTransactor{contract: contract}, ERC1967ProxyFilterer: ERC1967ProxyFilterer{contract: contract}}, nil
   713  }
   714  
   715  // ERC1967Proxy is an auto generated Go binding around a Klaytn contract.
   716  type ERC1967Proxy struct {
   717  	ERC1967ProxyCaller     // Read-only binding to the contract
   718  	ERC1967ProxyTransactor // Write-only binding to the contract
   719  	ERC1967ProxyFilterer   // Log filterer for contract events
   720  }
   721  
   722  // ERC1967ProxyCaller is an auto generated read-only Go binding around a Klaytn contract.
   723  type ERC1967ProxyCaller struct {
   724  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   725  }
   726  
   727  // ERC1967ProxyTransactor is an auto generated write-only Go binding around a Klaytn contract.
   728  type ERC1967ProxyTransactor struct {
   729  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   730  }
   731  
   732  // ERC1967ProxyFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   733  type ERC1967ProxyFilterer struct {
   734  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   735  }
   736  
   737  // ERC1967ProxySession is an auto generated Go binding around a Klaytn contract,
   738  // with pre-set call and transact options.
   739  type ERC1967ProxySession struct {
   740  	Contract     *ERC1967Proxy     // Generic contract binding to set the session for
   741  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   742  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   743  }
   744  
   745  // ERC1967ProxyCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   746  // with pre-set call options.
   747  type ERC1967ProxyCallerSession struct {
   748  	Contract *ERC1967ProxyCaller // Generic contract caller binding to set the session for
   749  	CallOpts bind.CallOpts       // Call options to use throughout this session
   750  }
   751  
   752  // ERC1967ProxyTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   753  // with pre-set transact options.
   754  type ERC1967ProxyTransactorSession struct {
   755  	Contract     *ERC1967ProxyTransactor // Generic contract transactor binding to set the session for
   756  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
   757  }
   758  
   759  // ERC1967ProxyRaw is an auto generated low-level Go binding around a Klaytn contract.
   760  type ERC1967ProxyRaw struct {
   761  	Contract *ERC1967Proxy // Generic contract binding to access the raw methods on
   762  }
   763  
   764  // ERC1967ProxyCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   765  type ERC1967ProxyCallerRaw struct {
   766  	Contract *ERC1967ProxyCaller // Generic read-only contract binding to access the raw methods on
   767  }
   768  
   769  // ERC1967ProxyTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   770  type ERC1967ProxyTransactorRaw struct {
   771  	Contract *ERC1967ProxyTransactor // Generic write-only contract binding to access the raw methods on
   772  }
   773  
   774  // NewERC1967Proxy creates a new instance of ERC1967Proxy, bound to a specific deployed contract.
   775  func NewERC1967Proxy(address common.Address, backend bind.ContractBackend) (*ERC1967Proxy, error) {
   776  	contract, err := bindERC1967Proxy(address, backend, backend, backend)
   777  	if err != nil {
   778  		return nil, err
   779  	}
   780  	return &ERC1967Proxy{ERC1967ProxyCaller: ERC1967ProxyCaller{contract: contract}, ERC1967ProxyTransactor: ERC1967ProxyTransactor{contract: contract}, ERC1967ProxyFilterer: ERC1967ProxyFilterer{contract: contract}}, nil
   781  }
   782  
   783  // NewERC1967ProxyCaller creates a new read-only instance of ERC1967Proxy, bound to a specific deployed contract.
   784  func NewERC1967ProxyCaller(address common.Address, caller bind.ContractCaller) (*ERC1967ProxyCaller, error) {
   785  	contract, err := bindERC1967Proxy(address, caller, nil, nil)
   786  	if err != nil {
   787  		return nil, err
   788  	}
   789  	return &ERC1967ProxyCaller{contract: contract}, nil
   790  }
   791  
   792  // NewERC1967ProxyTransactor creates a new write-only instance of ERC1967Proxy, bound to a specific deployed contract.
   793  func NewERC1967ProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC1967ProxyTransactor, error) {
   794  	contract, err := bindERC1967Proxy(address, nil, transactor, nil)
   795  	if err != nil {
   796  		return nil, err
   797  	}
   798  	return &ERC1967ProxyTransactor{contract: contract}, nil
   799  }
   800  
   801  // NewERC1967ProxyFilterer creates a new log filterer instance of ERC1967Proxy, bound to a specific deployed contract.
   802  func NewERC1967ProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC1967ProxyFilterer, error) {
   803  	contract, err := bindERC1967Proxy(address, nil, nil, filterer)
   804  	if err != nil {
   805  		return nil, err
   806  	}
   807  	return &ERC1967ProxyFilterer{contract: contract}, nil
   808  }
   809  
   810  // bindERC1967Proxy binds a generic wrapper to an already deployed contract.
   811  func bindERC1967Proxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   812  	parsed, err := ERC1967ProxyMetaData.GetAbi()
   813  	if err != nil {
   814  		return nil, err
   815  	}
   816  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   817  }
   818  
   819  // Call invokes the (constant) contract method with params as input values and
   820  // sets the output to result. The result type might be a single field for simple
   821  // returns, a slice of interfaces for anonymous returns and a struct for named
   822  // returns.
   823  func (_ERC1967Proxy *ERC1967ProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   824  	return _ERC1967Proxy.Contract.ERC1967ProxyCaller.contract.Call(opts, result, method, params...)
   825  }
   826  
   827  // Transfer initiates a plain transaction to move funds to the contract, calling
   828  // its default method if one is available.
   829  func (_ERC1967Proxy *ERC1967ProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   830  	return _ERC1967Proxy.Contract.ERC1967ProxyTransactor.contract.Transfer(opts)
   831  }
   832  
   833  // Transact invokes the (paid) contract method with params as input values.
   834  func (_ERC1967Proxy *ERC1967ProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   835  	return _ERC1967Proxy.Contract.ERC1967ProxyTransactor.contract.Transact(opts, method, params...)
   836  }
   837  
   838  // Call invokes the (constant) contract method with params as input values and
   839  // sets the output to result. The result type might be a single field for simple
   840  // returns, a slice of interfaces for anonymous returns and a struct for named
   841  // returns.
   842  func (_ERC1967Proxy *ERC1967ProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   843  	return _ERC1967Proxy.Contract.contract.Call(opts, result, method, params...)
   844  }
   845  
   846  // Transfer initiates a plain transaction to move funds to the contract, calling
   847  // its default method if one is available.
   848  func (_ERC1967Proxy *ERC1967ProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   849  	return _ERC1967Proxy.Contract.contract.Transfer(opts)
   850  }
   851  
   852  // Transact invokes the (paid) contract method with params as input values.
   853  func (_ERC1967Proxy *ERC1967ProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   854  	return _ERC1967Proxy.Contract.contract.Transact(opts, method, params...)
   855  }
   856  
   857  // Fallback is a paid mutator transaction binding the contract fallback function.
   858  //
   859  // Solidity: fallback() payable returns()
   860  func (_ERC1967Proxy *ERC1967ProxyTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) {
   861  	return _ERC1967Proxy.contract.RawTransact(opts, calldata)
   862  }
   863  
   864  // Fallback is a paid mutator transaction binding the contract fallback function.
   865  //
   866  // Solidity: fallback() payable returns()
   867  func (_ERC1967Proxy *ERC1967ProxySession) Fallback(calldata []byte) (*types.Transaction, error) {
   868  	return _ERC1967Proxy.Contract.Fallback(&_ERC1967Proxy.TransactOpts, calldata)
   869  }
   870  
   871  // Fallback is a paid mutator transaction binding the contract fallback function.
   872  //
   873  // Solidity: fallback() payable returns()
   874  func (_ERC1967Proxy *ERC1967ProxyTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) {
   875  	return _ERC1967Proxy.Contract.Fallback(&_ERC1967Proxy.TransactOpts, calldata)
   876  }
   877  
   878  // Receive is a paid mutator transaction binding the contract receive function.
   879  //
   880  // Solidity: receive() payable returns()
   881  func (_ERC1967Proxy *ERC1967ProxyTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) {
   882  	return _ERC1967Proxy.contract.RawTransact(opts, nil) // calldata is disallowed for receive function
   883  }
   884  
   885  // Receive is a paid mutator transaction binding the contract receive function.
   886  //
   887  // Solidity: receive() payable returns()
   888  func (_ERC1967Proxy *ERC1967ProxySession) Receive() (*types.Transaction, error) {
   889  	return _ERC1967Proxy.Contract.Receive(&_ERC1967Proxy.TransactOpts)
   890  }
   891  
   892  // Receive is a paid mutator transaction binding the contract receive function.
   893  //
   894  // Solidity: receive() payable returns()
   895  func (_ERC1967Proxy *ERC1967ProxyTransactorSession) Receive() (*types.Transaction, error) {
   896  	return _ERC1967Proxy.Contract.Receive(&_ERC1967Proxy.TransactOpts)
   897  }
   898  
   899  // ERC1967ProxyAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the ERC1967Proxy contract.
   900  type ERC1967ProxyAdminChangedIterator struct {
   901  	Event *ERC1967ProxyAdminChanged // Event containing the contract specifics and raw log
   902  
   903  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   904  	event    string              // Event name to use for unpacking event data
   905  
   906  	logs chan types.Log      // Log channel receiving the found contract events
   907  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   908  	done bool                // Whether the subscription completed delivering logs
   909  	fail error               // Occurred error to stop iteration
   910  }
   911  
   912  // Next advances the iterator to the subsequent event, returning whether there
   913  // are any more events found. In case of a retrieval or parsing error, false is
   914  // returned and Error() can be queried for the exact failure.
   915  func (it *ERC1967ProxyAdminChangedIterator) Next() bool {
   916  	// If the iterator failed, stop iterating
   917  	if it.fail != nil {
   918  		return false
   919  	}
   920  	// If the iterator completed, deliver directly whatever's available
   921  	if it.done {
   922  		select {
   923  		case log := <-it.logs:
   924  			it.Event = new(ERC1967ProxyAdminChanged)
   925  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   926  				it.fail = err
   927  				return false
   928  			}
   929  			it.Event.Raw = log
   930  			return true
   931  
   932  		default:
   933  			return false
   934  		}
   935  	}
   936  	// Iterator still in progress, wait for either a data or an error event
   937  	select {
   938  	case log := <-it.logs:
   939  		it.Event = new(ERC1967ProxyAdminChanged)
   940  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   941  			it.fail = err
   942  			return false
   943  		}
   944  		it.Event.Raw = log
   945  		return true
   946  
   947  	case err := <-it.sub.Err():
   948  		it.done = true
   949  		it.fail = err
   950  		return it.Next()
   951  	}
   952  }
   953  
   954  // Error returns any retrieval or parsing error occurred during filtering.
   955  func (it *ERC1967ProxyAdminChangedIterator) Error() error {
   956  	return it.fail
   957  }
   958  
   959  // Close terminates the iteration process, releasing any pending underlying
   960  // resources.
   961  func (it *ERC1967ProxyAdminChangedIterator) Close() error {
   962  	it.sub.Unsubscribe()
   963  	return nil
   964  }
   965  
   966  // ERC1967ProxyAdminChanged represents a AdminChanged event raised by the ERC1967Proxy contract.
   967  type ERC1967ProxyAdminChanged struct {
   968  	PreviousAdmin common.Address
   969  	NewAdmin      common.Address
   970  	Raw           types.Log // Blockchain specific contextual infos
   971  }
   972  
   973  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
   974  //
   975  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
   976  func (_ERC1967Proxy *ERC1967ProxyFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*ERC1967ProxyAdminChangedIterator, error) {
   977  	logs, sub, err := _ERC1967Proxy.contract.FilterLogs(opts, "AdminChanged")
   978  	if err != nil {
   979  		return nil, err
   980  	}
   981  	return &ERC1967ProxyAdminChangedIterator{contract: _ERC1967Proxy.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
   982  }
   983  
   984  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
   985  //
   986  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
   987  func (_ERC1967Proxy *ERC1967ProxyFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC1967ProxyAdminChanged) (event.Subscription, error) {
   988  	logs, sub, err := _ERC1967Proxy.contract.WatchLogs(opts, "AdminChanged")
   989  	if err != nil {
   990  		return nil, err
   991  	}
   992  	return event.NewSubscription(func(quit <-chan struct{}) error {
   993  		defer sub.Unsubscribe()
   994  		for {
   995  			select {
   996  			case log := <-logs:
   997  				// New log arrived, parse the event and forward to the user
   998  				event := new(ERC1967ProxyAdminChanged)
   999  				if err := _ERC1967Proxy.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  1000  					return err
  1001  				}
  1002  				event.Raw = log
  1003  
  1004  				select {
  1005  				case sink <- event:
  1006  				case err := <-sub.Err():
  1007  					return err
  1008  				case <-quit:
  1009  					return nil
  1010  				}
  1011  			case err := <-sub.Err():
  1012  				return err
  1013  			case <-quit:
  1014  				return nil
  1015  			}
  1016  		}
  1017  	}), nil
  1018  }
  1019  
  1020  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1021  //
  1022  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1023  func (_ERC1967Proxy *ERC1967ProxyFilterer) ParseAdminChanged(log types.Log) (*ERC1967ProxyAdminChanged, error) {
  1024  	event := new(ERC1967ProxyAdminChanged)
  1025  	if err := _ERC1967Proxy.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  1026  		return nil, err
  1027  	}
  1028  	return event, nil
  1029  }
  1030  
  1031  // ERC1967ProxyBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the ERC1967Proxy contract.
  1032  type ERC1967ProxyBeaconUpgradedIterator struct {
  1033  	Event *ERC1967ProxyBeaconUpgraded // Event containing the contract specifics and raw log
  1034  
  1035  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1036  	event    string              // Event name to use for unpacking event data
  1037  
  1038  	logs chan types.Log      // Log channel receiving the found contract events
  1039  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1040  	done bool                // Whether the subscription completed delivering logs
  1041  	fail error               // Occurred error to stop iteration
  1042  }
  1043  
  1044  // Next advances the iterator to the subsequent event, returning whether there
  1045  // are any more events found. In case of a retrieval or parsing error, false is
  1046  // returned and Error() can be queried for the exact failure.
  1047  func (it *ERC1967ProxyBeaconUpgradedIterator) Next() bool {
  1048  	// If the iterator failed, stop iterating
  1049  	if it.fail != nil {
  1050  		return false
  1051  	}
  1052  	// If the iterator completed, deliver directly whatever's available
  1053  	if it.done {
  1054  		select {
  1055  		case log := <-it.logs:
  1056  			it.Event = new(ERC1967ProxyBeaconUpgraded)
  1057  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1058  				it.fail = err
  1059  				return false
  1060  			}
  1061  			it.Event.Raw = log
  1062  			return true
  1063  
  1064  		default:
  1065  			return false
  1066  		}
  1067  	}
  1068  	// Iterator still in progress, wait for either a data or an error event
  1069  	select {
  1070  	case log := <-it.logs:
  1071  		it.Event = new(ERC1967ProxyBeaconUpgraded)
  1072  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1073  			it.fail = err
  1074  			return false
  1075  		}
  1076  		it.Event.Raw = log
  1077  		return true
  1078  
  1079  	case err := <-it.sub.Err():
  1080  		it.done = true
  1081  		it.fail = err
  1082  		return it.Next()
  1083  	}
  1084  }
  1085  
  1086  // Error returns any retrieval or parsing error occurred during filtering.
  1087  func (it *ERC1967ProxyBeaconUpgradedIterator) Error() error {
  1088  	return it.fail
  1089  }
  1090  
  1091  // Close terminates the iteration process, releasing any pending underlying
  1092  // resources.
  1093  func (it *ERC1967ProxyBeaconUpgradedIterator) Close() error {
  1094  	it.sub.Unsubscribe()
  1095  	return nil
  1096  }
  1097  
  1098  // ERC1967ProxyBeaconUpgraded represents a BeaconUpgraded event raised by the ERC1967Proxy contract.
  1099  type ERC1967ProxyBeaconUpgraded struct {
  1100  	Beacon common.Address
  1101  	Raw    types.Log // Blockchain specific contextual infos
  1102  }
  1103  
  1104  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1105  //
  1106  // Solidity: event BeaconUpgraded(address indexed beacon)
  1107  func (_ERC1967Proxy *ERC1967ProxyFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*ERC1967ProxyBeaconUpgradedIterator, error) {
  1108  	var beaconRule []interface{}
  1109  	for _, beaconItem := range beacon {
  1110  		beaconRule = append(beaconRule, beaconItem)
  1111  	}
  1112  
  1113  	logs, sub, err := _ERC1967Proxy.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  1114  	if err != nil {
  1115  		return nil, err
  1116  	}
  1117  	return &ERC1967ProxyBeaconUpgradedIterator{contract: _ERC1967Proxy.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  1118  }
  1119  
  1120  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1121  //
  1122  // Solidity: event BeaconUpgraded(address indexed beacon)
  1123  func (_ERC1967Proxy *ERC1967ProxyFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967ProxyBeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  1124  	var beaconRule []interface{}
  1125  	for _, beaconItem := range beacon {
  1126  		beaconRule = append(beaconRule, beaconItem)
  1127  	}
  1128  
  1129  	logs, sub, err := _ERC1967Proxy.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  1130  	if err != nil {
  1131  		return nil, err
  1132  	}
  1133  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1134  		defer sub.Unsubscribe()
  1135  		for {
  1136  			select {
  1137  			case log := <-logs:
  1138  				// New log arrived, parse the event and forward to the user
  1139  				event := new(ERC1967ProxyBeaconUpgraded)
  1140  				if err := _ERC1967Proxy.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  1141  					return err
  1142  				}
  1143  				event.Raw = log
  1144  
  1145  				select {
  1146  				case sink <- event:
  1147  				case err := <-sub.Err():
  1148  					return err
  1149  				case <-quit:
  1150  					return nil
  1151  				}
  1152  			case err := <-sub.Err():
  1153  				return err
  1154  			case <-quit:
  1155  				return nil
  1156  			}
  1157  		}
  1158  	}), nil
  1159  }
  1160  
  1161  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1162  //
  1163  // Solidity: event BeaconUpgraded(address indexed beacon)
  1164  func (_ERC1967Proxy *ERC1967ProxyFilterer) ParseBeaconUpgraded(log types.Log) (*ERC1967ProxyBeaconUpgraded, error) {
  1165  	event := new(ERC1967ProxyBeaconUpgraded)
  1166  	if err := _ERC1967Proxy.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  1167  		return nil, err
  1168  	}
  1169  	return event, nil
  1170  }
  1171  
  1172  // ERC1967ProxyUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ERC1967Proxy contract.
  1173  type ERC1967ProxyUpgradedIterator struct {
  1174  	Event *ERC1967ProxyUpgraded // Event containing the contract specifics and raw log
  1175  
  1176  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1177  	event    string              // Event name to use for unpacking event data
  1178  
  1179  	logs chan types.Log      // Log channel receiving the found contract events
  1180  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1181  	done bool                // Whether the subscription completed delivering logs
  1182  	fail error               // Occurred error to stop iteration
  1183  }
  1184  
  1185  // Next advances the iterator to the subsequent event, returning whether there
  1186  // are any more events found. In case of a retrieval or parsing error, false is
  1187  // returned and Error() can be queried for the exact failure.
  1188  func (it *ERC1967ProxyUpgradedIterator) Next() bool {
  1189  	// If the iterator failed, stop iterating
  1190  	if it.fail != nil {
  1191  		return false
  1192  	}
  1193  	// If the iterator completed, deliver directly whatever's available
  1194  	if it.done {
  1195  		select {
  1196  		case log := <-it.logs:
  1197  			it.Event = new(ERC1967ProxyUpgraded)
  1198  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1199  				it.fail = err
  1200  				return false
  1201  			}
  1202  			it.Event.Raw = log
  1203  			return true
  1204  
  1205  		default:
  1206  			return false
  1207  		}
  1208  	}
  1209  	// Iterator still in progress, wait for either a data or an error event
  1210  	select {
  1211  	case log := <-it.logs:
  1212  		it.Event = new(ERC1967ProxyUpgraded)
  1213  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1214  			it.fail = err
  1215  			return false
  1216  		}
  1217  		it.Event.Raw = log
  1218  		return true
  1219  
  1220  	case err := <-it.sub.Err():
  1221  		it.done = true
  1222  		it.fail = err
  1223  		return it.Next()
  1224  	}
  1225  }
  1226  
  1227  // Error returns any retrieval or parsing error occurred during filtering.
  1228  func (it *ERC1967ProxyUpgradedIterator) Error() error {
  1229  	return it.fail
  1230  }
  1231  
  1232  // Close terminates the iteration process, releasing any pending underlying
  1233  // resources.
  1234  func (it *ERC1967ProxyUpgradedIterator) Close() error {
  1235  	it.sub.Unsubscribe()
  1236  	return nil
  1237  }
  1238  
  1239  // ERC1967ProxyUpgraded represents a Upgraded event raised by the ERC1967Proxy contract.
  1240  type ERC1967ProxyUpgraded struct {
  1241  	Implementation common.Address
  1242  	Raw            types.Log // Blockchain specific contextual infos
  1243  }
  1244  
  1245  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  1246  //
  1247  // Solidity: event Upgraded(address indexed implementation)
  1248  func (_ERC1967Proxy *ERC1967ProxyFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ERC1967ProxyUpgradedIterator, error) {
  1249  	var implementationRule []interface{}
  1250  	for _, implementationItem := range implementation {
  1251  		implementationRule = append(implementationRule, implementationItem)
  1252  	}
  1253  
  1254  	logs, sub, err := _ERC1967Proxy.contract.FilterLogs(opts, "Upgraded", implementationRule)
  1255  	if err != nil {
  1256  		return nil, err
  1257  	}
  1258  	return &ERC1967ProxyUpgradedIterator{contract: _ERC1967Proxy.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  1259  }
  1260  
  1261  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  1262  //
  1263  // Solidity: event Upgraded(address indexed implementation)
  1264  func (_ERC1967Proxy *ERC1967ProxyFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967ProxyUpgraded, implementation []common.Address) (event.Subscription, error) {
  1265  	var implementationRule []interface{}
  1266  	for _, implementationItem := range implementation {
  1267  		implementationRule = append(implementationRule, implementationItem)
  1268  	}
  1269  
  1270  	logs, sub, err := _ERC1967Proxy.contract.WatchLogs(opts, "Upgraded", implementationRule)
  1271  	if err != nil {
  1272  		return nil, err
  1273  	}
  1274  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1275  		defer sub.Unsubscribe()
  1276  		for {
  1277  			select {
  1278  			case log := <-logs:
  1279  				// New log arrived, parse the event and forward to the user
  1280  				event := new(ERC1967ProxyUpgraded)
  1281  				if err := _ERC1967Proxy.contract.UnpackLog(event, "Upgraded", log); err != nil {
  1282  					return err
  1283  				}
  1284  				event.Raw = log
  1285  
  1286  				select {
  1287  				case sink <- event:
  1288  				case err := <-sub.Err():
  1289  					return err
  1290  				case <-quit:
  1291  					return nil
  1292  				}
  1293  			case err := <-sub.Err():
  1294  				return err
  1295  			case <-quit:
  1296  				return nil
  1297  			}
  1298  		}
  1299  	}), nil
  1300  }
  1301  
  1302  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  1303  //
  1304  // Solidity: event Upgraded(address indexed implementation)
  1305  func (_ERC1967Proxy *ERC1967ProxyFilterer) ParseUpgraded(log types.Log) (*ERC1967ProxyUpgraded, error) {
  1306  	event := new(ERC1967ProxyUpgraded)
  1307  	if err := _ERC1967Proxy.contract.UnpackLog(event, "Upgraded", log); err != nil {
  1308  		return nil, err
  1309  	}
  1310  	return event, nil
  1311  }
  1312  
  1313  // ERC1967UpgradeMetaData contains all meta data concerning the ERC1967Upgrade contract.
  1314  var ERC1967UpgradeMetaData = &bind.MetaData{
  1315  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]",
  1316  }
  1317  
  1318  // ERC1967UpgradeABI is the input ABI used to generate the binding from.
  1319  // Deprecated: Use ERC1967UpgradeMetaData.ABI instead.
  1320  var ERC1967UpgradeABI = ERC1967UpgradeMetaData.ABI
  1321  
  1322  // ERC1967UpgradeBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  1323  const ERC1967UpgradeBinRuntime = ``
  1324  
  1325  // ERC1967Upgrade is an auto generated Go binding around a Klaytn contract.
  1326  type ERC1967Upgrade struct {
  1327  	ERC1967UpgradeCaller     // Read-only binding to the contract
  1328  	ERC1967UpgradeTransactor // Write-only binding to the contract
  1329  	ERC1967UpgradeFilterer   // Log filterer for contract events
  1330  }
  1331  
  1332  // ERC1967UpgradeCaller is an auto generated read-only Go binding around a Klaytn contract.
  1333  type ERC1967UpgradeCaller struct {
  1334  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1335  }
  1336  
  1337  // ERC1967UpgradeTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1338  type ERC1967UpgradeTransactor struct {
  1339  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1340  }
  1341  
  1342  // ERC1967UpgradeFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1343  type ERC1967UpgradeFilterer struct {
  1344  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1345  }
  1346  
  1347  // ERC1967UpgradeSession is an auto generated Go binding around a Klaytn contract,
  1348  // with pre-set call and transact options.
  1349  type ERC1967UpgradeSession struct {
  1350  	Contract     *ERC1967Upgrade   // Generic contract binding to set the session for
  1351  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1352  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1353  }
  1354  
  1355  // ERC1967UpgradeCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1356  // with pre-set call options.
  1357  type ERC1967UpgradeCallerSession struct {
  1358  	Contract *ERC1967UpgradeCaller // Generic contract caller binding to set the session for
  1359  	CallOpts bind.CallOpts         // Call options to use throughout this session
  1360  }
  1361  
  1362  // ERC1967UpgradeTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1363  // with pre-set transact options.
  1364  type ERC1967UpgradeTransactorSession struct {
  1365  	Contract     *ERC1967UpgradeTransactor // Generic contract transactor binding to set the session for
  1366  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  1367  }
  1368  
  1369  // ERC1967UpgradeRaw is an auto generated low-level Go binding around a Klaytn contract.
  1370  type ERC1967UpgradeRaw struct {
  1371  	Contract *ERC1967Upgrade // Generic contract binding to access the raw methods on
  1372  }
  1373  
  1374  // ERC1967UpgradeCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1375  type ERC1967UpgradeCallerRaw struct {
  1376  	Contract *ERC1967UpgradeCaller // Generic read-only contract binding to access the raw methods on
  1377  }
  1378  
  1379  // ERC1967UpgradeTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1380  type ERC1967UpgradeTransactorRaw struct {
  1381  	Contract *ERC1967UpgradeTransactor // Generic write-only contract binding to access the raw methods on
  1382  }
  1383  
  1384  // NewERC1967Upgrade creates a new instance of ERC1967Upgrade, bound to a specific deployed contract.
  1385  func NewERC1967Upgrade(address common.Address, backend bind.ContractBackend) (*ERC1967Upgrade, error) {
  1386  	contract, err := bindERC1967Upgrade(address, backend, backend, backend)
  1387  	if err != nil {
  1388  		return nil, err
  1389  	}
  1390  	return &ERC1967Upgrade{ERC1967UpgradeCaller: ERC1967UpgradeCaller{contract: contract}, ERC1967UpgradeTransactor: ERC1967UpgradeTransactor{contract: contract}, ERC1967UpgradeFilterer: ERC1967UpgradeFilterer{contract: contract}}, nil
  1391  }
  1392  
  1393  // NewERC1967UpgradeCaller creates a new read-only instance of ERC1967Upgrade, bound to a specific deployed contract.
  1394  func NewERC1967UpgradeCaller(address common.Address, caller bind.ContractCaller) (*ERC1967UpgradeCaller, error) {
  1395  	contract, err := bindERC1967Upgrade(address, caller, nil, nil)
  1396  	if err != nil {
  1397  		return nil, err
  1398  	}
  1399  	return &ERC1967UpgradeCaller{contract: contract}, nil
  1400  }
  1401  
  1402  // NewERC1967UpgradeTransactor creates a new write-only instance of ERC1967Upgrade, bound to a specific deployed contract.
  1403  func NewERC1967UpgradeTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC1967UpgradeTransactor, error) {
  1404  	contract, err := bindERC1967Upgrade(address, nil, transactor, nil)
  1405  	if err != nil {
  1406  		return nil, err
  1407  	}
  1408  	return &ERC1967UpgradeTransactor{contract: contract}, nil
  1409  }
  1410  
  1411  // NewERC1967UpgradeFilterer creates a new log filterer instance of ERC1967Upgrade, bound to a specific deployed contract.
  1412  func NewERC1967UpgradeFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC1967UpgradeFilterer, error) {
  1413  	contract, err := bindERC1967Upgrade(address, nil, nil, filterer)
  1414  	if err != nil {
  1415  		return nil, err
  1416  	}
  1417  	return &ERC1967UpgradeFilterer{contract: contract}, nil
  1418  }
  1419  
  1420  // bindERC1967Upgrade binds a generic wrapper to an already deployed contract.
  1421  func bindERC1967Upgrade(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1422  	parsed, err := ERC1967UpgradeMetaData.GetAbi()
  1423  	if err != nil {
  1424  		return nil, err
  1425  	}
  1426  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  1427  }
  1428  
  1429  // Call invokes the (constant) contract method with params as input values and
  1430  // sets the output to result. The result type might be a single field for simple
  1431  // returns, a slice of interfaces for anonymous returns and a struct for named
  1432  // returns.
  1433  func (_ERC1967Upgrade *ERC1967UpgradeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1434  	return _ERC1967Upgrade.Contract.ERC1967UpgradeCaller.contract.Call(opts, result, method, params...)
  1435  }
  1436  
  1437  // Transfer initiates a plain transaction to move funds to the contract, calling
  1438  // its default method if one is available.
  1439  func (_ERC1967Upgrade *ERC1967UpgradeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1440  	return _ERC1967Upgrade.Contract.ERC1967UpgradeTransactor.contract.Transfer(opts)
  1441  }
  1442  
  1443  // Transact invokes the (paid) contract method with params as input values.
  1444  func (_ERC1967Upgrade *ERC1967UpgradeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1445  	return _ERC1967Upgrade.Contract.ERC1967UpgradeTransactor.contract.Transact(opts, method, params...)
  1446  }
  1447  
  1448  // Call invokes the (constant) contract method with params as input values and
  1449  // sets the output to result. The result type might be a single field for simple
  1450  // returns, a slice of interfaces for anonymous returns and a struct for named
  1451  // returns.
  1452  func (_ERC1967Upgrade *ERC1967UpgradeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1453  	return _ERC1967Upgrade.Contract.contract.Call(opts, result, method, params...)
  1454  }
  1455  
  1456  // Transfer initiates a plain transaction to move funds to the contract, calling
  1457  // its default method if one is available.
  1458  func (_ERC1967Upgrade *ERC1967UpgradeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1459  	return _ERC1967Upgrade.Contract.contract.Transfer(opts)
  1460  }
  1461  
  1462  // Transact invokes the (paid) contract method with params as input values.
  1463  func (_ERC1967Upgrade *ERC1967UpgradeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1464  	return _ERC1967Upgrade.Contract.contract.Transact(opts, method, params...)
  1465  }
  1466  
  1467  // ERC1967UpgradeAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the ERC1967Upgrade contract.
  1468  type ERC1967UpgradeAdminChangedIterator struct {
  1469  	Event *ERC1967UpgradeAdminChanged // Event containing the contract specifics and raw log
  1470  
  1471  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1472  	event    string              // Event name to use for unpacking event data
  1473  
  1474  	logs chan types.Log      // Log channel receiving the found contract events
  1475  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1476  	done bool                // Whether the subscription completed delivering logs
  1477  	fail error               // Occurred error to stop iteration
  1478  }
  1479  
  1480  // Next advances the iterator to the subsequent event, returning whether there
  1481  // are any more events found. In case of a retrieval or parsing error, false is
  1482  // returned and Error() can be queried for the exact failure.
  1483  func (it *ERC1967UpgradeAdminChangedIterator) Next() bool {
  1484  	// If the iterator failed, stop iterating
  1485  	if it.fail != nil {
  1486  		return false
  1487  	}
  1488  	// If the iterator completed, deliver directly whatever's available
  1489  	if it.done {
  1490  		select {
  1491  		case log := <-it.logs:
  1492  			it.Event = new(ERC1967UpgradeAdminChanged)
  1493  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1494  				it.fail = err
  1495  				return false
  1496  			}
  1497  			it.Event.Raw = log
  1498  			return true
  1499  
  1500  		default:
  1501  			return false
  1502  		}
  1503  	}
  1504  	// Iterator still in progress, wait for either a data or an error event
  1505  	select {
  1506  	case log := <-it.logs:
  1507  		it.Event = new(ERC1967UpgradeAdminChanged)
  1508  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1509  			it.fail = err
  1510  			return false
  1511  		}
  1512  		it.Event.Raw = log
  1513  		return true
  1514  
  1515  	case err := <-it.sub.Err():
  1516  		it.done = true
  1517  		it.fail = err
  1518  		return it.Next()
  1519  	}
  1520  }
  1521  
  1522  // Error returns any retrieval or parsing error occurred during filtering.
  1523  func (it *ERC1967UpgradeAdminChangedIterator) Error() error {
  1524  	return it.fail
  1525  }
  1526  
  1527  // Close terminates the iteration process, releasing any pending underlying
  1528  // resources.
  1529  func (it *ERC1967UpgradeAdminChangedIterator) Close() error {
  1530  	it.sub.Unsubscribe()
  1531  	return nil
  1532  }
  1533  
  1534  // ERC1967UpgradeAdminChanged represents a AdminChanged event raised by the ERC1967Upgrade contract.
  1535  type ERC1967UpgradeAdminChanged struct {
  1536  	PreviousAdmin common.Address
  1537  	NewAdmin      common.Address
  1538  	Raw           types.Log // Blockchain specific contextual infos
  1539  }
  1540  
  1541  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1542  //
  1543  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1544  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*ERC1967UpgradeAdminChangedIterator, error) {
  1545  	logs, sub, err := _ERC1967Upgrade.contract.FilterLogs(opts, "AdminChanged")
  1546  	if err != nil {
  1547  		return nil, err
  1548  	}
  1549  	return &ERC1967UpgradeAdminChangedIterator{contract: _ERC1967Upgrade.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  1550  }
  1551  
  1552  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1553  //
  1554  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1555  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeAdminChanged) (event.Subscription, error) {
  1556  	logs, sub, err := _ERC1967Upgrade.contract.WatchLogs(opts, "AdminChanged")
  1557  	if err != nil {
  1558  		return nil, err
  1559  	}
  1560  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1561  		defer sub.Unsubscribe()
  1562  		for {
  1563  			select {
  1564  			case log := <-logs:
  1565  				// New log arrived, parse the event and forward to the user
  1566  				event := new(ERC1967UpgradeAdminChanged)
  1567  				if err := _ERC1967Upgrade.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  1568  					return err
  1569  				}
  1570  				event.Raw = log
  1571  
  1572  				select {
  1573  				case sink <- event:
  1574  				case err := <-sub.Err():
  1575  					return err
  1576  				case <-quit:
  1577  					return nil
  1578  				}
  1579  			case err := <-sub.Err():
  1580  				return err
  1581  			case <-quit:
  1582  				return nil
  1583  			}
  1584  		}
  1585  	}), nil
  1586  }
  1587  
  1588  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1589  //
  1590  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1591  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) ParseAdminChanged(log types.Log) (*ERC1967UpgradeAdminChanged, error) {
  1592  	event := new(ERC1967UpgradeAdminChanged)
  1593  	if err := _ERC1967Upgrade.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  1594  		return nil, err
  1595  	}
  1596  	return event, nil
  1597  }
  1598  
  1599  // ERC1967UpgradeBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the ERC1967Upgrade contract.
  1600  type ERC1967UpgradeBeaconUpgradedIterator struct {
  1601  	Event *ERC1967UpgradeBeaconUpgraded // Event containing the contract specifics and raw log
  1602  
  1603  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1604  	event    string              // Event name to use for unpacking event data
  1605  
  1606  	logs chan types.Log      // Log channel receiving the found contract events
  1607  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1608  	done bool                // Whether the subscription completed delivering logs
  1609  	fail error               // Occurred error to stop iteration
  1610  }
  1611  
  1612  // Next advances the iterator to the subsequent event, returning whether there
  1613  // are any more events found. In case of a retrieval or parsing error, false is
  1614  // returned and Error() can be queried for the exact failure.
  1615  func (it *ERC1967UpgradeBeaconUpgradedIterator) Next() bool {
  1616  	// If the iterator failed, stop iterating
  1617  	if it.fail != nil {
  1618  		return false
  1619  	}
  1620  	// If the iterator completed, deliver directly whatever's available
  1621  	if it.done {
  1622  		select {
  1623  		case log := <-it.logs:
  1624  			it.Event = new(ERC1967UpgradeBeaconUpgraded)
  1625  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1626  				it.fail = err
  1627  				return false
  1628  			}
  1629  			it.Event.Raw = log
  1630  			return true
  1631  
  1632  		default:
  1633  			return false
  1634  		}
  1635  	}
  1636  	// Iterator still in progress, wait for either a data or an error event
  1637  	select {
  1638  	case log := <-it.logs:
  1639  		it.Event = new(ERC1967UpgradeBeaconUpgraded)
  1640  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1641  			it.fail = err
  1642  			return false
  1643  		}
  1644  		it.Event.Raw = log
  1645  		return true
  1646  
  1647  	case err := <-it.sub.Err():
  1648  		it.done = true
  1649  		it.fail = err
  1650  		return it.Next()
  1651  	}
  1652  }
  1653  
  1654  // Error returns any retrieval or parsing error occurred during filtering.
  1655  func (it *ERC1967UpgradeBeaconUpgradedIterator) Error() error {
  1656  	return it.fail
  1657  }
  1658  
  1659  // Close terminates the iteration process, releasing any pending underlying
  1660  // resources.
  1661  func (it *ERC1967UpgradeBeaconUpgradedIterator) Close() error {
  1662  	it.sub.Unsubscribe()
  1663  	return nil
  1664  }
  1665  
  1666  // ERC1967UpgradeBeaconUpgraded represents a BeaconUpgraded event raised by the ERC1967Upgrade contract.
  1667  type ERC1967UpgradeBeaconUpgraded struct {
  1668  	Beacon common.Address
  1669  	Raw    types.Log // Blockchain specific contextual infos
  1670  }
  1671  
  1672  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1673  //
  1674  // Solidity: event BeaconUpgraded(address indexed beacon)
  1675  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*ERC1967UpgradeBeaconUpgradedIterator, error) {
  1676  	var beaconRule []interface{}
  1677  	for _, beaconItem := range beacon {
  1678  		beaconRule = append(beaconRule, beaconItem)
  1679  	}
  1680  
  1681  	logs, sub, err := _ERC1967Upgrade.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  1682  	if err != nil {
  1683  		return nil, err
  1684  	}
  1685  	return &ERC1967UpgradeBeaconUpgradedIterator{contract: _ERC1967Upgrade.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  1686  }
  1687  
  1688  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1689  //
  1690  // Solidity: event BeaconUpgraded(address indexed beacon)
  1691  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeBeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  1692  	var beaconRule []interface{}
  1693  	for _, beaconItem := range beacon {
  1694  		beaconRule = append(beaconRule, beaconItem)
  1695  	}
  1696  
  1697  	logs, sub, err := _ERC1967Upgrade.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  1698  	if err != nil {
  1699  		return nil, err
  1700  	}
  1701  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1702  		defer sub.Unsubscribe()
  1703  		for {
  1704  			select {
  1705  			case log := <-logs:
  1706  				// New log arrived, parse the event and forward to the user
  1707  				event := new(ERC1967UpgradeBeaconUpgraded)
  1708  				if err := _ERC1967Upgrade.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  1709  					return err
  1710  				}
  1711  				event.Raw = log
  1712  
  1713  				select {
  1714  				case sink <- event:
  1715  				case err := <-sub.Err():
  1716  					return err
  1717  				case <-quit:
  1718  					return nil
  1719  				}
  1720  			case err := <-sub.Err():
  1721  				return err
  1722  			case <-quit:
  1723  				return nil
  1724  			}
  1725  		}
  1726  	}), nil
  1727  }
  1728  
  1729  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1730  //
  1731  // Solidity: event BeaconUpgraded(address indexed beacon)
  1732  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) ParseBeaconUpgraded(log types.Log) (*ERC1967UpgradeBeaconUpgraded, error) {
  1733  	event := new(ERC1967UpgradeBeaconUpgraded)
  1734  	if err := _ERC1967Upgrade.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  1735  		return nil, err
  1736  	}
  1737  	return event, nil
  1738  }
  1739  
  1740  // ERC1967UpgradeUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ERC1967Upgrade contract.
  1741  type ERC1967UpgradeUpgradedIterator struct {
  1742  	Event *ERC1967UpgradeUpgraded // Event containing the contract specifics and raw log
  1743  
  1744  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1745  	event    string              // Event name to use for unpacking event data
  1746  
  1747  	logs chan types.Log      // Log channel receiving the found contract events
  1748  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1749  	done bool                // Whether the subscription completed delivering logs
  1750  	fail error               // Occurred error to stop iteration
  1751  }
  1752  
  1753  // Next advances the iterator to the subsequent event, returning whether there
  1754  // are any more events found. In case of a retrieval or parsing error, false is
  1755  // returned and Error() can be queried for the exact failure.
  1756  func (it *ERC1967UpgradeUpgradedIterator) Next() bool {
  1757  	// If the iterator failed, stop iterating
  1758  	if it.fail != nil {
  1759  		return false
  1760  	}
  1761  	// If the iterator completed, deliver directly whatever's available
  1762  	if it.done {
  1763  		select {
  1764  		case log := <-it.logs:
  1765  			it.Event = new(ERC1967UpgradeUpgraded)
  1766  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1767  				it.fail = err
  1768  				return false
  1769  			}
  1770  			it.Event.Raw = log
  1771  			return true
  1772  
  1773  		default:
  1774  			return false
  1775  		}
  1776  	}
  1777  	// Iterator still in progress, wait for either a data or an error event
  1778  	select {
  1779  	case log := <-it.logs:
  1780  		it.Event = new(ERC1967UpgradeUpgraded)
  1781  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1782  			it.fail = err
  1783  			return false
  1784  		}
  1785  		it.Event.Raw = log
  1786  		return true
  1787  
  1788  	case err := <-it.sub.Err():
  1789  		it.done = true
  1790  		it.fail = err
  1791  		return it.Next()
  1792  	}
  1793  }
  1794  
  1795  // Error returns any retrieval or parsing error occurred during filtering.
  1796  func (it *ERC1967UpgradeUpgradedIterator) Error() error {
  1797  	return it.fail
  1798  }
  1799  
  1800  // Close terminates the iteration process, releasing any pending underlying
  1801  // resources.
  1802  func (it *ERC1967UpgradeUpgradedIterator) Close() error {
  1803  	it.sub.Unsubscribe()
  1804  	return nil
  1805  }
  1806  
  1807  // ERC1967UpgradeUpgraded represents a Upgraded event raised by the ERC1967Upgrade contract.
  1808  type ERC1967UpgradeUpgraded struct {
  1809  	Implementation common.Address
  1810  	Raw            types.Log // Blockchain specific contextual infos
  1811  }
  1812  
  1813  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  1814  //
  1815  // Solidity: event Upgraded(address indexed implementation)
  1816  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ERC1967UpgradeUpgradedIterator, error) {
  1817  	var implementationRule []interface{}
  1818  	for _, implementationItem := range implementation {
  1819  		implementationRule = append(implementationRule, implementationItem)
  1820  	}
  1821  
  1822  	logs, sub, err := _ERC1967Upgrade.contract.FilterLogs(opts, "Upgraded", implementationRule)
  1823  	if err != nil {
  1824  		return nil, err
  1825  	}
  1826  	return &ERC1967UpgradeUpgradedIterator{contract: _ERC1967Upgrade.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  1827  }
  1828  
  1829  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  1830  //
  1831  // Solidity: event Upgraded(address indexed implementation)
  1832  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgraded, implementation []common.Address) (event.Subscription, error) {
  1833  	var implementationRule []interface{}
  1834  	for _, implementationItem := range implementation {
  1835  		implementationRule = append(implementationRule, implementationItem)
  1836  	}
  1837  
  1838  	logs, sub, err := _ERC1967Upgrade.contract.WatchLogs(opts, "Upgraded", implementationRule)
  1839  	if err != nil {
  1840  		return nil, err
  1841  	}
  1842  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1843  		defer sub.Unsubscribe()
  1844  		for {
  1845  			select {
  1846  			case log := <-logs:
  1847  				// New log arrived, parse the event and forward to the user
  1848  				event := new(ERC1967UpgradeUpgraded)
  1849  				if err := _ERC1967Upgrade.contract.UnpackLog(event, "Upgraded", log); err != nil {
  1850  					return err
  1851  				}
  1852  				event.Raw = log
  1853  
  1854  				select {
  1855  				case sink <- event:
  1856  				case err := <-sub.Err():
  1857  					return err
  1858  				case <-quit:
  1859  					return nil
  1860  				}
  1861  			case err := <-sub.Err():
  1862  				return err
  1863  			case <-quit:
  1864  				return nil
  1865  			}
  1866  		}
  1867  	}), nil
  1868  }
  1869  
  1870  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  1871  //
  1872  // Solidity: event Upgraded(address indexed implementation)
  1873  func (_ERC1967Upgrade *ERC1967UpgradeFilterer) ParseUpgraded(log types.Log) (*ERC1967UpgradeUpgraded, error) {
  1874  	event := new(ERC1967UpgradeUpgraded)
  1875  	if err := _ERC1967Upgrade.contract.UnpackLog(event, "Upgraded", log); err != nil {
  1876  		return nil, err
  1877  	}
  1878  	return event, nil
  1879  }
  1880  
  1881  // ERC1967UpgradeUpgradeableMetaData contains all meta data concerning the ERC1967UpgradeUpgradeable contract.
  1882  var ERC1967UpgradeUpgradeableMetaData = &bind.MetaData{
  1883  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]",
  1884  }
  1885  
  1886  // ERC1967UpgradeUpgradeableABI is the input ABI used to generate the binding from.
  1887  // Deprecated: Use ERC1967UpgradeUpgradeableMetaData.ABI instead.
  1888  var ERC1967UpgradeUpgradeableABI = ERC1967UpgradeUpgradeableMetaData.ABI
  1889  
  1890  // ERC1967UpgradeUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  1891  const ERC1967UpgradeUpgradeableBinRuntime = ``
  1892  
  1893  // ERC1967UpgradeUpgradeable is an auto generated Go binding around a Klaytn contract.
  1894  type ERC1967UpgradeUpgradeable struct {
  1895  	ERC1967UpgradeUpgradeableCaller     // Read-only binding to the contract
  1896  	ERC1967UpgradeUpgradeableTransactor // Write-only binding to the contract
  1897  	ERC1967UpgradeUpgradeableFilterer   // Log filterer for contract events
  1898  }
  1899  
  1900  // ERC1967UpgradeUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
  1901  type ERC1967UpgradeUpgradeableCaller struct {
  1902  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1903  }
  1904  
  1905  // ERC1967UpgradeUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1906  type ERC1967UpgradeUpgradeableTransactor struct {
  1907  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1908  }
  1909  
  1910  // ERC1967UpgradeUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1911  type ERC1967UpgradeUpgradeableFilterer struct {
  1912  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1913  }
  1914  
  1915  // ERC1967UpgradeUpgradeableSession is an auto generated Go binding around a Klaytn contract,
  1916  // with pre-set call and transact options.
  1917  type ERC1967UpgradeUpgradeableSession struct {
  1918  	Contract     *ERC1967UpgradeUpgradeable // Generic contract binding to set the session for
  1919  	CallOpts     bind.CallOpts              // Call options to use throughout this session
  1920  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
  1921  }
  1922  
  1923  // ERC1967UpgradeUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1924  // with pre-set call options.
  1925  type ERC1967UpgradeUpgradeableCallerSession struct {
  1926  	Contract *ERC1967UpgradeUpgradeableCaller // Generic contract caller binding to set the session for
  1927  	CallOpts bind.CallOpts                    // Call options to use throughout this session
  1928  }
  1929  
  1930  // ERC1967UpgradeUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1931  // with pre-set transact options.
  1932  type ERC1967UpgradeUpgradeableTransactorSession struct {
  1933  	Contract     *ERC1967UpgradeUpgradeableTransactor // Generic contract transactor binding to set the session for
  1934  	TransactOpts bind.TransactOpts                    // Transaction auth options to use throughout this session
  1935  }
  1936  
  1937  // ERC1967UpgradeUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
  1938  type ERC1967UpgradeUpgradeableRaw struct {
  1939  	Contract *ERC1967UpgradeUpgradeable // Generic contract binding to access the raw methods on
  1940  }
  1941  
  1942  // ERC1967UpgradeUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1943  type ERC1967UpgradeUpgradeableCallerRaw struct {
  1944  	Contract *ERC1967UpgradeUpgradeableCaller // Generic read-only contract binding to access the raw methods on
  1945  }
  1946  
  1947  // ERC1967UpgradeUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1948  type ERC1967UpgradeUpgradeableTransactorRaw struct {
  1949  	Contract *ERC1967UpgradeUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
  1950  }
  1951  
  1952  // NewERC1967UpgradeUpgradeable creates a new instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract.
  1953  func NewERC1967UpgradeUpgradeable(address common.Address, backend bind.ContractBackend) (*ERC1967UpgradeUpgradeable, error) {
  1954  	contract, err := bindERC1967UpgradeUpgradeable(address, backend, backend, backend)
  1955  	if err != nil {
  1956  		return nil, err
  1957  	}
  1958  	return &ERC1967UpgradeUpgradeable{ERC1967UpgradeUpgradeableCaller: ERC1967UpgradeUpgradeableCaller{contract: contract}, ERC1967UpgradeUpgradeableTransactor: ERC1967UpgradeUpgradeableTransactor{contract: contract}, ERC1967UpgradeUpgradeableFilterer: ERC1967UpgradeUpgradeableFilterer{contract: contract}}, nil
  1959  }
  1960  
  1961  // NewERC1967UpgradeUpgradeableCaller creates a new read-only instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract.
  1962  func NewERC1967UpgradeUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*ERC1967UpgradeUpgradeableCaller, error) {
  1963  	contract, err := bindERC1967UpgradeUpgradeable(address, caller, nil, nil)
  1964  	if err != nil {
  1965  		return nil, err
  1966  	}
  1967  	return &ERC1967UpgradeUpgradeableCaller{contract: contract}, nil
  1968  }
  1969  
  1970  // NewERC1967UpgradeUpgradeableTransactor creates a new write-only instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract.
  1971  func NewERC1967UpgradeUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC1967UpgradeUpgradeableTransactor, error) {
  1972  	contract, err := bindERC1967UpgradeUpgradeable(address, nil, transactor, nil)
  1973  	if err != nil {
  1974  		return nil, err
  1975  	}
  1976  	return &ERC1967UpgradeUpgradeableTransactor{contract: contract}, nil
  1977  }
  1978  
  1979  // NewERC1967UpgradeUpgradeableFilterer creates a new log filterer instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract.
  1980  func NewERC1967UpgradeUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC1967UpgradeUpgradeableFilterer, error) {
  1981  	contract, err := bindERC1967UpgradeUpgradeable(address, nil, nil, filterer)
  1982  	if err != nil {
  1983  		return nil, err
  1984  	}
  1985  	return &ERC1967UpgradeUpgradeableFilterer{contract: contract}, nil
  1986  }
  1987  
  1988  // bindERC1967UpgradeUpgradeable binds a generic wrapper to an already deployed contract.
  1989  func bindERC1967UpgradeUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1990  	parsed, err := ERC1967UpgradeUpgradeableMetaData.GetAbi()
  1991  	if err != nil {
  1992  		return nil, err
  1993  	}
  1994  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  1995  }
  1996  
  1997  // Call invokes the (constant) contract method with params as input values and
  1998  // sets the output to result. The result type might be a single field for simple
  1999  // returns, a slice of interfaces for anonymous returns and a struct for named
  2000  // returns.
  2001  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2002  	return _ERC1967UpgradeUpgradeable.Contract.ERC1967UpgradeUpgradeableCaller.contract.Call(opts, result, method, params...)
  2003  }
  2004  
  2005  // Transfer initiates a plain transaction to move funds to the contract, calling
  2006  // its default method if one is available.
  2007  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2008  	return _ERC1967UpgradeUpgradeable.Contract.ERC1967UpgradeUpgradeableTransactor.contract.Transfer(opts)
  2009  }
  2010  
  2011  // Transact invokes the (paid) contract method with params as input values.
  2012  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2013  	return _ERC1967UpgradeUpgradeable.Contract.ERC1967UpgradeUpgradeableTransactor.contract.Transact(opts, method, params...)
  2014  }
  2015  
  2016  // Call invokes the (constant) contract method with params as input values and
  2017  // sets the output to result. The result type might be a single field for simple
  2018  // returns, a slice of interfaces for anonymous returns and a struct for named
  2019  // returns.
  2020  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2021  	return _ERC1967UpgradeUpgradeable.Contract.contract.Call(opts, result, method, params...)
  2022  }
  2023  
  2024  // Transfer initiates a plain transaction to move funds to the contract, calling
  2025  // its default method if one is available.
  2026  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2027  	return _ERC1967UpgradeUpgradeable.Contract.contract.Transfer(opts)
  2028  }
  2029  
  2030  // Transact invokes the (paid) contract method with params as input values.
  2031  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2032  	return _ERC1967UpgradeUpgradeable.Contract.contract.Transact(opts, method, params...)
  2033  }
  2034  
  2035  // ERC1967UpgradeUpgradeableAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the ERC1967UpgradeUpgradeable contract.
  2036  type ERC1967UpgradeUpgradeableAdminChangedIterator struct {
  2037  	Event *ERC1967UpgradeUpgradeableAdminChanged // Event containing the contract specifics and raw log
  2038  
  2039  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2040  	event    string              // Event name to use for unpacking event data
  2041  
  2042  	logs chan types.Log      // Log channel receiving the found contract events
  2043  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2044  	done bool                // Whether the subscription completed delivering logs
  2045  	fail error               // Occurred error to stop iteration
  2046  }
  2047  
  2048  // Next advances the iterator to the subsequent event, returning whether there
  2049  // are any more events found. In case of a retrieval or parsing error, false is
  2050  // returned and Error() can be queried for the exact failure.
  2051  func (it *ERC1967UpgradeUpgradeableAdminChangedIterator) Next() bool {
  2052  	// If the iterator failed, stop iterating
  2053  	if it.fail != nil {
  2054  		return false
  2055  	}
  2056  	// If the iterator completed, deliver directly whatever's available
  2057  	if it.done {
  2058  		select {
  2059  		case log := <-it.logs:
  2060  			it.Event = new(ERC1967UpgradeUpgradeableAdminChanged)
  2061  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2062  				it.fail = err
  2063  				return false
  2064  			}
  2065  			it.Event.Raw = log
  2066  			return true
  2067  
  2068  		default:
  2069  			return false
  2070  		}
  2071  	}
  2072  	// Iterator still in progress, wait for either a data or an error event
  2073  	select {
  2074  	case log := <-it.logs:
  2075  		it.Event = new(ERC1967UpgradeUpgradeableAdminChanged)
  2076  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2077  			it.fail = err
  2078  			return false
  2079  		}
  2080  		it.Event.Raw = log
  2081  		return true
  2082  
  2083  	case err := <-it.sub.Err():
  2084  		it.done = true
  2085  		it.fail = err
  2086  		return it.Next()
  2087  	}
  2088  }
  2089  
  2090  // Error returns any retrieval or parsing error occurred during filtering.
  2091  func (it *ERC1967UpgradeUpgradeableAdminChangedIterator) Error() error {
  2092  	return it.fail
  2093  }
  2094  
  2095  // Close terminates the iteration process, releasing any pending underlying
  2096  // resources.
  2097  func (it *ERC1967UpgradeUpgradeableAdminChangedIterator) Close() error {
  2098  	it.sub.Unsubscribe()
  2099  	return nil
  2100  }
  2101  
  2102  // ERC1967UpgradeUpgradeableAdminChanged represents a AdminChanged event raised by the ERC1967UpgradeUpgradeable contract.
  2103  type ERC1967UpgradeUpgradeableAdminChanged struct {
  2104  	PreviousAdmin common.Address
  2105  	NewAdmin      common.Address
  2106  	Raw           types.Log // Blockchain specific contextual infos
  2107  }
  2108  
  2109  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  2110  //
  2111  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  2112  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*ERC1967UpgradeUpgradeableAdminChangedIterator, error) {
  2113  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "AdminChanged")
  2114  	if err != nil {
  2115  		return nil, err
  2116  	}
  2117  	return &ERC1967UpgradeUpgradeableAdminChangedIterator{contract: _ERC1967UpgradeUpgradeable.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  2118  }
  2119  
  2120  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  2121  //
  2122  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  2123  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableAdminChanged) (event.Subscription, error) {
  2124  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.WatchLogs(opts, "AdminChanged")
  2125  	if err != nil {
  2126  		return nil, err
  2127  	}
  2128  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2129  		defer sub.Unsubscribe()
  2130  		for {
  2131  			select {
  2132  			case log := <-logs:
  2133  				// New log arrived, parse the event and forward to the user
  2134  				event := new(ERC1967UpgradeUpgradeableAdminChanged)
  2135  				if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  2136  					return err
  2137  				}
  2138  				event.Raw = log
  2139  
  2140  				select {
  2141  				case sink <- event:
  2142  				case err := <-sub.Err():
  2143  					return err
  2144  				case <-quit:
  2145  					return nil
  2146  				}
  2147  			case err := <-sub.Err():
  2148  				return err
  2149  			case <-quit:
  2150  				return nil
  2151  			}
  2152  		}
  2153  	}), nil
  2154  }
  2155  
  2156  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  2157  //
  2158  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  2159  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseAdminChanged(log types.Log) (*ERC1967UpgradeUpgradeableAdminChanged, error) {
  2160  	event := new(ERC1967UpgradeUpgradeableAdminChanged)
  2161  	if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  2162  		return nil, err
  2163  	}
  2164  	return event, nil
  2165  }
  2166  
  2167  // ERC1967UpgradeUpgradeableBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the ERC1967UpgradeUpgradeable contract.
  2168  type ERC1967UpgradeUpgradeableBeaconUpgradedIterator struct {
  2169  	Event *ERC1967UpgradeUpgradeableBeaconUpgraded // Event containing the contract specifics and raw log
  2170  
  2171  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2172  	event    string              // Event name to use for unpacking event data
  2173  
  2174  	logs chan types.Log      // Log channel receiving the found contract events
  2175  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2176  	done bool                // Whether the subscription completed delivering logs
  2177  	fail error               // Occurred error to stop iteration
  2178  }
  2179  
  2180  // Next advances the iterator to the subsequent event, returning whether there
  2181  // are any more events found. In case of a retrieval or parsing error, false is
  2182  // returned and Error() can be queried for the exact failure.
  2183  func (it *ERC1967UpgradeUpgradeableBeaconUpgradedIterator) Next() bool {
  2184  	// If the iterator failed, stop iterating
  2185  	if it.fail != nil {
  2186  		return false
  2187  	}
  2188  	// If the iterator completed, deliver directly whatever's available
  2189  	if it.done {
  2190  		select {
  2191  		case log := <-it.logs:
  2192  			it.Event = new(ERC1967UpgradeUpgradeableBeaconUpgraded)
  2193  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2194  				it.fail = err
  2195  				return false
  2196  			}
  2197  			it.Event.Raw = log
  2198  			return true
  2199  
  2200  		default:
  2201  			return false
  2202  		}
  2203  	}
  2204  	// Iterator still in progress, wait for either a data or an error event
  2205  	select {
  2206  	case log := <-it.logs:
  2207  		it.Event = new(ERC1967UpgradeUpgradeableBeaconUpgraded)
  2208  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2209  			it.fail = err
  2210  			return false
  2211  		}
  2212  		it.Event.Raw = log
  2213  		return true
  2214  
  2215  	case err := <-it.sub.Err():
  2216  		it.done = true
  2217  		it.fail = err
  2218  		return it.Next()
  2219  	}
  2220  }
  2221  
  2222  // Error returns any retrieval or parsing error occurred during filtering.
  2223  func (it *ERC1967UpgradeUpgradeableBeaconUpgradedIterator) Error() error {
  2224  	return it.fail
  2225  }
  2226  
  2227  // Close terminates the iteration process, releasing any pending underlying
  2228  // resources.
  2229  func (it *ERC1967UpgradeUpgradeableBeaconUpgradedIterator) Close() error {
  2230  	it.sub.Unsubscribe()
  2231  	return nil
  2232  }
  2233  
  2234  // ERC1967UpgradeUpgradeableBeaconUpgraded represents a BeaconUpgraded event raised by the ERC1967UpgradeUpgradeable contract.
  2235  type ERC1967UpgradeUpgradeableBeaconUpgraded struct {
  2236  	Beacon common.Address
  2237  	Raw    types.Log // Blockchain specific contextual infos
  2238  }
  2239  
  2240  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  2241  //
  2242  // Solidity: event BeaconUpgraded(address indexed beacon)
  2243  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*ERC1967UpgradeUpgradeableBeaconUpgradedIterator, error) {
  2244  	var beaconRule []interface{}
  2245  	for _, beaconItem := range beacon {
  2246  		beaconRule = append(beaconRule, beaconItem)
  2247  	}
  2248  
  2249  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  2250  	if err != nil {
  2251  		return nil, err
  2252  	}
  2253  	return &ERC1967UpgradeUpgradeableBeaconUpgradedIterator{contract: _ERC1967UpgradeUpgradeable.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  2254  }
  2255  
  2256  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  2257  //
  2258  // Solidity: event BeaconUpgraded(address indexed beacon)
  2259  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableBeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  2260  	var beaconRule []interface{}
  2261  	for _, beaconItem := range beacon {
  2262  		beaconRule = append(beaconRule, beaconItem)
  2263  	}
  2264  
  2265  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  2266  	if err != nil {
  2267  		return nil, err
  2268  	}
  2269  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2270  		defer sub.Unsubscribe()
  2271  		for {
  2272  			select {
  2273  			case log := <-logs:
  2274  				// New log arrived, parse the event and forward to the user
  2275  				event := new(ERC1967UpgradeUpgradeableBeaconUpgraded)
  2276  				if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  2277  					return err
  2278  				}
  2279  				event.Raw = log
  2280  
  2281  				select {
  2282  				case sink <- event:
  2283  				case err := <-sub.Err():
  2284  					return err
  2285  				case <-quit:
  2286  					return nil
  2287  				}
  2288  			case err := <-sub.Err():
  2289  				return err
  2290  			case <-quit:
  2291  				return nil
  2292  			}
  2293  		}
  2294  	}), nil
  2295  }
  2296  
  2297  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  2298  //
  2299  // Solidity: event BeaconUpgraded(address indexed beacon)
  2300  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseBeaconUpgraded(log types.Log) (*ERC1967UpgradeUpgradeableBeaconUpgraded, error) {
  2301  	event := new(ERC1967UpgradeUpgradeableBeaconUpgraded)
  2302  	if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  2303  		return nil, err
  2304  	}
  2305  	return event, nil
  2306  }
  2307  
  2308  // ERC1967UpgradeUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ERC1967UpgradeUpgradeable contract.
  2309  type ERC1967UpgradeUpgradeableInitializedIterator struct {
  2310  	Event *ERC1967UpgradeUpgradeableInitialized // Event containing the contract specifics and raw log
  2311  
  2312  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2313  	event    string              // Event name to use for unpacking event data
  2314  
  2315  	logs chan types.Log      // Log channel receiving the found contract events
  2316  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2317  	done bool                // Whether the subscription completed delivering logs
  2318  	fail error               // Occurred error to stop iteration
  2319  }
  2320  
  2321  // Next advances the iterator to the subsequent event, returning whether there
  2322  // are any more events found. In case of a retrieval or parsing error, false is
  2323  // returned and Error() can be queried for the exact failure.
  2324  func (it *ERC1967UpgradeUpgradeableInitializedIterator) Next() bool {
  2325  	// If the iterator failed, stop iterating
  2326  	if it.fail != nil {
  2327  		return false
  2328  	}
  2329  	// If the iterator completed, deliver directly whatever's available
  2330  	if it.done {
  2331  		select {
  2332  		case log := <-it.logs:
  2333  			it.Event = new(ERC1967UpgradeUpgradeableInitialized)
  2334  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2335  				it.fail = err
  2336  				return false
  2337  			}
  2338  			it.Event.Raw = log
  2339  			return true
  2340  
  2341  		default:
  2342  			return false
  2343  		}
  2344  	}
  2345  	// Iterator still in progress, wait for either a data or an error event
  2346  	select {
  2347  	case log := <-it.logs:
  2348  		it.Event = new(ERC1967UpgradeUpgradeableInitialized)
  2349  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2350  			it.fail = err
  2351  			return false
  2352  		}
  2353  		it.Event.Raw = log
  2354  		return true
  2355  
  2356  	case err := <-it.sub.Err():
  2357  		it.done = true
  2358  		it.fail = err
  2359  		return it.Next()
  2360  	}
  2361  }
  2362  
  2363  // Error returns any retrieval or parsing error occurred during filtering.
  2364  func (it *ERC1967UpgradeUpgradeableInitializedIterator) Error() error {
  2365  	return it.fail
  2366  }
  2367  
  2368  // Close terminates the iteration process, releasing any pending underlying
  2369  // resources.
  2370  func (it *ERC1967UpgradeUpgradeableInitializedIterator) Close() error {
  2371  	it.sub.Unsubscribe()
  2372  	return nil
  2373  }
  2374  
  2375  // ERC1967UpgradeUpgradeableInitialized represents a Initialized event raised by the ERC1967UpgradeUpgradeable contract.
  2376  type ERC1967UpgradeUpgradeableInitialized struct {
  2377  	Version uint8
  2378  	Raw     types.Log // Blockchain specific contextual infos
  2379  }
  2380  
  2381  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  2382  //
  2383  // Solidity: event Initialized(uint8 version)
  2384  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC1967UpgradeUpgradeableInitializedIterator, error) {
  2385  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "Initialized")
  2386  	if err != nil {
  2387  		return nil, err
  2388  	}
  2389  	return &ERC1967UpgradeUpgradeableInitializedIterator{contract: _ERC1967UpgradeUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil
  2390  }
  2391  
  2392  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  2393  //
  2394  // Solidity: event Initialized(uint8 version)
  2395  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableInitialized) (event.Subscription, error) {
  2396  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.WatchLogs(opts, "Initialized")
  2397  	if err != nil {
  2398  		return nil, err
  2399  	}
  2400  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2401  		defer sub.Unsubscribe()
  2402  		for {
  2403  			select {
  2404  			case log := <-logs:
  2405  				// New log arrived, parse the event and forward to the user
  2406  				event := new(ERC1967UpgradeUpgradeableInitialized)
  2407  				if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
  2408  					return err
  2409  				}
  2410  				event.Raw = log
  2411  
  2412  				select {
  2413  				case sink <- event:
  2414  				case err := <-sub.Err():
  2415  					return err
  2416  				case <-quit:
  2417  					return nil
  2418  				}
  2419  			case err := <-sub.Err():
  2420  				return err
  2421  			case <-quit:
  2422  				return nil
  2423  			}
  2424  		}
  2425  	}), nil
  2426  }
  2427  
  2428  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  2429  //
  2430  // Solidity: event Initialized(uint8 version)
  2431  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseInitialized(log types.Log) (*ERC1967UpgradeUpgradeableInitialized, error) {
  2432  	event := new(ERC1967UpgradeUpgradeableInitialized)
  2433  	if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
  2434  		return nil, err
  2435  	}
  2436  	return event, nil
  2437  }
  2438  
  2439  // ERC1967UpgradeUpgradeableUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ERC1967UpgradeUpgradeable contract.
  2440  type ERC1967UpgradeUpgradeableUpgradedIterator struct {
  2441  	Event *ERC1967UpgradeUpgradeableUpgraded // Event containing the contract specifics and raw log
  2442  
  2443  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2444  	event    string              // Event name to use for unpacking event data
  2445  
  2446  	logs chan types.Log      // Log channel receiving the found contract events
  2447  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2448  	done bool                // Whether the subscription completed delivering logs
  2449  	fail error               // Occurred error to stop iteration
  2450  }
  2451  
  2452  // Next advances the iterator to the subsequent event, returning whether there
  2453  // are any more events found. In case of a retrieval or parsing error, false is
  2454  // returned and Error() can be queried for the exact failure.
  2455  func (it *ERC1967UpgradeUpgradeableUpgradedIterator) Next() bool {
  2456  	// If the iterator failed, stop iterating
  2457  	if it.fail != nil {
  2458  		return false
  2459  	}
  2460  	// If the iterator completed, deliver directly whatever's available
  2461  	if it.done {
  2462  		select {
  2463  		case log := <-it.logs:
  2464  			it.Event = new(ERC1967UpgradeUpgradeableUpgraded)
  2465  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2466  				it.fail = err
  2467  				return false
  2468  			}
  2469  			it.Event.Raw = log
  2470  			return true
  2471  
  2472  		default:
  2473  			return false
  2474  		}
  2475  	}
  2476  	// Iterator still in progress, wait for either a data or an error event
  2477  	select {
  2478  	case log := <-it.logs:
  2479  		it.Event = new(ERC1967UpgradeUpgradeableUpgraded)
  2480  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2481  			it.fail = err
  2482  			return false
  2483  		}
  2484  		it.Event.Raw = log
  2485  		return true
  2486  
  2487  	case err := <-it.sub.Err():
  2488  		it.done = true
  2489  		it.fail = err
  2490  		return it.Next()
  2491  	}
  2492  }
  2493  
  2494  // Error returns any retrieval or parsing error occurred during filtering.
  2495  func (it *ERC1967UpgradeUpgradeableUpgradedIterator) Error() error {
  2496  	return it.fail
  2497  }
  2498  
  2499  // Close terminates the iteration process, releasing any pending underlying
  2500  // resources.
  2501  func (it *ERC1967UpgradeUpgradeableUpgradedIterator) Close() error {
  2502  	it.sub.Unsubscribe()
  2503  	return nil
  2504  }
  2505  
  2506  // ERC1967UpgradeUpgradeableUpgraded represents a Upgraded event raised by the ERC1967UpgradeUpgradeable contract.
  2507  type ERC1967UpgradeUpgradeableUpgraded struct {
  2508  	Implementation common.Address
  2509  	Raw            types.Log // Blockchain specific contextual infos
  2510  }
  2511  
  2512  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  2513  //
  2514  // Solidity: event Upgraded(address indexed implementation)
  2515  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ERC1967UpgradeUpgradeableUpgradedIterator, error) {
  2516  	var implementationRule []interface{}
  2517  	for _, implementationItem := range implementation {
  2518  		implementationRule = append(implementationRule, implementationItem)
  2519  	}
  2520  
  2521  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "Upgraded", implementationRule)
  2522  	if err != nil {
  2523  		return nil, err
  2524  	}
  2525  	return &ERC1967UpgradeUpgradeableUpgradedIterator{contract: _ERC1967UpgradeUpgradeable.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  2526  }
  2527  
  2528  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  2529  //
  2530  // Solidity: event Upgraded(address indexed implementation)
  2531  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableUpgraded, implementation []common.Address) (event.Subscription, error) {
  2532  	var implementationRule []interface{}
  2533  	for _, implementationItem := range implementation {
  2534  		implementationRule = append(implementationRule, implementationItem)
  2535  	}
  2536  
  2537  	logs, sub, err := _ERC1967UpgradeUpgradeable.contract.WatchLogs(opts, "Upgraded", implementationRule)
  2538  	if err != nil {
  2539  		return nil, err
  2540  	}
  2541  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2542  		defer sub.Unsubscribe()
  2543  		for {
  2544  			select {
  2545  			case log := <-logs:
  2546  				// New log arrived, parse the event and forward to the user
  2547  				event := new(ERC1967UpgradeUpgradeableUpgraded)
  2548  				if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil {
  2549  					return err
  2550  				}
  2551  				event.Raw = log
  2552  
  2553  				select {
  2554  				case sink <- event:
  2555  				case err := <-sub.Err():
  2556  					return err
  2557  				case <-quit:
  2558  					return nil
  2559  				}
  2560  			case err := <-sub.Err():
  2561  				return err
  2562  			case <-quit:
  2563  				return nil
  2564  			}
  2565  		}
  2566  	}), nil
  2567  }
  2568  
  2569  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  2570  //
  2571  // Solidity: event Upgraded(address indexed implementation)
  2572  func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseUpgraded(log types.Log) (*ERC1967UpgradeUpgradeableUpgraded, error) {
  2573  	event := new(ERC1967UpgradeUpgradeableUpgraded)
  2574  	if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil {
  2575  		return nil, err
  2576  	}
  2577  	return event, nil
  2578  }
  2579  
  2580  // IAddressBookMetaData contains all meta data concerning the IAddressBook contract.
  2581  var IAddressBookMetaData = &bind.MetaData{
  2582  	ABI: "[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_adminList\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_requirement\",\"type\":\"uint256\"}],\"name\":\"constructContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllAddress\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"typeList\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"addressList\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllAddressInfo\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"cnNodeIdList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"cnStakingContractList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"cnRewardAddressList\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"pocContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"kirContractAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_cnNodeId\",\"type\":\"address\"}],\"name\":\"getCnInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"cnStakingcontract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"cnRewardAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPendingRequestList\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"pendingRequestList\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getRequestInfo\",\"outputs\":[{\"internalType\":\"enumIAddressBook.Functions\",\"name\":\"functionId\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"thirdArg\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"confirmers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"initialProposedTime\",\"type\":\"uint256\"},{\"internalType\":\"enumIAddressBook.RequestState\",\"name\":\"state\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enumIAddressBook.Functions\",\"name\":\"_functionId\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_firstArg\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_secondArg\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_thirdArg\",\"type\":\"bytes32\"}],\"name\":\"getRequestInfoByArgs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"confirmers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"initialProposedTime\",\"type\":\"uint256\"},{\"internalType\":\"enumIAddressBook.RequestState\",\"name\":\"state\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"adminList\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"requirement\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isActivated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConstructed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kirContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pocContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rewardAddress\",\"type\":\"address\"}],\"name\":\"reviseRewardAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enumIAddressBook.Functions\",\"name\":\"_functionId\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_firstArg\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_secondArg\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_thirdArg\",\"type\":\"bytes32\"}],\"name\":\"revokeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"spareContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submitActivateAddressBook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"submitAddAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submitClearRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"submitDeleteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_cnNodeId\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_cnStakingContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_cnRewardAddress\",\"type\":\"address\"}],\"name\":\"submitRegisterCnStakingContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_cnNodeId\",\"type\":\"address\"}],\"name\":\"submitUnregisterCnStakingContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_kirContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"submitUpdateKirContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pocContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"submitUpdatePocContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requirement\",\"type\":\"uint256\"}],\"name\":\"submitUpdateRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spareContractAddress\",\"type\":\"address\"}],\"name\":\"submitUpdateSpareContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  2583  	Sigs: map[string]string{
  2584  		"7894c366": "constructContract(address[],uint256)",
  2585  		"715b208b": "getAllAddress()",
  2586  		"160370b8": "getAllAddressInfo()",
  2587  		"15575d5a": "getCnInfo(address)",
  2588  		"da34a0bd": "getPendingRequestList()",
  2589  		"82d67e5a": "getRequestInfo(bytes32)",
  2590  		"407091eb": "getRequestInfoByArgs(uint8,bytes32,bytes32,bytes32)",
  2591  		"1865c57d": "getState()",
  2592  		"4a8c1fb4": "isActivated()",
  2593  		"50a5bb69": "isConstructed()",
  2594  		"b858dd95": "kirContractAddress()",
  2595  		"d267eda5": "pocContractAddress()",
  2596  		"832a2aad": "reviseRewardAddress(address)",
  2597  		"3f0628b1": "revokeRequest(uint8,bytes32,bytes32,bytes32)",
  2598  		"6abd623d": "spareContractAddress()",
  2599  		"feb15ca1": "submitActivateAddressBook()",
  2600  		"863f5c0a": "submitAddAdmin(address)",
  2601  		"87cd9feb": "submitClearRequest()",
  2602  		"791b5123": "submitDeleteAdmin(address)",
  2603  		"cc11efc0": "submitRegisterCnStakingContract(address,address,address)",
  2604  		"b5067706": "submitUnregisterCnStakingContract(address)",
  2605  		"9258d768": "submitUpdateKirContract(address,uint256)",
  2606  		"21ac4ad4": "submitUpdatePocContract(address,uint256)",
  2607  		"e748357b": "submitUpdateRequirement(uint256)",
  2608  		"394a144a": "submitUpdateSpareContract(address)",
  2609  	},
  2610  }
  2611  
  2612  // IAddressBookABI is the input ABI used to generate the binding from.
  2613  // Deprecated: Use IAddressBookMetaData.ABI instead.
  2614  var IAddressBookABI = IAddressBookMetaData.ABI
  2615  
  2616  // IAddressBookBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  2617  const IAddressBookBinRuntime = ``
  2618  
  2619  // IAddressBookFuncSigs maps the 4-byte function signature to its string representation.
  2620  // Deprecated: Use IAddressBookMetaData.Sigs instead.
  2621  var IAddressBookFuncSigs = IAddressBookMetaData.Sigs
  2622  
  2623  // IAddressBook is an auto generated Go binding around a Klaytn contract.
  2624  type IAddressBook struct {
  2625  	IAddressBookCaller     // Read-only binding to the contract
  2626  	IAddressBookTransactor // Write-only binding to the contract
  2627  	IAddressBookFilterer   // Log filterer for contract events
  2628  }
  2629  
  2630  // IAddressBookCaller is an auto generated read-only Go binding around a Klaytn contract.
  2631  type IAddressBookCaller struct {
  2632  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2633  }
  2634  
  2635  // IAddressBookTransactor is an auto generated write-only Go binding around a Klaytn contract.
  2636  type IAddressBookTransactor struct {
  2637  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2638  }
  2639  
  2640  // IAddressBookFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  2641  type IAddressBookFilterer struct {
  2642  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2643  }
  2644  
  2645  // IAddressBookSession is an auto generated Go binding around a Klaytn contract,
  2646  // with pre-set call and transact options.
  2647  type IAddressBookSession struct {
  2648  	Contract     *IAddressBook     // Generic contract binding to set the session for
  2649  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2650  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2651  }
  2652  
  2653  // IAddressBookCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  2654  // with pre-set call options.
  2655  type IAddressBookCallerSession struct {
  2656  	Contract *IAddressBookCaller // Generic contract caller binding to set the session for
  2657  	CallOpts bind.CallOpts       // Call options to use throughout this session
  2658  }
  2659  
  2660  // IAddressBookTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  2661  // with pre-set transact options.
  2662  type IAddressBookTransactorSession struct {
  2663  	Contract     *IAddressBookTransactor // Generic contract transactor binding to set the session for
  2664  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  2665  }
  2666  
  2667  // IAddressBookRaw is an auto generated low-level Go binding around a Klaytn contract.
  2668  type IAddressBookRaw struct {
  2669  	Contract *IAddressBook // Generic contract binding to access the raw methods on
  2670  }
  2671  
  2672  // IAddressBookCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  2673  type IAddressBookCallerRaw struct {
  2674  	Contract *IAddressBookCaller // Generic read-only contract binding to access the raw methods on
  2675  }
  2676  
  2677  // IAddressBookTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  2678  type IAddressBookTransactorRaw struct {
  2679  	Contract *IAddressBookTransactor // Generic write-only contract binding to access the raw methods on
  2680  }
  2681  
  2682  // NewIAddressBook creates a new instance of IAddressBook, bound to a specific deployed contract.
  2683  func NewIAddressBook(address common.Address, backend bind.ContractBackend) (*IAddressBook, error) {
  2684  	contract, err := bindIAddressBook(address, backend, backend, backend)
  2685  	if err != nil {
  2686  		return nil, err
  2687  	}
  2688  	return &IAddressBook{IAddressBookCaller: IAddressBookCaller{contract: contract}, IAddressBookTransactor: IAddressBookTransactor{contract: contract}, IAddressBookFilterer: IAddressBookFilterer{contract: contract}}, nil
  2689  }
  2690  
  2691  // NewIAddressBookCaller creates a new read-only instance of IAddressBook, bound to a specific deployed contract.
  2692  func NewIAddressBookCaller(address common.Address, caller bind.ContractCaller) (*IAddressBookCaller, error) {
  2693  	contract, err := bindIAddressBook(address, caller, nil, nil)
  2694  	if err != nil {
  2695  		return nil, err
  2696  	}
  2697  	return &IAddressBookCaller{contract: contract}, nil
  2698  }
  2699  
  2700  // NewIAddressBookTransactor creates a new write-only instance of IAddressBook, bound to a specific deployed contract.
  2701  func NewIAddressBookTransactor(address common.Address, transactor bind.ContractTransactor) (*IAddressBookTransactor, error) {
  2702  	contract, err := bindIAddressBook(address, nil, transactor, nil)
  2703  	if err != nil {
  2704  		return nil, err
  2705  	}
  2706  	return &IAddressBookTransactor{contract: contract}, nil
  2707  }
  2708  
  2709  // NewIAddressBookFilterer creates a new log filterer instance of IAddressBook, bound to a specific deployed contract.
  2710  func NewIAddressBookFilterer(address common.Address, filterer bind.ContractFilterer) (*IAddressBookFilterer, error) {
  2711  	contract, err := bindIAddressBook(address, nil, nil, filterer)
  2712  	if err != nil {
  2713  		return nil, err
  2714  	}
  2715  	return &IAddressBookFilterer{contract: contract}, nil
  2716  }
  2717  
  2718  // bindIAddressBook binds a generic wrapper to an already deployed contract.
  2719  func bindIAddressBook(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2720  	parsed, err := IAddressBookMetaData.GetAbi()
  2721  	if err != nil {
  2722  		return nil, err
  2723  	}
  2724  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  2725  }
  2726  
  2727  // Call invokes the (constant) contract method with params as input values and
  2728  // sets the output to result. The result type might be a single field for simple
  2729  // returns, a slice of interfaces for anonymous returns and a struct for named
  2730  // returns.
  2731  func (_IAddressBook *IAddressBookRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2732  	return _IAddressBook.Contract.IAddressBookCaller.contract.Call(opts, result, method, params...)
  2733  }
  2734  
  2735  // Transfer initiates a plain transaction to move funds to the contract, calling
  2736  // its default method if one is available.
  2737  func (_IAddressBook *IAddressBookRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2738  	return _IAddressBook.Contract.IAddressBookTransactor.contract.Transfer(opts)
  2739  }
  2740  
  2741  // Transact invokes the (paid) contract method with params as input values.
  2742  func (_IAddressBook *IAddressBookRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2743  	return _IAddressBook.Contract.IAddressBookTransactor.contract.Transact(opts, method, params...)
  2744  }
  2745  
  2746  // Call invokes the (constant) contract method with params as input values and
  2747  // sets the output to result. The result type might be a single field for simple
  2748  // returns, a slice of interfaces for anonymous returns and a struct for named
  2749  // returns.
  2750  func (_IAddressBook *IAddressBookCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2751  	return _IAddressBook.Contract.contract.Call(opts, result, method, params...)
  2752  }
  2753  
  2754  // Transfer initiates a plain transaction to move funds to the contract, calling
  2755  // its default method if one is available.
  2756  func (_IAddressBook *IAddressBookTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2757  	return _IAddressBook.Contract.contract.Transfer(opts)
  2758  }
  2759  
  2760  // Transact invokes the (paid) contract method with params as input values.
  2761  func (_IAddressBook *IAddressBookTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2762  	return _IAddressBook.Contract.contract.Transact(opts, method, params...)
  2763  }
  2764  
  2765  // GetAllAddress is a free data retrieval call binding the contract method 0x715b208b.
  2766  //
  2767  // Solidity: function getAllAddress() view returns(uint8[] typeList, address[] addressList)
  2768  func (_IAddressBook *IAddressBookCaller) GetAllAddress(opts *bind.CallOpts) (struct {
  2769  	TypeList    []uint8
  2770  	AddressList []common.Address
  2771  }, error,
  2772  ) {
  2773  	var out []interface{}
  2774  	err := _IAddressBook.contract.Call(opts, &out, "getAllAddress")
  2775  
  2776  	outstruct := new(struct {
  2777  		TypeList    []uint8
  2778  		AddressList []common.Address
  2779  	})
  2780  
  2781  	outstruct.TypeList = *abi.ConvertType(out[0], new([]uint8)).(*[]uint8)
  2782  	outstruct.AddressList = *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address)
  2783  	return *outstruct, err
  2784  }
  2785  
  2786  // GetAllAddress is a free data retrieval call binding the contract method 0x715b208b.
  2787  //
  2788  // Solidity: function getAllAddress() view returns(uint8[] typeList, address[] addressList)
  2789  func (_IAddressBook *IAddressBookSession) GetAllAddress() (struct {
  2790  	TypeList    []uint8
  2791  	AddressList []common.Address
  2792  }, error,
  2793  ) {
  2794  	return _IAddressBook.Contract.GetAllAddress(&_IAddressBook.CallOpts)
  2795  }
  2796  
  2797  // GetAllAddress is a free data retrieval call binding the contract method 0x715b208b.
  2798  //
  2799  // Solidity: function getAllAddress() view returns(uint8[] typeList, address[] addressList)
  2800  func (_IAddressBook *IAddressBookCallerSession) GetAllAddress() (struct {
  2801  	TypeList    []uint8
  2802  	AddressList []common.Address
  2803  }, error,
  2804  ) {
  2805  	return _IAddressBook.Contract.GetAllAddress(&_IAddressBook.CallOpts)
  2806  }
  2807  
  2808  // GetAllAddressInfo is a free data retrieval call binding the contract method 0x160370b8.
  2809  //
  2810  // Solidity: function getAllAddressInfo() view returns(address[] cnNodeIdList, address[] cnStakingContractList, address[] cnRewardAddressList, address pocContractAddress, address kirContractAddress)
  2811  func (_IAddressBook *IAddressBookCaller) GetAllAddressInfo(opts *bind.CallOpts) (struct {
  2812  	CnNodeIdList          []common.Address
  2813  	CnStakingContractList []common.Address
  2814  	CnRewardAddressList   []common.Address
  2815  	PocContractAddress    common.Address
  2816  	KirContractAddress    common.Address
  2817  }, error,
  2818  ) {
  2819  	var out []interface{}
  2820  	err := _IAddressBook.contract.Call(opts, &out, "getAllAddressInfo")
  2821  
  2822  	outstruct := new(struct {
  2823  		CnNodeIdList          []common.Address
  2824  		CnStakingContractList []common.Address
  2825  		CnRewardAddressList   []common.Address
  2826  		PocContractAddress    common.Address
  2827  		KirContractAddress    common.Address
  2828  	})
  2829  
  2830  	outstruct.CnNodeIdList = *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  2831  	outstruct.CnStakingContractList = *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address)
  2832  	outstruct.CnRewardAddressList = *abi.ConvertType(out[2], new([]common.Address)).(*[]common.Address)
  2833  	outstruct.PocContractAddress = *abi.ConvertType(out[3], new(common.Address)).(*common.Address)
  2834  	outstruct.KirContractAddress = *abi.ConvertType(out[4], new(common.Address)).(*common.Address)
  2835  	return *outstruct, err
  2836  }
  2837  
  2838  // GetAllAddressInfo is a free data retrieval call binding the contract method 0x160370b8.
  2839  //
  2840  // Solidity: function getAllAddressInfo() view returns(address[] cnNodeIdList, address[] cnStakingContractList, address[] cnRewardAddressList, address pocContractAddress, address kirContractAddress)
  2841  func (_IAddressBook *IAddressBookSession) GetAllAddressInfo() (struct {
  2842  	CnNodeIdList          []common.Address
  2843  	CnStakingContractList []common.Address
  2844  	CnRewardAddressList   []common.Address
  2845  	PocContractAddress    common.Address
  2846  	KirContractAddress    common.Address
  2847  }, error,
  2848  ) {
  2849  	return _IAddressBook.Contract.GetAllAddressInfo(&_IAddressBook.CallOpts)
  2850  }
  2851  
  2852  // GetAllAddressInfo is a free data retrieval call binding the contract method 0x160370b8.
  2853  //
  2854  // Solidity: function getAllAddressInfo() view returns(address[] cnNodeIdList, address[] cnStakingContractList, address[] cnRewardAddressList, address pocContractAddress, address kirContractAddress)
  2855  func (_IAddressBook *IAddressBookCallerSession) GetAllAddressInfo() (struct {
  2856  	CnNodeIdList          []common.Address
  2857  	CnStakingContractList []common.Address
  2858  	CnRewardAddressList   []common.Address
  2859  	PocContractAddress    common.Address
  2860  	KirContractAddress    common.Address
  2861  }, error,
  2862  ) {
  2863  	return _IAddressBook.Contract.GetAllAddressInfo(&_IAddressBook.CallOpts)
  2864  }
  2865  
  2866  // GetCnInfo is a free data retrieval call binding the contract method 0x15575d5a.
  2867  //
  2868  // Solidity: function getCnInfo(address _cnNodeId) view returns(address cnNodeId, address cnStakingcontract, address cnRewardAddress)
  2869  func (_IAddressBook *IAddressBookCaller) GetCnInfo(opts *bind.CallOpts, _cnNodeId common.Address) (struct {
  2870  	CnNodeId          common.Address
  2871  	CnStakingcontract common.Address
  2872  	CnRewardAddress   common.Address
  2873  }, error,
  2874  ) {
  2875  	var out []interface{}
  2876  	err := _IAddressBook.contract.Call(opts, &out, "getCnInfo", _cnNodeId)
  2877  
  2878  	outstruct := new(struct {
  2879  		CnNodeId          common.Address
  2880  		CnStakingcontract common.Address
  2881  		CnRewardAddress   common.Address
  2882  	})
  2883  
  2884  	outstruct.CnNodeId = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2885  	outstruct.CnStakingcontract = *abi.ConvertType(out[1], new(common.Address)).(*common.Address)
  2886  	outstruct.CnRewardAddress = *abi.ConvertType(out[2], new(common.Address)).(*common.Address)
  2887  	return *outstruct, err
  2888  }
  2889  
  2890  // GetCnInfo is a free data retrieval call binding the contract method 0x15575d5a.
  2891  //
  2892  // Solidity: function getCnInfo(address _cnNodeId) view returns(address cnNodeId, address cnStakingcontract, address cnRewardAddress)
  2893  func (_IAddressBook *IAddressBookSession) GetCnInfo(_cnNodeId common.Address) (struct {
  2894  	CnNodeId          common.Address
  2895  	CnStakingcontract common.Address
  2896  	CnRewardAddress   common.Address
  2897  }, error,
  2898  ) {
  2899  	return _IAddressBook.Contract.GetCnInfo(&_IAddressBook.CallOpts, _cnNodeId)
  2900  }
  2901  
  2902  // GetCnInfo is a free data retrieval call binding the contract method 0x15575d5a.
  2903  //
  2904  // Solidity: function getCnInfo(address _cnNodeId) view returns(address cnNodeId, address cnStakingcontract, address cnRewardAddress)
  2905  func (_IAddressBook *IAddressBookCallerSession) GetCnInfo(_cnNodeId common.Address) (struct {
  2906  	CnNodeId          common.Address
  2907  	CnStakingcontract common.Address
  2908  	CnRewardAddress   common.Address
  2909  }, error,
  2910  ) {
  2911  	return _IAddressBook.Contract.GetCnInfo(&_IAddressBook.CallOpts, _cnNodeId)
  2912  }
  2913  
  2914  // GetPendingRequestList is a free data retrieval call binding the contract method 0xda34a0bd.
  2915  //
  2916  // Solidity: function getPendingRequestList() view returns(bytes32[] pendingRequestList)
  2917  func (_IAddressBook *IAddressBookCaller) GetPendingRequestList(opts *bind.CallOpts) ([][32]byte, error) {
  2918  	var out []interface{}
  2919  	err := _IAddressBook.contract.Call(opts, &out, "getPendingRequestList")
  2920  	if err != nil {
  2921  		return *new([][32]byte), err
  2922  	}
  2923  
  2924  	out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte)
  2925  
  2926  	return out0, err
  2927  }
  2928  
  2929  // GetPendingRequestList is a free data retrieval call binding the contract method 0xda34a0bd.
  2930  //
  2931  // Solidity: function getPendingRequestList() view returns(bytes32[] pendingRequestList)
  2932  func (_IAddressBook *IAddressBookSession) GetPendingRequestList() ([][32]byte, error) {
  2933  	return _IAddressBook.Contract.GetPendingRequestList(&_IAddressBook.CallOpts)
  2934  }
  2935  
  2936  // GetPendingRequestList is a free data retrieval call binding the contract method 0xda34a0bd.
  2937  //
  2938  // Solidity: function getPendingRequestList() view returns(bytes32[] pendingRequestList)
  2939  func (_IAddressBook *IAddressBookCallerSession) GetPendingRequestList() ([][32]byte, error) {
  2940  	return _IAddressBook.Contract.GetPendingRequestList(&_IAddressBook.CallOpts)
  2941  }
  2942  
  2943  // GetRequestInfo is a free data retrieval call binding the contract method 0x82d67e5a.
  2944  //
  2945  // Solidity: function getRequestInfo(bytes32 _id) view returns(uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers, uint256 initialProposedTime, uint8 state)
  2946  func (_IAddressBook *IAddressBookCaller) GetRequestInfo(opts *bind.CallOpts, _id [32]byte) (struct {
  2947  	FunctionId          uint8
  2948  	FirstArg            [32]byte
  2949  	SecondArg           [32]byte
  2950  	ThirdArg            [32]byte
  2951  	Confirmers          []common.Address
  2952  	InitialProposedTime *big.Int
  2953  	State               uint8
  2954  }, error,
  2955  ) {
  2956  	var out []interface{}
  2957  	err := _IAddressBook.contract.Call(opts, &out, "getRequestInfo", _id)
  2958  
  2959  	outstruct := new(struct {
  2960  		FunctionId          uint8
  2961  		FirstArg            [32]byte
  2962  		SecondArg           [32]byte
  2963  		ThirdArg            [32]byte
  2964  		Confirmers          []common.Address
  2965  		InitialProposedTime *big.Int
  2966  		State               uint8
  2967  	})
  2968  
  2969  	outstruct.FunctionId = *abi.ConvertType(out[0], new(uint8)).(*uint8)
  2970  	outstruct.FirstArg = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte)
  2971  	outstruct.SecondArg = *abi.ConvertType(out[2], new([32]byte)).(*[32]byte)
  2972  	outstruct.ThirdArg = *abi.ConvertType(out[3], new([32]byte)).(*[32]byte)
  2973  	outstruct.Confirmers = *abi.ConvertType(out[4], new([]common.Address)).(*[]common.Address)
  2974  	outstruct.InitialProposedTime = *abi.ConvertType(out[5], new(*big.Int)).(**big.Int)
  2975  	outstruct.State = *abi.ConvertType(out[6], new(uint8)).(*uint8)
  2976  	return *outstruct, err
  2977  }
  2978  
  2979  // GetRequestInfo is a free data retrieval call binding the contract method 0x82d67e5a.
  2980  //
  2981  // Solidity: function getRequestInfo(bytes32 _id) view returns(uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers, uint256 initialProposedTime, uint8 state)
  2982  func (_IAddressBook *IAddressBookSession) GetRequestInfo(_id [32]byte) (struct {
  2983  	FunctionId          uint8
  2984  	FirstArg            [32]byte
  2985  	SecondArg           [32]byte
  2986  	ThirdArg            [32]byte
  2987  	Confirmers          []common.Address
  2988  	InitialProposedTime *big.Int
  2989  	State               uint8
  2990  }, error,
  2991  ) {
  2992  	return _IAddressBook.Contract.GetRequestInfo(&_IAddressBook.CallOpts, _id)
  2993  }
  2994  
  2995  // GetRequestInfo is a free data retrieval call binding the contract method 0x82d67e5a.
  2996  //
  2997  // Solidity: function getRequestInfo(bytes32 _id) view returns(uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers, uint256 initialProposedTime, uint8 state)
  2998  func (_IAddressBook *IAddressBookCallerSession) GetRequestInfo(_id [32]byte) (struct {
  2999  	FunctionId          uint8
  3000  	FirstArg            [32]byte
  3001  	SecondArg           [32]byte
  3002  	ThirdArg            [32]byte
  3003  	Confirmers          []common.Address
  3004  	InitialProposedTime *big.Int
  3005  	State               uint8
  3006  }, error,
  3007  ) {
  3008  	return _IAddressBook.Contract.GetRequestInfo(&_IAddressBook.CallOpts, _id)
  3009  }
  3010  
  3011  // GetRequestInfoByArgs is a free data retrieval call binding the contract method 0x407091eb.
  3012  //
  3013  // Solidity: function getRequestInfoByArgs(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) view returns(bytes32 id, address[] confirmers, uint256 initialProposedTime, uint8 state)
  3014  func (_IAddressBook *IAddressBookCaller) GetRequestInfoByArgs(opts *bind.CallOpts, _functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (struct {
  3015  	Id                  [32]byte
  3016  	Confirmers          []common.Address
  3017  	InitialProposedTime *big.Int
  3018  	State               uint8
  3019  }, error,
  3020  ) {
  3021  	var out []interface{}
  3022  	err := _IAddressBook.contract.Call(opts, &out, "getRequestInfoByArgs", _functionId, _firstArg, _secondArg, _thirdArg)
  3023  
  3024  	outstruct := new(struct {
  3025  		Id                  [32]byte
  3026  		Confirmers          []common.Address
  3027  		InitialProposedTime *big.Int
  3028  		State               uint8
  3029  	})
  3030  
  3031  	outstruct.Id = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  3032  	outstruct.Confirmers = *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address)
  3033  	outstruct.InitialProposedTime = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
  3034  	outstruct.State = *abi.ConvertType(out[3], new(uint8)).(*uint8)
  3035  	return *outstruct, err
  3036  }
  3037  
  3038  // GetRequestInfoByArgs is a free data retrieval call binding the contract method 0x407091eb.
  3039  //
  3040  // Solidity: function getRequestInfoByArgs(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) view returns(bytes32 id, address[] confirmers, uint256 initialProposedTime, uint8 state)
  3041  func (_IAddressBook *IAddressBookSession) GetRequestInfoByArgs(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (struct {
  3042  	Id                  [32]byte
  3043  	Confirmers          []common.Address
  3044  	InitialProposedTime *big.Int
  3045  	State               uint8
  3046  }, error,
  3047  ) {
  3048  	return _IAddressBook.Contract.GetRequestInfoByArgs(&_IAddressBook.CallOpts, _functionId, _firstArg, _secondArg, _thirdArg)
  3049  }
  3050  
  3051  // GetRequestInfoByArgs is a free data retrieval call binding the contract method 0x407091eb.
  3052  //
  3053  // Solidity: function getRequestInfoByArgs(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) view returns(bytes32 id, address[] confirmers, uint256 initialProposedTime, uint8 state)
  3054  func (_IAddressBook *IAddressBookCallerSession) GetRequestInfoByArgs(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (struct {
  3055  	Id                  [32]byte
  3056  	Confirmers          []common.Address
  3057  	InitialProposedTime *big.Int
  3058  	State               uint8
  3059  }, error,
  3060  ) {
  3061  	return _IAddressBook.Contract.GetRequestInfoByArgs(&_IAddressBook.CallOpts, _functionId, _firstArg, _secondArg, _thirdArg)
  3062  }
  3063  
  3064  // GetState is a free data retrieval call binding the contract method 0x1865c57d.
  3065  //
  3066  // Solidity: function getState() view returns(address[] adminList, uint256 requirement)
  3067  func (_IAddressBook *IAddressBookCaller) GetState(opts *bind.CallOpts) (struct {
  3068  	AdminList   []common.Address
  3069  	Requirement *big.Int
  3070  }, error,
  3071  ) {
  3072  	var out []interface{}
  3073  	err := _IAddressBook.contract.Call(opts, &out, "getState")
  3074  
  3075  	outstruct := new(struct {
  3076  		AdminList   []common.Address
  3077  		Requirement *big.Int
  3078  	})
  3079  
  3080  	outstruct.AdminList = *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  3081  	outstruct.Requirement = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
  3082  	return *outstruct, err
  3083  }
  3084  
  3085  // GetState is a free data retrieval call binding the contract method 0x1865c57d.
  3086  //
  3087  // Solidity: function getState() view returns(address[] adminList, uint256 requirement)
  3088  func (_IAddressBook *IAddressBookSession) GetState() (struct {
  3089  	AdminList   []common.Address
  3090  	Requirement *big.Int
  3091  }, error,
  3092  ) {
  3093  	return _IAddressBook.Contract.GetState(&_IAddressBook.CallOpts)
  3094  }
  3095  
  3096  // GetState is a free data retrieval call binding the contract method 0x1865c57d.
  3097  //
  3098  // Solidity: function getState() view returns(address[] adminList, uint256 requirement)
  3099  func (_IAddressBook *IAddressBookCallerSession) GetState() (struct {
  3100  	AdminList   []common.Address
  3101  	Requirement *big.Int
  3102  }, error,
  3103  ) {
  3104  	return _IAddressBook.Contract.GetState(&_IAddressBook.CallOpts)
  3105  }
  3106  
  3107  // IsActivated is a free data retrieval call binding the contract method 0x4a8c1fb4.
  3108  //
  3109  // Solidity: function isActivated() view returns(bool)
  3110  func (_IAddressBook *IAddressBookCaller) IsActivated(opts *bind.CallOpts) (bool, error) {
  3111  	var out []interface{}
  3112  	err := _IAddressBook.contract.Call(opts, &out, "isActivated")
  3113  	if err != nil {
  3114  		return *new(bool), err
  3115  	}
  3116  
  3117  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3118  
  3119  	return out0, err
  3120  }
  3121  
  3122  // IsActivated is a free data retrieval call binding the contract method 0x4a8c1fb4.
  3123  //
  3124  // Solidity: function isActivated() view returns(bool)
  3125  func (_IAddressBook *IAddressBookSession) IsActivated() (bool, error) {
  3126  	return _IAddressBook.Contract.IsActivated(&_IAddressBook.CallOpts)
  3127  }
  3128  
  3129  // IsActivated is a free data retrieval call binding the contract method 0x4a8c1fb4.
  3130  //
  3131  // Solidity: function isActivated() view returns(bool)
  3132  func (_IAddressBook *IAddressBookCallerSession) IsActivated() (bool, error) {
  3133  	return _IAddressBook.Contract.IsActivated(&_IAddressBook.CallOpts)
  3134  }
  3135  
  3136  // IsConstructed is a free data retrieval call binding the contract method 0x50a5bb69.
  3137  //
  3138  // Solidity: function isConstructed() view returns(bool)
  3139  func (_IAddressBook *IAddressBookCaller) IsConstructed(opts *bind.CallOpts) (bool, error) {
  3140  	var out []interface{}
  3141  	err := _IAddressBook.contract.Call(opts, &out, "isConstructed")
  3142  	if err != nil {
  3143  		return *new(bool), err
  3144  	}
  3145  
  3146  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3147  
  3148  	return out0, err
  3149  }
  3150  
  3151  // IsConstructed is a free data retrieval call binding the contract method 0x50a5bb69.
  3152  //
  3153  // Solidity: function isConstructed() view returns(bool)
  3154  func (_IAddressBook *IAddressBookSession) IsConstructed() (bool, error) {
  3155  	return _IAddressBook.Contract.IsConstructed(&_IAddressBook.CallOpts)
  3156  }
  3157  
  3158  // IsConstructed is a free data retrieval call binding the contract method 0x50a5bb69.
  3159  //
  3160  // Solidity: function isConstructed() view returns(bool)
  3161  func (_IAddressBook *IAddressBookCallerSession) IsConstructed() (bool, error) {
  3162  	return _IAddressBook.Contract.IsConstructed(&_IAddressBook.CallOpts)
  3163  }
  3164  
  3165  // KirContractAddress is a free data retrieval call binding the contract method 0xb858dd95.
  3166  //
  3167  // Solidity: function kirContractAddress() view returns(address)
  3168  func (_IAddressBook *IAddressBookCaller) KirContractAddress(opts *bind.CallOpts) (common.Address, error) {
  3169  	var out []interface{}
  3170  	err := _IAddressBook.contract.Call(opts, &out, "kirContractAddress")
  3171  	if err != nil {
  3172  		return *new(common.Address), err
  3173  	}
  3174  
  3175  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3176  
  3177  	return out0, err
  3178  }
  3179  
  3180  // KirContractAddress is a free data retrieval call binding the contract method 0xb858dd95.
  3181  //
  3182  // Solidity: function kirContractAddress() view returns(address)
  3183  func (_IAddressBook *IAddressBookSession) KirContractAddress() (common.Address, error) {
  3184  	return _IAddressBook.Contract.KirContractAddress(&_IAddressBook.CallOpts)
  3185  }
  3186  
  3187  // KirContractAddress is a free data retrieval call binding the contract method 0xb858dd95.
  3188  //
  3189  // Solidity: function kirContractAddress() view returns(address)
  3190  func (_IAddressBook *IAddressBookCallerSession) KirContractAddress() (common.Address, error) {
  3191  	return _IAddressBook.Contract.KirContractAddress(&_IAddressBook.CallOpts)
  3192  }
  3193  
  3194  // PocContractAddress is a free data retrieval call binding the contract method 0xd267eda5.
  3195  //
  3196  // Solidity: function pocContractAddress() view returns(address)
  3197  func (_IAddressBook *IAddressBookCaller) PocContractAddress(opts *bind.CallOpts) (common.Address, error) {
  3198  	var out []interface{}
  3199  	err := _IAddressBook.contract.Call(opts, &out, "pocContractAddress")
  3200  	if err != nil {
  3201  		return *new(common.Address), err
  3202  	}
  3203  
  3204  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3205  
  3206  	return out0, err
  3207  }
  3208  
  3209  // PocContractAddress is a free data retrieval call binding the contract method 0xd267eda5.
  3210  //
  3211  // Solidity: function pocContractAddress() view returns(address)
  3212  func (_IAddressBook *IAddressBookSession) PocContractAddress() (common.Address, error) {
  3213  	return _IAddressBook.Contract.PocContractAddress(&_IAddressBook.CallOpts)
  3214  }
  3215  
  3216  // PocContractAddress is a free data retrieval call binding the contract method 0xd267eda5.
  3217  //
  3218  // Solidity: function pocContractAddress() view returns(address)
  3219  func (_IAddressBook *IAddressBookCallerSession) PocContractAddress() (common.Address, error) {
  3220  	return _IAddressBook.Contract.PocContractAddress(&_IAddressBook.CallOpts)
  3221  }
  3222  
  3223  // SpareContractAddress is a free data retrieval call binding the contract method 0x6abd623d.
  3224  //
  3225  // Solidity: function spareContractAddress() view returns(address)
  3226  func (_IAddressBook *IAddressBookCaller) SpareContractAddress(opts *bind.CallOpts) (common.Address, error) {
  3227  	var out []interface{}
  3228  	err := _IAddressBook.contract.Call(opts, &out, "spareContractAddress")
  3229  	if err != nil {
  3230  		return *new(common.Address), err
  3231  	}
  3232  
  3233  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3234  
  3235  	return out0, err
  3236  }
  3237  
  3238  // SpareContractAddress is a free data retrieval call binding the contract method 0x6abd623d.
  3239  //
  3240  // Solidity: function spareContractAddress() view returns(address)
  3241  func (_IAddressBook *IAddressBookSession) SpareContractAddress() (common.Address, error) {
  3242  	return _IAddressBook.Contract.SpareContractAddress(&_IAddressBook.CallOpts)
  3243  }
  3244  
  3245  // SpareContractAddress is a free data retrieval call binding the contract method 0x6abd623d.
  3246  //
  3247  // Solidity: function spareContractAddress() view returns(address)
  3248  func (_IAddressBook *IAddressBookCallerSession) SpareContractAddress() (common.Address, error) {
  3249  	return _IAddressBook.Contract.SpareContractAddress(&_IAddressBook.CallOpts)
  3250  }
  3251  
  3252  // ConstructContract is a paid mutator transaction binding the contract method 0x7894c366.
  3253  //
  3254  // Solidity: function constructContract(address[] _adminList, uint256 _requirement) returns()
  3255  func (_IAddressBook *IAddressBookTransactor) ConstructContract(opts *bind.TransactOpts, _adminList []common.Address, _requirement *big.Int) (*types.Transaction, error) {
  3256  	return _IAddressBook.contract.Transact(opts, "constructContract", _adminList, _requirement)
  3257  }
  3258  
  3259  // ConstructContract is a paid mutator transaction binding the contract method 0x7894c366.
  3260  //
  3261  // Solidity: function constructContract(address[] _adminList, uint256 _requirement) returns()
  3262  func (_IAddressBook *IAddressBookSession) ConstructContract(_adminList []common.Address, _requirement *big.Int) (*types.Transaction, error) {
  3263  	return _IAddressBook.Contract.ConstructContract(&_IAddressBook.TransactOpts, _adminList, _requirement)
  3264  }
  3265  
  3266  // ConstructContract is a paid mutator transaction binding the contract method 0x7894c366.
  3267  //
  3268  // Solidity: function constructContract(address[] _adminList, uint256 _requirement) returns()
  3269  func (_IAddressBook *IAddressBookTransactorSession) ConstructContract(_adminList []common.Address, _requirement *big.Int) (*types.Transaction, error) {
  3270  	return _IAddressBook.Contract.ConstructContract(&_IAddressBook.TransactOpts, _adminList, _requirement)
  3271  }
  3272  
  3273  // ReviseRewardAddress is a paid mutator transaction binding the contract method 0x832a2aad.
  3274  //
  3275  // Solidity: function reviseRewardAddress(address _rewardAddress) returns()
  3276  func (_IAddressBook *IAddressBookTransactor) ReviseRewardAddress(opts *bind.TransactOpts, _rewardAddress common.Address) (*types.Transaction, error) {
  3277  	return _IAddressBook.contract.Transact(opts, "reviseRewardAddress", _rewardAddress)
  3278  }
  3279  
  3280  // ReviseRewardAddress is a paid mutator transaction binding the contract method 0x832a2aad.
  3281  //
  3282  // Solidity: function reviseRewardAddress(address _rewardAddress) returns()
  3283  func (_IAddressBook *IAddressBookSession) ReviseRewardAddress(_rewardAddress common.Address) (*types.Transaction, error) {
  3284  	return _IAddressBook.Contract.ReviseRewardAddress(&_IAddressBook.TransactOpts, _rewardAddress)
  3285  }
  3286  
  3287  // ReviseRewardAddress is a paid mutator transaction binding the contract method 0x832a2aad.
  3288  //
  3289  // Solidity: function reviseRewardAddress(address _rewardAddress) returns()
  3290  func (_IAddressBook *IAddressBookTransactorSession) ReviseRewardAddress(_rewardAddress common.Address) (*types.Transaction, error) {
  3291  	return _IAddressBook.Contract.ReviseRewardAddress(&_IAddressBook.TransactOpts, _rewardAddress)
  3292  }
  3293  
  3294  // RevokeRequest is a paid mutator transaction binding the contract method 0x3f0628b1.
  3295  //
  3296  // Solidity: function revokeRequest(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) returns()
  3297  func (_IAddressBook *IAddressBookTransactor) RevokeRequest(opts *bind.TransactOpts, _functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (*types.Transaction, error) {
  3298  	return _IAddressBook.contract.Transact(opts, "revokeRequest", _functionId, _firstArg, _secondArg, _thirdArg)
  3299  }
  3300  
  3301  // RevokeRequest is a paid mutator transaction binding the contract method 0x3f0628b1.
  3302  //
  3303  // Solidity: function revokeRequest(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) returns()
  3304  func (_IAddressBook *IAddressBookSession) RevokeRequest(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (*types.Transaction, error) {
  3305  	return _IAddressBook.Contract.RevokeRequest(&_IAddressBook.TransactOpts, _functionId, _firstArg, _secondArg, _thirdArg)
  3306  }
  3307  
  3308  // RevokeRequest is a paid mutator transaction binding the contract method 0x3f0628b1.
  3309  //
  3310  // Solidity: function revokeRequest(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) returns()
  3311  func (_IAddressBook *IAddressBookTransactorSession) RevokeRequest(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (*types.Transaction, error) {
  3312  	return _IAddressBook.Contract.RevokeRequest(&_IAddressBook.TransactOpts, _functionId, _firstArg, _secondArg, _thirdArg)
  3313  }
  3314  
  3315  // SubmitActivateAddressBook is a paid mutator transaction binding the contract method 0xfeb15ca1.
  3316  //
  3317  // Solidity: function submitActivateAddressBook() returns()
  3318  func (_IAddressBook *IAddressBookTransactor) SubmitActivateAddressBook(opts *bind.TransactOpts) (*types.Transaction, error) {
  3319  	return _IAddressBook.contract.Transact(opts, "submitActivateAddressBook")
  3320  }
  3321  
  3322  // SubmitActivateAddressBook is a paid mutator transaction binding the contract method 0xfeb15ca1.
  3323  //
  3324  // Solidity: function submitActivateAddressBook() returns()
  3325  func (_IAddressBook *IAddressBookSession) SubmitActivateAddressBook() (*types.Transaction, error) {
  3326  	return _IAddressBook.Contract.SubmitActivateAddressBook(&_IAddressBook.TransactOpts)
  3327  }
  3328  
  3329  // SubmitActivateAddressBook is a paid mutator transaction binding the contract method 0xfeb15ca1.
  3330  //
  3331  // Solidity: function submitActivateAddressBook() returns()
  3332  func (_IAddressBook *IAddressBookTransactorSession) SubmitActivateAddressBook() (*types.Transaction, error) {
  3333  	return _IAddressBook.Contract.SubmitActivateAddressBook(&_IAddressBook.TransactOpts)
  3334  }
  3335  
  3336  // SubmitAddAdmin is a paid mutator transaction binding the contract method 0x863f5c0a.
  3337  //
  3338  // Solidity: function submitAddAdmin(address _admin) returns()
  3339  func (_IAddressBook *IAddressBookTransactor) SubmitAddAdmin(opts *bind.TransactOpts, _admin common.Address) (*types.Transaction, error) {
  3340  	return _IAddressBook.contract.Transact(opts, "submitAddAdmin", _admin)
  3341  }
  3342  
  3343  // SubmitAddAdmin is a paid mutator transaction binding the contract method 0x863f5c0a.
  3344  //
  3345  // Solidity: function submitAddAdmin(address _admin) returns()
  3346  func (_IAddressBook *IAddressBookSession) SubmitAddAdmin(_admin common.Address) (*types.Transaction, error) {
  3347  	return _IAddressBook.Contract.SubmitAddAdmin(&_IAddressBook.TransactOpts, _admin)
  3348  }
  3349  
  3350  // SubmitAddAdmin is a paid mutator transaction binding the contract method 0x863f5c0a.
  3351  //
  3352  // Solidity: function submitAddAdmin(address _admin) returns()
  3353  func (_IAddressBook *IAddressBookTransactorSession) SubmitAddAdmin(_admin common.Address) (*types.Transaction, error) {
  3354  	return _IAddressBook.Contract.SubmitAddAdmin(&_IAddressBook.TransactOpts, _admin)
  3355  }
  3356  
  3357  // SubmitClearRequest is a paid mutator transaction binding the contract method 0x87cd9feb.
  3358  //
  3359  // Solidity: function submitClearRequest() returns()
  3360  func (_IAddressBook *IAddressBookTransactor) SubmitClearRequest(opts *bind.TransactOpts) (*types.Transaction, error) {
  3361  	return _IAddressBook.contract.Transact(opts, "submitClearRequest")
  3362  }
  3363  
  3364  // SubmitClearRequest is a paid mutator transaction binding the contract method 0x87cd9feb.
  3365  //
  3366  // Solidity: function submitClearRequest() returns()
  3367  func (_IAddressBook *IAddressBookSession) SubmitClearRequest() (*types.Transaction, error) {
  3368  	return _IAddressBook.Contract.SubmitClearRequest(&_IAddressBook.TransactOpts)
  3369  }
  3370  
  3371  // SubmitClearRequest is a paid mutator transaction binding the contract method 0x87cd9feb.
  3372  //
  3373  // Solidity: function submitClearRequest() returns()
  3374  func (_IAddressBook *IAddressBookTransactorSession) SubmitClearRequest() (*types.Transaction, error) {
  3375  	return _IAddressBook.Contract.SubmitClearRequest(&_IAddressBook.TransactOpts)
  3376  }
  3377  
  3378  // SubmitDeleteAdmin is a paid mutator transaction binding the contract method 0x791b5123.
  3379  //
  3380  // Solidity: function submitDeleteAdmin(address _admin) returns()
  3381  func (_IAddressBook *IAddressBookTransactor) SubmitDeleteAdmin(opts *bind.TransactOpts, _admin common.Address) (*types.Transaction, error) {
  3382  	return _IAddressBook.contract.Transact(opts, "submitDeleteAdmin", _admin)
  3383  }
  3384  
  3385  // SubmitDeleteAdmin is a paid mutator transaction binding the contract method 0x791b5123.
  3386  //
  3387  // Solidity: function submitDeleteAdmin(address _admin) returns()
  3388  func (_IAddressBook *IAddressBookSession) SubmitDeleteAdmin(_admin common.Address) (*types.Transaction, error) {
  3389  	return _IAddressBook.Contract.SubmitDeleteAdmin(&_IAddressBook.TransactOpts, _admin)
  3390  }
  3391  
  3392  // SubmitDeleteAdmin is a paid mutator transaction binding the contract method 0x791b5123.
  3393  //
  3394  // Solidity: function submitDeleteAdmin(address _admin) returns()
  3395  func (_IAddressBook *IAddressBookTransactorSession) SubmitDeleteAdmin(_admin common.Address) (*types.Transaction, error) {
  3396  	return _IAddressBook.Contract.SubmitDeleteAdmin(&_IAddressBook.TransactOpts, _admin)
  3397  }
  3398  
  3399  // SubmitRegisterCnStakingContract is a paid mutator transaction binding the contract method 0xcc11efc0.
  3400  //
  3401  // Solidity: function submitRegisterCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  3402  func (_IAddressBook *IAddressBookTransactor) SubmitRegisterCnStakingContract(opts *bind.TransactOpts, _cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  3403  	return _IAddressBook.contract.Transact(opts, "submitRegisterCnStakingContract", _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  3404  }
  3405  
  3406  // SubmitRegisterCnStakingContract is a paid mutator transaction binding the contract method 0xcc11efc0.
  3407  //
  3408  // Solidity: function submitRegisterCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  3409  func (_IAddressBook *IAddressBookSession) SubmitRegisterCnStakingContract(_cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  3410  	return _IAddressBook.Contract.SubmitRegisterCnStakingContract(&_IAddressBook.TransactOpts, _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  3411  }
  3412  
  3413  // SubmitRegisterCnStakingContract is a paid mutator transaction binding the contract method 0xcc11efc0.
  3414  //
  3415  // Solidity: function submitRegisterCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  3416  func (_IAddressBook *IAddressBookTransactorSession) SubmitRegisterCnStakingContract(_cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  3417  	return _IAddressBook.Contract.SubmitRegisterCnStakingContract(&_IAddressBook.TransactOpts, _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  3418  }
  3419  
  3420  // SubmitUnregisterCnStakingContract is a paid mutator transaction binding the contract method 0xb5067706.
  3421  //
  3422  // Solidity: function submitUnregisterCnStakingContract(address _cnNodeId) returns()
  3423  func (_IAddressBook *IAddressBookTransactor) SubmitUnregisterCnStakingContract(opts *bind.TransactOpts, _cnNodeId common.Address) (*types.Transaction, error) {
  3424  	return _IAddressBook.contract.Transact(opts, "submitUnregisterCnStakingContract", _cnNodeId)
  3425  }
  3426  
  3427  // SubmitUnregisterCnStakingContract is a paid mutator transaction binding the contract method 0xb5067706.
  3428  //
  3429  // Solidity: function submitUnregisterCnStakingContract(address _cnNodeId) returns()
  3430  func (_IAddressBook *IAddressBookSession) SubmitUnregisterCnStakingContract(_cnNodeId common.Address) (*types.Transaction, error) {
  3431  	return _IAddressBook.Contract.SubmitUnregisterCnStakingContract(&_IAddressBook.TransactOpts, _cnNodeId)
  3432  }
  3433  
  3434  // SubmitUnregisterCnStakingContract is a paid mutator transaction binding the contract method 0xb5067706.
  3435  //
  3436  // Solidity: function submitUnregisterCnStakingContract(address _cnNodeId) returns()
  3437  func (_IAddressBook *IAddressBookTransactorSession) SubmitUnregisterCnStakingContract(_cnNodeId common.Address) (*types.Transaction, error) {
  3438  	return _IAddressBook.Contract.SubmitUnregisterCnStakingContract(&_IAddressBook.TransactOpts, _cnNodeId)
  3439  }
  3440  
  3441  // SubmitUpdateKirContract is a paid mutator transaction binding the contract method 0x9258d768.
  3442  //
  3443  // Solidity: function submitUpdateKirContract(address _kirContractAddress, uint256 _version) returns()
  3444  func (_IAddressBook *IAddressBookTransactor) SubmitUpdateKirContract(opts *bind.TransactOpts, _kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  3445  	return _IAddressBook.contract.Transact(opts, "submitUpdateKirContract", _kirContractAddress, _version)
  3446  }
  3447  
  3448  // SubmitUpdateKirContract is a paid mutator transaction binding the contract method 0x9258d768.
  3449  //
  3450  // Solidity: function submitUpdateKirContract(address _kirContractAddress, uint256 _version) returns()
  3451  func (_IAddressBook *IAddressBookSession) SubmitUpdateKirContract(_kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  3452  	return _IAddressBook.Contract.SubmitUpdateKirContract(&_IAddressBook.TransactOpts, _kirContractAddress, _version)
  3453  }
  3454  
  3455  // SubmitUpdateKirContract is a paid mutator transaction binding the contract method 0x9258d768.
  3456  //
  3457  // Solidity: function submitUpdateKirContract(address _kirContractAddress, uint256 _version) returns()
  3458  func (_IAddressBook *IAddressBookTransactorSession) SubmitUpdateKirContract(_kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  3459  	return _IAddressBook.Contract.SubmitUpdateKirContract(&_IAddressBook.TransactOpts, _kirContractAddress, _version)
  3460  }
  3461  
  3462  // SubmitUpdatePocContract is a paid mutator transaction binding the contract method 0x21ac4ad4.
  3463  //
  3464  // Solidity: function submitUpdatePocContract(address _pocContractAddress, uint256 _version) returns()
  3465  func (_IAddressBook *IAddressBookTransactor) SubmitUpdatePocContract(opts *bind.TransactOpts, _pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  3466  	return _IAddressBook.contract.Transact(opts, "submitUpdatePocContract", _pocContractAddress, _version)
  3467  }
  3468  
  3469  // SubmitUpdatePocContract is a paid mutator transaction binding the contract method 0x21ac4ad4.
  3470  //
  3471  // Solidity: function submitUpdatePocContract(address _pocContractAddress, uint256 _version) returns()
  3472  func (_IAddressBook *IAddressBookSession) SubmitUpdatePocContract(_pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  3473  	return _IAddressBook.Contract.SubmitUpdatePocContract(&_IAddressBook.TransactOpts, _pocContractAddress, _version)
  3474  }
  3475  
  3476  // SubmitUpdatePocContract is a paid mutator transaction binding the contract method 0x21ac4ad4.
  3477  //
  3478  // Solidity: function submitUpdatePocContract(address _pocContractAddress, uint256 _version) returns()
  3479  func (_IAddressBook *IAddressBookTransactorSession) SubmitUpdatePocContract(_pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  3480  	return _IAddressBook.Contract.SubmitUpdatePocContract(&_IAddressBook.TransactOpts, _pocContractAddress, _version)
  3481  }
  3482  
  3483  // SubmitUpdateRequirement is a paid mutator transaction binding the contract method 0xe748357b.
  3484  //
  3485  // Solidity: function submitUpdateRequirement(uint256 _requirement) returns()
  3486  func (_IAddressBook *IAddressBookTransactor) SubmitUpdateRequirement(opts *bind.TransactOpts, _requirement *big.Int) (*types.Transaction, error) {
  3487  	return _IAddressBook.contract.Transact(opts, "submitUpdateRequirement", _requirement)
  3488  }
  3489  
  3490  // SubmitUpdateRequirement is a paid mutator transaction binding the contract method 0xe748357b.
  3491  //
  3492  // Solidity: function submitUpdateRequirement(uint256 _requirement) returns()
  3493  func (_IAddressBook *IAddressBookSession) SubmitUpdateRequirement(_requirement *big.Int) (*types.Transaction, error) {
  3494  	return _IAddressBook.Contract.SubmitUpdateRequirement(&_IAddressBook.TransactOpts, _requirement)
  3495  }
  3496  
  3497  // SubmitUpdateRequirement is a paid mutator transaction binding the contract method 0xe748357b.
  3498  //
  3499  // Solidity: function submitUpdateRequirement(uint256 _requirement) returns()
  3500  func (_IAddressBook *IAddressBookTransactorSession) SubmitUpdateRequirement(_requirement *big.Int) (*types.Transaction, error) {
  3501  	return _IAddressBook.Contract.SubmitUpdateRequirement(&_IAddressBook.TransactOpts, _requirement)
  3502  }
  3503  
  3504  // SubmitUpdateSpareContract is a paid mutator transaction binding the contract method 0x394a144a.
  3505  //
  3506  // Solidity: function submitUpdateSpareContract(address _spareContractAddress) returns()
  3507  func (_IAddressBook *IAddressBookTransactor) SubmitUpdateSpareContract(opts *bind.TransactOpts, _spareContractAddress common.Address) (*types.Transaction, error) {
  3508  	return _IAddressBook.contract.Transact(opts, "submitUpdateSpareContract", _spareContractAddress)
  3509  }
  3510  
  3511  // SubmitUpdateSpareContract is a paid mutator transaction binding the contract method 0x394a144a.
  3512  //
  3513  // Solidity: function submitUpdateSpareContract(address _spareContractAddress) returns()
  3514  func (_IAddressBook *IAddressBookSession) SubmitUpdateSpareContract(_spareContractAddress common.Address) (*types.Transaction, error) {
  3515  	return _IAddressBook.Contract.SubmitUpdateSpareContract(&_IAddressBook.TransactOpts, _spareContractAddress)
  3516  }
  3517  
  3518  // SubmitUpdateSpareContract is a paid mutator transaction binding the contract method 0x394a144a.
  3519  //
  3520  // Solidity: function submitUpdateSpareContract(address _spareContractAddress) returns()
  3521  func (_IAddressBook *IAddressBookTransactorSession) SubmitUpdateSpareContract(_spareContractAddress common.Address) (*types.Transaction, error) {
  3522  	return _IAddressBook.Contract.SubmitUpdateSpareContract(&_IAddressBook.TransactOpts, _spareContractAddress)
  3523  }
  3524  
  3525  // IBeaconMetaData contains all meta data concerning the IBeacon contract.
  3526  var IBeaconMetaData = &bind.MetaData{
  3527  	ABI: "[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
  3528  	Sigs: map[string]string{
  3529  		"5c60da1b": "implementation()",
  3530  	},
  3531  }
  3532  
  3533  // IBeaconABI is the input ABI used to generate the binding from.
  3534  // Deprecated: Use IBeaconMetaData.ABI instead.
  3535  var IBeaconABI = IBeaconMetaData.ABI
  3536  
  3537  // IBeaconBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  3538  const IBeaconBinRuntime = ``
  3539  
  3540  // IBeaconFuncSigs maps the 4-byte function signature to its string representation.
  3541  // Deprecated: Use IBeaconMetaData.Sigs instead.
  3542  var IBeaconFuncSigs = IBeaconMetaData.Sigs
  3543  
  3544  // IBeacon is an auto generated Go binding around a Klaytn contract.
  3545  type IBeacon struct {
  3546  	IBeaconCaller     // Read-only binding to the contract
  3547  	IBeaconTransactor // Write-only binding to the contract
  3548  	IBeaconFilterer   // Log filterer for contract events
  3549  }
  3550  
  3551  // IBeaconCaller is an auto generated read-only Go binding around a Klaytn contract.
  3552  type IBeaconCaller struct {
  3553  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3554  }
  3555  
  3556  // IBeaconTransactor is an auto generated write-only Go binding around a Klaytn contract.
  3557  type IBeaconTransactor struct {
  3558  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3559  }
  3560  
  3561  // IBeaconFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  3562  type IBeaconFilterer struct {
  3563  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3564  }
  3565  
  3566  // IBeaconSession is an auto generated Go binding around a Klaytn contract,
  3567  // with pre-set call and transact options.
  3568  type IBeaconSession struct {
  3569  	Contract     *IBeacon          // Generic contract binding to set the session for
  3570  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  3571  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  3572  }
  3573  
  3574  // IBeaconCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  3575  // with pre-set call options.
  3576  type IBeaconCallerSession struct {
  3577  	Contract *IBeaconCaller // Generic contract caller binding to set the session for
  3578  	CallOpts bind.CallOpts  // Call options to use throughout this session
  3579  }
  3580  
  3581  // IBeaconTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  3582  // with pre-set transact options.
  3583  type IBeaconTransactorSession struct {
  3584  	Contract     *IBeaconTransactor // Generic contract transactor binding to set the session for
  3585  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  3586  }
  3587  
  3588  // IBeaconRaw is an auto generated low-level Go binding around a Klaytn contract.
  3589  type IBeaconRaw struct {
  3590  	Contract *IBeacon // Generic contract binding to access the raw methods on
  3591  }
  3592  
  3593  // IBeaconCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  3594  type IBeaconCallerRaw struct {
  3595  	Contract *IBeaconCaller // Generic read-only contract binding to access the raw methods on
  3596  }
  3597  
  3598  // IBeaconTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  3599  type IBeaconTransactorRaw struct {
  3600  	Contract *IBeaconTransactor // Generic write-only contract binding to access the raw methods on
  3601  }
  3602  
  3603  // NewIBeacon creates a new instance of IBeacon, bound to a specific deployed contract.
  3604  func NewIBeacon(address common.Address, backend bind.ContractBackend) (*IBeacon, error) {
  3605  	contract, err := bindIBeacon(address, backend, backend, backend)
  3606  	if err != nil {
  3607  		return nil, err
  3608  	}
  3609  	return &IBeacon{IBeaconCaller: IBeaconCaller{contract: contract}, IBeaconTransactor: IBeaconTransactor{contract: contract}, IBeaconFilterer: IBeaconFilterer{contract: contract}}, nil
  3610  }
  3611  
  3612  // NewIBeaconCaller creates a new read-only instance of IBeacon, bound to a specific deployed contract.
  3613  func NewIBeaconCaller(address common.Address, caller bind.ContractCaller) (*IBeaconCaller, error) {
  3614  	contract, err := bindIBeacon(address, caller, nil, nil)
  3615  	if err != nil {
  3616  		return nil, err
  3617  	}
  3618  	return &IBeaconCaller{contract: contract}, nil
  3619  }
  3620  
  3621  // NewIBeaconTransactor creates a new write-only instance of IBeacon, bound to a specific deployed contract.
  3622  func NewIBeaconTransactor(address common.Address, transactor bind.ContractTransactor) (*IBeaconTransactor, error) {
  3623  	contract, err := bindIBeacon(address, nil, transactor, nil)
  3624  	if err != nil {
  3625  		return nil, err
  3626  	}
  3627  	return &IBeaconTransactor{contract: contract}, nil
  3628  }
  3629  
  3630  // NewIBeaconFilterer creates a new log filterer instance of IBeacon, bound to a specific deployed contract.
  3631  func NewIBeaconFilterer(address common.Address, filterer bind.ContractFilterer) (*IBeaconFilterer, error) {
  3632  	contract, err := bindIBeacon(address, nil, nil, filterer)
  3633  	if err != nil {
  3634  		return nil, err
  3635  	}
  3636  	return &IBeaconFilterer{contract: contract}, nil
  3637  }
  3638  
  3639  // bindIBeacon binds a generic wrapper to an already deployed contract.
  3640  func bindIBeacon(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3641  	parsed, err := IBeaconMetaData.GetAbi()
  3642  	if err != nil {
  3643  		return nil, err
  3644  	}
  3645  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  3646  }
  3647  
  3648  // Call invokes the (constant) contract method with params as input values and
  3649  // sets the output to result. The result type might be a single field for simple
  3650  // returns, a slice of interfaces for anonymous returns and a struct for named
  3651  // returns.
  3652  func (_IBeacon *IBeaconRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3653  	return _IBeacon.Contract.IBeaconCaller.contract.Call(opts, result, method, params...)
  3654  }
  3655  
  3656  // Transfer initiates a plain transaction to move funds to the contract, calling
  3657  // its default method if one is available.
  3658  func (_IBeacon *IBeaconRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3659  	return _IBeacon.Contract.IBeaconTransactor.contract.Transfer(opts)
  3660  }
  3661  
  3662  // Transact invokes the (paid) contract method with params as input values.
  3663  func (_IBeacon *IBeaconRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3664  	return _IBeacon.Contract.IBeaconTransactor.contract.Transact(opts, method, params...)
  3665  }
  3666  
  3667  // Call invokes the (constant) contract method with params as input values and
  3668  // sets the output to result. The result type might be a single field for simple
  3669  // returns, a slice of interfaces for anonymous returns and a struct for named
  3670  // returns.
  3671  func (_IBeacon *IBeaconCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3672  	return _IBeacon.Contract.contract.Call(opts, result, method, params...)
  3673  }
  3674  
  3675  // Transfer initiates a plain transaction to move funds to the contract, calling
  3676  // its default method if one is available.
  3677  func (_IBeacon *IBeaconTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3678  	return _IBeacon.Contract.contract.Transfer(opts)
  3679  }
  3680  
  3681  // Transact invokes the (paid) contract method with params as input values.
  3682  func (_IBeacon *IBeaconTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3683  	return _IBeacon.Contract.contract.Transact(opts, method, params...)
  3684  }
  3685  
  3686  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  3687  //
  3688  // Solidity: function implementation() view returns(address)
  3689  func (_IBeacon *IBeaconCaller) Implementation(opts *bind.CallOpts) (common.Address, error) {
  3690  	var out []interface{}
  3691  	err := _IBeacon.contract.Call(opts, &out, "implementation")
  3692  	if err != nil {
  3693  		return *new(common.Address), err
  3694  	}
  3695  
  3696  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3697  
  3698  	return out0, err
  3699  }
  3700  
  3701  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  3702  //
  3703  // Solidity: function implementation() view returns(address)
  3704  func (_IBeacon *IBeaconSession) Implementation() (common.Address, error) {
  3705  	return _IBeacon.Contract.Implementation(&_IBeacon.CallOpts)
  3706  }
  3707  
  3708  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  3709  //
  3710  // Solidity: function implementation() view returns(address)
  3711  func (_IBeacon *IBeaconCallerSession) Implementation() (common.Address, error) {
  3712  	return _IBeacon.Contract.Implementation(&_IBeacon.CallOpts)
  3713  }
  3714  
  3715  // IBeaconUpgradeableMetaData contains all meta data concerning the IBeaconUpgradeable contract.
  3716  var IBeaconUpgradeableMetaData = &bind.MetaData{
  3717  	ABI: "[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
  3718  	Sigs: map[string]string{
  3719  		"5c60da1b": "implementation()",
  3720  	},
  3721  }
  3722  
  3723  // IBeaconUpgradeableABI is the input ABI used to generate the binding from.
  3724  // Deprecated: Use IBeaconUpgradeableMetaData.ABI instead.
  3725  var IBeaconUpgradeableABI = IBeaconUpgradeableMetaData.ABI
  3726  
  3727  // IBeaconUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  3728  const IBeaconUpgradeableBinRuntime = ``
  3729  
  3730  // IBeaconUpgradeableFuncSigs maps the 4-byte function signature to its string representation.
  3731  // Deprecated: Use IBeaconUpgradeableMetaData.Sigs instead.
  3732  var IBeaconUpgradeableFuncSigs = IBeaconUpgradeableMetaData.Sigs
  3733  
  3734  // IBeaconUpgradeable is an auto generated Go binding around a Klaytn contract.
  3735  type IBeaconUpgradeable struct {
  3736  	IBeaconUpgradeableCaller     // Read-only binding to the contract
  3737  	IBeaconUpgradeableTransactor // Write-only binding to the contract
  3738  	IBeaconUpgradeableFilterer   // Log filterer for contract events
  3739  }
  3740  
  3741  // IBeaconUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
  3742  type IBeaconUpgradeableCaller struct {
  3743  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3744  }
  3745  
  3746  // IBeaconUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  3747  type IBeaconUpgradeableTransactor struct {
  3748  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3749  }
  3750  
  3751  // IBeaconUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  3752  type IBeaconUpgradeableFilterer struct {
  3753  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3754  }
  3755  
  3756  // IBeaconUpgradeableSession is an auto generated Go binding around a Klaytn contract,
  3757  // with pre-set call and transact options.
  3758  type IBeaconUpgradeableSession struct {
  3759  	Contract     *IBeaconUpgradeable // Generic contract binding to set the session for
  3760  	CallOpts     bind.CallOpts       // Call options to use throughout this session
  3761  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  3762  }
  3763  
  3764  // IBeaconUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  3765  // with pre-set call options.
  3766  type IBeaconUpgradeableCallerSession struct {
  3767  	Contract *IBeaconUpgradeableCaller // Generic contract caller binding to set the session for
  3768  	CallOpts bind.CallOpts             // Call options to use throughout this session
  3769  }
  3770  
  3771  // IBeaconUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  3772  // with pre-set transact options.
  3773  type IBeaconUpgradeableTransactorSession struct {
  3774  	Contract     *IBeaconUpgradeableTransactor // Generic contract transactor binding to set the session for
  3775  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  3776  }
  3777  
  3778  // IBeaconUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
  3779  type IBeaconUpgradeableRaw struct {
  3780  	Contract *IBeaconUpgradeable // Generic contract binding to access the raw methods on
  3781  }
  3782  
  3783  // IBeaconUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  3784  type IBeaconUpgradeableCallerRaw struct {
  3785  	Contract *IBeaconUpgradeableCaller // Generic read-only contract binding to access the raw methods on
  3786  }
  3787  
  3788  // IBeaconUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  3789  type IBeaconUpgradeableTransactorRaw struct {
  3790  	Contract *IBeaconUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
  3791  }
  3792  
  3793  // NewIBeaconUpgradeable creates a new instance of IBeaconUpgradeable, bound to a specific deployed contract.
  3794  func NewIBeaconUpgradeable(address common.Address, backend bind.ContractBackend) (*IBeaconUpgradeable, error) {
  3795  	contract, err := bindIBeaconUpgradeable(address, backend, backend, backend)
  3796  	if err != nil {
  3797  		return nil, err
  3798  	}
  3799  	return &IBeaconUpgradeable{IBeaconUpgradeableCaller: IBeaconUpgradeableCaller{contract: contract}, IBeaconUpgradeableTransactor: IBeaconUpgradeableTransactor{contract: contract}, IBeaconUpgradeableFilterer: IBeaconUpgradeableFilterer{contract: contract}}, nil
  3800  }
  3801  
  3802  // NewIBeaconUpgradeableCaller creates a new read-only instance of IBeaconUpgradeable, bound to a specific deployed contract.
  3803  func NewIBeaconUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*IBeaconUpgradeableCaller, error) {
  3804  	contract, err := bindIBeaconUpgradeable(address, caller, nil, nil)
  3805  	if err != nil {
  3806  		return nil, err
  3807  	}
  3808  	return &IBeaconUpgradeableCaller{contract: contract}, nil
  3809  }
  3810  
  3811  // NewIBeaconUpgradeableTransactor creates a new write-only instance of IBeaconUpgradeable, bound to a specific deployed contract.
  3812  func NewIBeaconUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*IBeaconUpgradeableTransactor, error) {
  3813  	contract, err := bindIBeaconUpgradeable(address, nil, transactor, nil)
  3814  	if err != nil {
  3815  		return nil, err
  3816  	}
  3817  	return &IBeaconUpgradeableTransactor{contract: contract}, nil
  3818  }
  3819  
  3820  // NewIBeaconUpgradeableFilterer creates a new log filterer instance of IBeaconUpgradeable, bound to a specific deployed contract.
  3821  func NewIBeaconUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*IBeaconUpgradeableFilterer, error) {
  3822  	contract, err := bindIBeaconUpgradeable(address, nil, nil, filterer)
  3823  	if err != nil {
  3824  		return nil, err
  3825  	}
  3826  	return &IBeaconUpgradeableFilterer{contract: contract}, nil
  3827  }
  3828  
  3829  // bindIBeaconUpgradeable binds a generic wrapper to an already deployed contract.
  3830  func bindIBeaconUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3831  	parsed, err := IBeaconUpgradeableMetaData.GetAbi()
  3832  	if err != nil {
  3833  		return nil, err
  3834  	}
  3835  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  3836  }
  3837  
  3838  // Call invokes the (constant) contract method with params as input values and
  3839  // sets the output to result. The result type might be a single field for simple
  3840  // returns, a slice of interfaces for anonymous returns and a struct for named
  3841  // returns.
  3842  func (_IBeaconUpgradeable *IBeaconUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3843  	return _IBeaconUpgradeable.Contract.IBeaconUpgradeableCaller.contract.Call(opts, result, method, params...)
  3844  }
  3845  
  3846  // Transfer initiates a plain transaction to move funds to the contract, calling
  3847  // its default method if one is available.
  3848  func (_IBeaconUpgradeable *IBeaconUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3849  	return _IBeaconUpgradeable.Contract.IBeaconUpgradeableTransactor.contract.Transfer(opts)
  3850  }
  3851  
  3852  // Transact invokes the (paid) contract method with params as input values.
  3853  func (_IBeaconUpgradeable *IBeaconUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3854  	return _IBeaconUpgradeable.Contract.IBeaconUpgradeableTransactor.contract.Transact(opts, method, params...)
  3855  }
  3856  
  3857  // Call invokes the (constant) contract method with params as input values and
  3858  // sets the output to result. The result type might be a single field for simple
  3859  // returns, a slice of interfaces for anonymous returns and a struct for named
  3860  // returns.
  3861  func (_IBeaconUpgradeable *IBeaconUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3862  	return _IBeaconUpgradeable.Contract.contract.Call(opts, result, method, params...)
  3863  }
  3864  
  3865  // Transfer initiates a plain transaction to move funds to the contract, calling
  3866  // its default method if one is available.
  3867  func (_IBeaconUpgradeable *IBeaconUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3868  	return _IBeaconUpgradeable.Contract.contract.Transfer(opts)
  3869  }
  3870  
  3871  // Transact invokes the (paid) contract method with params as input values.
  3872  func (_IBeaconUpgradeable *IBeaconUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3873  	return _IBeaconUpgradeable.Contract.contract.Transact(opts, method, params...)
  3874  }
  3875  
  3876  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  3877  //
  3878  // Solidity: function implementation() view returns(address)
  3879  func (_IBeaconUpgradeable *IBeaconUpgradeableCaller) Implementation(opts *bind.CallOpts) (common.Address, error) {
  3880  	var out []interface{}
  3881  	err := _IBeaconUpgradeable.contract.Call(opts, &out, "implementation")
  3882  	if err != nil {
  3883  		return *new(common.Address), err
  3884  	}
  3885  
  3886  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3887  
  3888  	return out0, err
  3889  }
  3890  
  3891  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  3892  //
  3893  // Solidity: function implementation() view returns(address)
  3894  func (_IBeaconUpgradeable *IBeaconUpgradeableSession) Implementation() (common.Address, error) {
  3895  	return _IBeaconUpgradeable.Contract.Implementation(&_IBeaconUpgradeable.CallOpts)
  3896  }
  3897  
  3898  // Implementation is a free data retrieval call binding the contract method 0x5c60da1b.
  3899  //
  3900  // Solidity: function implementation() view returns(address)
  3901  func (_IBeaconUpgradeable *IBeaconUpgradeableCallerSession) Implementation() (common.Address, error) {
  3902  	return _IBeaconUpgradeable.Contract.Implementation(&_IBeaconUpgradeable.CallOpts)
  3903  }
  3904  
  3905  // IERC1822ProxiableMetaData contains all meta data concerning the IERC1822Proxiable contract.
  3906  var IERC1822ProxiableMetaData = &bind.MetaData{
  3907  	ABI: "[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
  3908  	Sigs: map[string]string{
  3909  		"52d1902d": "proxiableUUID()",
  3910  	},
  3911  }
  3912  
  3913  // IERC1822ProxiableABI is the input ABI used to generate the binding from.
  3914  // Deprecated: Use IERC1822ProxiableMetaData.ABI instead.
  3915  var IERC1822ProxiableABI = IERC1822ProxiableMetaData.ABI
  3916  
  3917  // IERC1822ProxiableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  3918  const IERC1822ProxiableBinRuntime = ``
  3919  
  3920  // IERC1822ProxiableFuncSigs maps the 4-byte function signature to its string representation.
  3921  // Deprecated: Use IERC1822ProxiableMetaData.Sigs instead.
  3922  var IERC1822ProxiableFuncSigs = IERC1822ProxiableMetaData.Sigs
  3923  
  3924  // IERC1822Proxiable is an auto generated Go binding around a Klaytn contract.
  3925  type IERC1822Proxiable struct {
  3926  	IERC1822ProxiableCaller     // Read-only binding to the contract
  3927  	IERC1822ProxiableTransactor // Write-only binding to the contract
  3928  	IERC1822ProxiableFilterer   // Log filterer for contract events
  3929  }
  3930  
  3931  // IERC1822ProxiableCaller is an auto generated read-only Go binding around a Klaytn contract.
  3932  type IERC1822ProxiableCaller struct {
  3933  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3934  }
  3935  
  3936  // IERC1822ProxiableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  3937  type IERC1822ProxiableTransactor struct {
  3938  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3939  }
  3940  
  3941  // IERC1822ProxiableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  3942  type IERC1822ProxiableFilterer struct {
  3943  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3944  }
  3945  
  3946  // IERC1822ProxiableSession is an auto generated Go binding around a Klaytn contract,
  3947  // with pre-set call and transact options.
  3948  type IERC1822ProxiableSession struct {
  3949  	Contract     *IERC1822Proxiable // Generic contract binding to set the session for
  3950  	CallOpts     bind.CallOpts      // Call options to use throughout this session
  3951  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  3952  }
  3953  
  3954  // IERC1822ProxiableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  3955  // with pre-set call options.
  3956  type IERC1822ProxiableCallerSession struct {
  3957  	Contract *IERC1822ProxiableCaller // Generic contract caller binding to set the session for
  3958  	CallOpts bind.CallOpts            // Call options to use throughout this session
  3959  }
  3960  
  3961  // IERC1822ProxiableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  3962  // with pre-set transact options.
  3963  type IERC1822ProxiableTransactorSession struct {
  3964  	Contract     *IERC1822ProxiableTransactor // Generic contract transactor binding to set the session for
  3965  	TransactOpts bind.TransactOpts            // Transaction auth options to use throughout this session
  3966  }
  3967  
  3968  // IERC1822ProxiableRaw is an auto generated low-level Go binding around a Klaytn contract.
  3969  type IERC1822ProxiableRaw struct {
  3970  	Contract *IERC1822Proxiable // Generic contract binding to access the raw methods on
  3971  }
  3972  
  3973  // IERC1822ProxiableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  3974  type IERC1822ProxiableCallerRaw struct {
  3975  	Contract *IERC1822ProxiableCaller // Generic read-only contract binding to access the raw methods on
  3976  }
  3977  
  3978  // IERC1822ProxiableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  3979  type IERC1822ProxiableTransactorRaw struct {
  3980  	Contract *IERC1822ProxiableTransactor // Generic write-only contract binding to access the raw methods on
  3981  }
  3982  
  3983  // NewIERC1822Proxiable creates a new instance of IERC1822Proxiable, bound to a specific deployed contract.
  3984  func NewIERC1822Proxiable(address common.Address, backend bind.ContractBackend) (*IERC1822Proxiable, error) {
  3985  	contract, err := bindIERC1822Proxiable(address, backend, backend, backend)
  3986  	if err != nil {
  3987  		return nil, err
  3988  	}
  3989  	return &IERC1822Proxiable{IERC1822ProxiableCaller: IERC1822ProxiableCaller{contract: contract}, IERC1822ProxiableTransactor: IERC1822ProxiableTransactor{contract: contract}, IERC1822ProxiableFilterer: IERC1822ProxiableFilterer{contract: contract}}, nil
  3990  }
  3991  
  3992  // NewIERC1822ProxiableCaller creates a new read-only instance of IERC1822Proxiable, bound to a specific deployed contract.
  3993  func NewIERC1822ProxiableCaller(address common.Address, caller bind.ContractCaller) (*IERC1822ProxiableCaller, error) {
  3994  	contract, err := bindIERC1822Proxiable(address, caller, nil, nil)
  3995  	if err != nil {
  3996  		return nil, err
  3997  	}
  3998  	return &IERC1822ProxiableCaller{contract: contract}, nil
  3999  }
  4000  
  4001  // NewIERC1822ProxiableTransactor creates a new write-only instance of IERC1822Proxiable, bound to a specific deployed contract.
  4002  func NewIERC1822ProxiableTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC1822ProxiableTransactor, error) {
  4003  	contract, err := bindIERC1822Proxiable(address, nil, transactor, nil)
  4004  	if err != nil {
  4005  		return nil, err
  4006  	}
  4007  	return &IERC1822ProxiableTransactor{contract: contract}, nil
  4008  }
  4009  
  4010  // NewIERC1822ProxiableFilterer creates a new log filterer instance of IERC1822Proxiable, bound to a specific deployed contract.
  4011  func NewIERC1822ProxiableFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC1822ProxiableFilterer, error) {
  4012  	contract, err := bindIERC1822Proxiable(address, nil, nil, filterer)
  4013  	if err != nil {
  4014  		return nil, err
  4015  	}
  4016  	return &IERC1822ProxiableFilterer{contract: contract}, nil
  4017  }
  4018  
  4019  // bindIERC1822Proxiable binds a generic wrapper to an already deployed contract.
  4020  func bindIERC1822Proxiable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4021  	parsed, err := IERC1822ProxiableMetaData.GetAbi()
  4022  	if err != nil {
  4023  		return nil, err
  4024  	}
  4025  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4026  }
  4027  
  4028  // Call invokes the (constant) contract method with params as input values and
  4029  // sets the output to result. The result type might be a single field for simple
  4030  // returns, a slice of interfaces for anonymous returns and a struct for named
  4031  // returns.
  4032  func (_IERC1822Proxiable *IERC1822ProxiableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4033  	return _IERC1822Proxiable.Contract.IERC1822ProxiableCaller.contract.Call(opts, result, method, params...)
  4034  }
  4035  
  4036  // Transfer initiates a plain transaction to move funds to the contract, calling
  4037  // its default method if one is available.
  4038  func (_IERC1822Proxiable *IERC1822ProxiableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4039  	return _IERC1822Proxiable.Contract.IERC1822ProxiableTransactor.contract.Transfer(opts)
  4040  }
  4041  
  4042  // Transact invokes the (paid) contract method with params as input values.
  4043  func (_IERC1822Proxiable *IERC1822ProxiableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4044  	return _IERC1822Proxiable.Contract.IERC1822ProxiableTransactor.contract.Transact(opts, method, params...)
  4045  }
  4046  
  4047  // Call invokes the (constant) contract method with params as input values and
  4048  // sets the output to result. The result type might be a single field for simple
  4049  // returns, a slice of interfaces for anonymous returns and a struct for named
  4050  // returns.
  4051  func (_IERC1822Proxiable *IERC1822ProxiableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4052  	return _IERC1822Proxiable.Contract.contract.Call(opts, result, method, params...)
  4053  }
  4054  
  4055  // Transfer initiates a plain transaction to move funds to the contract, calling
  4056  // its default method if one is available.
  4057  func (_IERC1822Proxiable *IERC1822ProxiableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4058  	return _IERC1822Proxiable.Contract.contract.Transfer(opts)
  4059  }
  4060  
  4061  // Transact invokes the (paid) contract method with params as input values.
  4062  func (_IERC1822Proxiable *IERC1822ProxiableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4063  	return _IERC1822Proxiable.Contract.contract.Transact(opts, method, params...)
  4064  }
  4065  
  4066  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  4067  //
  4068  // Solidity: function proxiableUUID() view returns(bytes32)
  4069  func (_IERC1822Proxiable *IERC1822ProxiableCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) {
  4070  	var out []interface{}
  4071  	err := _IERC1822Proxiable.contract.Call(opts, &out, "proxiableUUID")
  4072  	if err != nil {
  4073  		return *new([32]byte), err
  4074  	}
  4075  
  4076  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  4077  
  4078  	return out0, err
  4079  }
  4080  
  4081  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  4082  //
  4083  // Solidity: function proxiableUUID() view returns(bytes32)
  4084  func (_IERC1822Proxiable *IERC1822ProxiableSession) ProxiableUUID() ([32]byte, error) {
  4085  	return _IERC1822Proxiable.Contract.ProxiableUUID(&_IERC1822Proxiable.CallOpts)
  4086  }
  4087  
  4088  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  4089  //
  4090  // Solidity: function proxiableUUID() view returns(bytes32)
  4091  func (_IERC1822Proxiable *IERC1822ProxiableCallerSession) ProxiableUUID() ([32]byte, error) {
  4092  	return _IERC1822Proxiable.Contract.ProxiableUUID(&_IERC1822Proxiable.CallOpts)
  4093  }
  4094  
  4095  // IERC1822ProxiableUpgradeableMetaData contains all meta data concerning the IERC1822ProxiableUpgradeable contract.
  4096  var IERC1822ProxiableUpgradeableMetaData = &bind.MetaData{
  4097  	ABI: "[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
  4098  	Sigs: map[string]string{
  4099  		"52d1902d": "proxiableUUID()",
  4100  	},
  4101  }
  4102  
  4103  // IERC1822ProxiableUpgradeableABI is the input ABI used to generate the binding from.
  4104  // Deprecated: Use IERC1822ProxiableUpgradeableMetaData.ABI instead.
  4105  var IERC1822ProxiableUpgradeableABI = IERC1822ProxiableUpgradeableMetaData.ABI
  4106  
  4107  // IERC1822ProxiableUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4108  const IERC1822ProxiableUpgradeableBinRuntime = ``
  4109  
  4110  // IERC1822ProxiableUpgradeableFuncSigs maps the 4-byte function signature to its string representation.
  4111  // Deprecated: Use IERC1822ProxiableUpgradeableMetaData.Sigs instead.
  4112  var IERC1822ProxiableUpgradeableFuncSigs = IERC1822ProxiableUpgradeableMetaData.Sigs
  4113  
  4114  // IERC1822ProxiableUpgradeable is an auto generated Go binding around a Klaytn contract.
  4115  type IERC1822ProxiableUpgradeable struct {
  4116  	IERC1822ProxiableUpgradeableCaller     // Read-only binding to the contract
  4117  	IERC1822ProxiableUpgradeableTransactor // Write-only binding to the contract
  4118  	IERC1822ProxiableUpgradeableFilterer   // Log filterer for contract events
  4119  }
  4120  
  4121  // IERC1822ProxiableUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
  4122  type IERC1822ProxiableUpgradeableCaller struct {
  4123  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4124  }
  4125  
  4126  // IERC1822ProxiableUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4127  type IERC1822ProxiableUpgradeableTransactor struct {
  4128  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4129  }
  4130  
  4131  // IERC1822ProxiableUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4132  type IERC1822ProxiableUpgradeableFilterer struct {
  4133  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4134  }
  4135  
  4136  // IERC1822ProxiableUpgradeableSession is an auto generated Go binding around a Klaytn contract,
  4137  // with pre-set call and transact options.
  4138  type IERC1822ProxiableUpgradeableSession struct {
  4139  	Contract     *IERC1822ProxiableUpgradeable // Generic contract binding to set the session for
  4140  	CallOpts     bind.CallOpts                 // Call options to use throughout this session
  4141  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  4142  }
  4143  
  4144  // IERC1822ProxiableUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4145  // with pre-set call options.
  4146  type IERC1822ProxiableUpgradeableCallerSession struct {
  4147  	Contract *IERC1822ProxiableUpgradeableCaller // Generic contract caller binding to set the session for
  4148  	CallOpts bind.CallOpts                       // Call options to use throughout this session
  4149  }
  4150  
  4151  // IERC1822ProxiableUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4152  // with pre-set transact options.
  4153  type IERC1822ProxiableUpgradeableTransactorSession struct {
  4154  	Contract     *IERC1822ProxiableUpgradeableTransactor // Generic contract transactor binding to set the session for
  4155  	TransactOpts bind.TransactOpts                       // Transaction auth options to use throughout this session
  4156  }
  4157  
  4158  // IERC1822ProxiableUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
  4159  type IERC1822ProxiableUpgradeableRaw struct {
  4160  	Contract *IERC1822ProxiableUpgradeable // Generic contract binding to access the raw methods on
  4161  }
  4162  
  4163  // IERC1822ProxiableUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4164  type IERC1822ProxiableUpgradeableCallerRaw struct {
  4165  	Contract *IERC1822ProxiableUpgradeableCaller // Generic read-only contract binding to access the raw methods on
  4166  }
  4167  
  4168  // IERC1822ProxiableUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4169  type IERC1822ProxiableUpgradeableTransactorRaw struct {
  4170  	Contract *IERC1822ProxiableUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
  4171  }
  4172  
  4173  // NewIERC1822ProxiableUpgradeable creates a new instance of IERC1822ProxiableUpgradeable, bound to a specific deployed contract.
  4174  func NewIERC1822ProxiableUpgradeable(address common.Address, backend bind.ContractBackend) (*IERC1822ProxiableUpgradeable, error) {
  4175  	contract, err := bindIERC1822ProxiableUpgradeable(address, backend, backend, backend)
  4176  	if err != nil {
  4177  		return nil, err
  4178  	}
  4179  	return &IERC1822ProxiableUpgradeable{IERC1822ProxiableUpgradeableCaller: IERC1822ProxiableUpgradeableCaller{contract: contract}, IERC1822ProxiableUpgradeableTransactor: IERC1822ProxiableUpgradeableTransactor{contract: contract}, IERC1822ProxiableUpgradeableFilterer: IERC1822ProxiableUpgradeableFilterer{contract: contract}}, nil
  4180  }
  4181  
  4182  // NewIERC1822ProxiableUpgradeableCaller creates a new read-only instance of IERC1822ProxiableUpgradeable, bound to a specific deployed contract.
  4183  func NewIERC1822ProxiableUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*IERC1822ProxiableUpgradeableCaller, error) {
  4184  	contract, err := bindIERC1822ProxiableUpgradeable(address, caller, nil, nil)
  4185  	if err != nil {
  4186  		return nil, err
  4187  	}
  4188  	return &IERC1822ProxiableUpgradeableCaller{contract: contract}, nil
  4189  }
  4190  
  4191  // NewIERC1822ProxiableUpgradeableTransactor creates a new write-only instance of IERC1822ProxiableUpgradeable, bound to a specific deployed contract.
  4192  func NewIERC1822ProxiableUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC1822ProxiableUpgradeableTransactor, error) {
  4193  	contract, err := bindIERC1822ProxiableUpgradeable(address, nil, transactor, nil)
  4194  	if err != nil {
  4195  		return nil, err
  4196  	}
  4197  	return &IERC1822ProxiableUpgradeableTransactor{contract: contract}, nil
  4198  }
  4199  
  4200  // NewIERC1822ProxiableUpgradeableFilterer creates a new log filterer instance of IERC1822ProxiableUpgradeable, bound to a specific deployed contract.
  4201  func NewIERC1822ProxiableUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC1822ProxiableUpgradeableFilterer, error) {
  4202  	contract, err := bindIERC1822ProxiableUpgradeable(address, nil, nil, filterer)
  4203  	if err != nil {
  4204  		return nil, err
  4205  	}
  4206  	return &IERC1822ProxiableUpgradeableFilterer{contract: contract}, nil
  4207  }
  4208  
  4209  // bindIERC1822ProxiableUpgradeable binds a generic wrapper to an already deployed contract.
  4210  func bindIERC1822ProxiableUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4211  	parsed, err := IERC1822ProxiableUpgradeableMetaData.GetAbi()
  4212  	if err != nil {
  4213  		return nil, err
  4214  	}
  4215  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4216  }
  4217  
  4218  // Call invokes the (constant) contract method with params as input values and
  4219  // sets the output to result. The result type might be a single field for simple
  4220  // returns, a slice of interfaces for anonymous returns and a struct for named
  4221  // returns.
  4222  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4223  	return _IERC1822ProxiableUpgradeable.Contract.IERC1822ProxiableUpgradeableCaller.contract.Call(opts, result, method, params...)
  4224  }
  4225  
  4226  // Transfer initiates a plain transaction to move funds to the contract, calling
  4227  // its default method if one is available.
  4228  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4229  	return _IERC1822ProxiableUpgradeable.Contract.IERC1822ProxiableUpgradeableTransactor.contract.Transfer(opts)
  4230  }
  4231  
  4232  // Transact invokes the (paid) contract method with params as input values.
  4233  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4234  	return _IERC1822ProxiableUpgradeable.Contract.IERC1822ProxiableUpgradeableTransactor.contract.Transact(opts, method, params...)
  4235  }
  4236  
  4237  // Call invokes the (constant) contract method with params as input values and
  4238  // sets the output to result. The result type might be a single field for simple
  4239  // returns, a slice of interfaces for anonymous returns and a struct for named
  4240  // returns.
  4241  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4242  	return _IERC1822ProxiableUpgradeable.Contract.contract.Call(opts, result, method, params...)
  4243  }
  4244  
  4245  // Transfer initiates a plain transaction to move funds to the contract, calling
  4246  // its default method if one is available.
  4247  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4248  	return _IERC1822ProxiableUpgradeable.Contract.contract.Transfer(opts)
  4249  }
  4250  
  4251  // Transact invokes the (paid) contract method with params as input values.
  4252  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4253  	return _IERC1822ProxiableUpgradeable.Contract.contract.Transact(opts, method, params...)
  4254  }
  4255  
  4256  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  4257  //
  4258  // Solidity: function proxiableUUID() view returns(bytes32)
  4259  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) {
  4260  	var out []interface{}
  4261  	err := _IERC1822ProxiableUpgradeable.contract.Call(opts, &out, "proxiableUUID")
  4262  	if err != nil {
  4263  		return *new([32]byte), err
  4264  	}
  4265  
  4266  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  4267  
  4268  	return out0, err
  4269  }
  4270  
  4271  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  4272  //
  4273  // Solidity: function proxiableUUID() view returns(bytes32)
  4274  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableSession) ProxiableUUID() ([32]byte, error) {
  4275  	return _IERC1822ProxiableUpgradeable.Contract.ProxiableUUID(&_IERC1822ProxiableUpgradeable.CallOpts)
  4276  }
  4277  
  4278  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  4279  //
  4280  // Solidity: function proxiableUUID() view returns(bytes32)
  4281  func (_IERC1822ProxiableUpgradeable *IERC1822ProxiableUpgradeableCallerSession) ProxiableUUID() ([32]byte, error) {
  4282  	return _IERC1822ProxiableUpgradeable.Contract.ProxiableUUID(&_IERC1822ProxiableUpgradeable.CallOpts)
  4283  }
  4284  
  4285  // IERC1967MetaData contains all meta data concerning the IERC1967 contract.
  4286  var IERC1967MetaData = &bind.MetaData{
  4287  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]",
  4288  }
  4289  
  4290  // IERC1967ABI is the input ABI used to generate the binding from.
  4291  // Deprecated: Use IERC1967MetaData.ABI instead.
  4292  var IERC1967ABI = IERC1967MetaData.ABI
  4293  
  4294  // IERC1967BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4295  const IERC1967BinRuntime = ``
  4296  
  4297  // IERC1967 is an auto generated Go binding around a Klaytn contract.
  4298  type IERC1967 struct {
  4299  	IERC1967Caller     // Read-only binding to the contract
  4300  	IERC1967Transactor // Write-only binding to the contract
  4301  	IERC1967Filterer   // Log filterer for contract events
  4302  }
  4303  
  4304  // IERC1967Caller is an auto generated read-only Go binding around a Klaytn contract.
  4305  type IERC1967Caller struct {
  4306  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4307  }
  4308  
  4309  // IERC1967Transactor is an auto generated write-only Go binding around a Klaytn contract.
  4310  type IERC1967Transactor struct {
  4311  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4312  }
  4313  
  4314  // IERC1967Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4315  type IERC1967Filterer struct {
  4316  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4317  }
  4318  
  4319  // IERC1967Session is an auto generated Go binding around a Klaytn contract,
  4320  // with pre-set call and transact options.
  4321  type IERC1967Session struct {
  4322  	Contract     *IERC1967         // Generic contract binding to set the session for
  4323  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  4324  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  4325  }
  4326  
  4327  // IERC1967CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4328  // with pre-set call options.
  4329  type IERC1967CallerSession struct {
  4330  	Contract *IERC1967Caller // Generic contract caller binding to set the session for
  4331  	CallOpts bind.CallOpts   // Call options to use throughout this session
  4332  }
  4333  
  4334  // IERC1967TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4335  // with pre-set transact options.
  4336  type IERC1967TransactorSession struct {
  4337  	Contract     *IERC1967Transactor // Generic contract transactor binding to set the session for
  4338  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  4339  }
  4340  
  4341  // IERC1967Raw is an auto generated low-level Go binding around a Klaytn contract.
  4342  type IERC1967Raw struct {
  4343  	Contract *IERC1967 // Generic contract binding to access the raw methods on
  4344  }
  4345  
  4346  // IERC1967CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4347  type IERC1967CallerRaw struct {
  4348  	Contract *IERC1967Caller // Generic read-only contract binding to access the raw methods on
  4349  }
  4350  
  4351  // IERC1967TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4352  type IERC1967TransactorRaw struct {
  4353  	Contract *IERC1967Transactor // Generic write-only contract binding to access the raw methods on
  4354  }
  4355  
  4356  // NewIERC1967 creates a new instance of IERC1967, bound to a specific deployed contract.
  4357  func NewIERC1967(address common.Address, backend bind.ContractBackend) (*IERC1967, error) {
  4358  	contract, err := bindIERC1967(address, backend, backend, backend)
  4359  	if err != nil {
  4360  		return nil, err
  4361  	}
  4362  	return &IERC1967{IERC1967Caller: IERC1967Caller{contract: contract}, IERC1967Transactor: IERC1967Transactor{contract: contract}, IERC1967Filterer: IERC1967Filterer{contract: contract}}, nil
  4363  }
  4364  
  4365  // NewIERC1967Caller creates a new read-only instance of IERC1967, bound to a specific deployed contract.
  4366  func NewIERC1967Caller(address common.Address, caller bind.ContractCaller) (*IERC1967Caller, error) {
  4367  	contract, err := bindIERC1967(address, caller, nil, nil)
  4368  	if err != nil {
  4369  		return nil, err
  4370  	}
  4371  	return &IERC1967Caller{contract: contract}, nil
  4372  }
  4373  
  4374  // NewIERC1967Transactor creates a new write-only instance of IERC1967, bound to a specific deployed contract.
  4375  func NewIERC1967Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC1967Transactor, error) {
  4376  	contract, err := bindIERC1967(address, nil, transactor, nil)
  4377  	if err != nil {
  4378  		return nil, err
  4379  	}
  4380  	return &IERC1967Transactor{contract: contract}, nil
  4381  }
  4382  
  4383  // NewIERC1967Filterer creates a new log filterer instance of IERC1967, bound to a specific deployed contract.
  4384  func NewIERC1967Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC1967Filterer, error) {
  4385  	contract, err := bindIERC1967(address, nil, nil, filterer)
  4386  	if err != nil {
  4387  		return nil, err
  4388  	}
  4389  	return &IERC1967Filterer{contract: contract}, nil
  4390  }
  4391  
  4392  // bindIERC1967 binds a generic wrapper to an already deployed contract.
  4393  func bindIERC1967(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4394  	parsed, err := IERC1967MetaData.GetAbi()
  4395  	if err != nil {
  4396  		return nil, err
  4397  	}
  4398  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4399  }
  4400  
  4401  // Call invokes the (constant) contract method with params as input values and
  4402  // sets the output to result. The result type might be a single field for simple
  4403  // returns, a slice of interfaces for anonymous returns and a struct for named
  4404  // returns.
  4405  func (_IERC1967 *IERC1967Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4406  	return _IERC1967.Contract.IERC1967Caller.contract.Call(opts, result, method, params...)
  4407  }
  4408  
  4409  // Transfer initiates a plain transaction to move funds to the contract, calling
  4410  // its default method if one is available.
  4411  func (_IERC1967 *IERC1967Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4412  	return _IERC1967.Contract.IERC1967Transactor.contract.Transfer(opts)
  4413  }
  4414  
  4415  // Transact invokes the (paid) contract method with params as input values.
  4416  func (_IERC1967 *IERC1967Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4417  	return _IERC1967.Contract.IERC1967Transactor.contract.Transact(opts, method, params...)
  4418  }
  4419  
  4420  // Call invokes the (constant) contract method with params as input values and
  4421  // sets the output to result. The result type might be a single field for simple
  4422  // returns, a slice of interfaces for anonymous returns and a struct for named
  4423  // returns.
  4424  func (_IERC1967 *IERC1967CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4425  	return _IERC1967.Contract.contract.Call(opts, result, method, params...)
  4426  }
  4427  
  4428  // Transfer initiates a plain transaction to move funds to the contract, calling
  4429  // its default method if one is available.
  4430  func (_IERC1967 *IERC1967TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4431  	return _IERC1967.Contract.contract.Transfer(opts)
  4432  }
  4433  
  4434  // Transact invokes the (paid) contract method with params as input values.
  4435  func (_IERC1967 *IERC1967TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4436  	return _IERC1967.Contract.contract.Transact(opts, method, params...)
  4437  }
  4438  
  4439  // IERC1967AdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the IERC1967 contract.
  4440  type IERC1967AdminChangedIterator struct {
  4441  	Event *IERC1967AdminChanged // Event containing the contract specifics and raw log
  4442  
  4443  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4444  	event    string              // Event name to use for unpacking event data
  4445  
  4446  	logs chan types.Log      // Log channel receiving the found contract events
  4447  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4448  	done bool                // Whether the subscription completed delivering logs
  4449  	fail error               // Occurred error to stop iteration
  4450  }
  4451  
  4452  // Next advances the iterator to the subsequent event, returning whether there
  4453  // are any more events found. In case of a retrieval or parsing error, false is
  4454  // returned and Error() can be queried for the exact failure.
  4455  func (it *IERC1967AdminChangedIterator) Next() bool {
  4456  	// If the iterator failed, stop iterating
  4457  	if it.fail != nil {
  4458  		return false
  4459  	}
  4460  	// If the iterator completed, deliver directly whatever's available
  4461  	if it.done {
  4462  		select {
  4463  		case log := <-it.logs:
  4464  			it.Event = new(IERC1967AdminChanged)
  4465  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4466  				it.fail = err
  4467  				return false
  4468  			}
  4469  			it.Event.Raw = log
  4470  			return true
  4471  
  4472  		default:
  4473  			return false
  4474  		}
  4475  	}
  4476  	// Iterator still in progress, wait for either a data or an error event
  4477  	select {
  4478  	case log := <-it.logs:
  4479  		it.Event = new(IERC1967AdminChanged)
  4480  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4481  			it.fail = err
  4482  			return false
  4483  		}
  4484  		it.Event.Raw = log
  4485  		return true
  4486  
  4487  	case err := <-it.sub.Err():
  4488  		it.done = true
  4489  		it.fail = err
  4490  		return it.Next()
  4491  	}
  4492  }
  4493  
  4494  // Error returns any retrieval or parsing error occurred during filtering.
  4495  func (it *IERC1967AdminChangedIterator) Error() error {
  4496  	return it.fail
  4497  }
  4498  
  4499  // Close terminates the iteration process, releasing any pending underlying
  4500  // resources.
  4501  func (it *IERC1967AdminChangedIterator) Close() error {
  4502  	it.sub.Unsubscribe()
  4503  	return nil
  4504  }
  4505  
  4506  // IERC1967AdminChanged represents a AdminChanged event raised by the IERC1967 contract.
  4507  type IERC1967AdminChanged struct {
  4508  	PreviousAdmin common.Address
  4509  	NewAdmin      common.Address
  4510  	Raw           types.Log // Blockchain specific contextual infos
  4511  }
  4512  
  4513  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  4514  //
  4515  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  4516  func (_IERC1967 *IERC1967Filterer) FilterAdminChanged(opts *bind.FilterOpts) (*IERC1967AdminChangedIterator, error) {
  4517  	logs, sub, err := _IERC1967.contract.FilterLogs(opts, "AdminChanged")
  4518  	if err != nil {
  4519  		return nil, err
  4520  	}
  4521  	return &IERC1967AdminChangedIterator{contract: _IERC1967.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  4522  }
  4523  
  4524  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  4525  //
  4526  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  4527  func (_IERC1967 *IERC1967Filterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *IERC1967AdminChanged) (event.Subscription, error) {
  4528  	logs, sub, err := _IERC1967.contract.WatchLogs(opts, "AdminChanged")
  4529  	if err != nil {
  4530  		return nil, err
  4531  	}
  4532  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4533  		defer sub.Unsubscribe()
  4534  		for {
  4535  			select {
  4536  			case log := <-logs:
  4537  				// New log arrived, parse the event and forward to the user
  4538  				event := new(IERC1967AdminChanged)
  4539  				if err := _IERC1967.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  4540  					return err
  4541  				}
  4542  				event.Raw = log
  4543  
  4544  				select {
  4545  				case sink <- event:
  4546  				case err := <-sub.Err():
  4547  					return err
  4548  				case <-quit:
  4549  					return nil
  4550  				}
  4551  			case err := <-sub.Err():
  4552  				return err
  4553  			case <-quit:
  4554  				return nil
  4555  			}
  4556  		}
  4557  	}), nil
  4558  }
  4559  
  4560  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  4561  //
  4562  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  4563  func (_IERC1967 *IERC1967Filterer) ParseAdminChanged(log types.Log) (*IERC1967AdminChanged, error) {
  4564  	event := new(IERC1967AdminChanged)
  4565  	if err := _IERC1967.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  4566  		return nil, err
  4567  	}
  4568  	return event, nil
  4569  }
  4570  
  4571  // IERC1967BeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the IERC1967 contract.
  4572  type IERC1967BeaconUpgradedIterator struct {
  4573  	Event *IERC1967BeaconUpgraded // Event containing the contract specifics and raw log
  4574  
  4575  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4576  	event    string              // Event name to use for unpacking event data
  4577  
  4578  	logs chan types.Log      // Log channel receiving the found contract events
  4579  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4580  	done bool                // Whether the subscription completed delivering logs
  4581  	fail error               // Occurred error to stop iteration
  4582  }
  4583  
  4584  // Next advances the iterator to the subsequent event, returning whether there
  4585  // are any more events found. In case of a retrieval or parsing error, false is
  4586  // returned and Error() can be queried for the exact failure.
  4587  func (it *IERC1967BeaconUpgradedIterator) Next() bool {
  4588  	// If the iterator failed, stop iterating
  4589  	if it.fail != nil {
  4590  		return false
  4591  	}
  4592  	// If the iterator completed, deliver directly whatever's available
  4593  	if it.done {
  4594  		select {
  4595  		case log := <-it.logs:
  4596  			it.Event = new(IERC1967BeaconUpgraded)
  4597  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4598  				it.fail = err
  4599  				return false
  4600  			}
  4601  			it.Event.Raw = log
  4602  			return true
  4603  
  4604  		default:
  4605  			return false
  4606  		}
  4607  	}
  4608  	// Iterator still in progress, wait for either a data or an error event
  4609  	select {
  4610  	case log := <-it.logs:
  4611  		it.Event = new(IERC1967BeaconUpgraded)
  4612  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4613  			it.fail = err
  4614  			return false
  4615  		}
  4616  		it.Event.Raw = log
  4617  		return true
  4618  
  4619  	case err := <-it.sub.Err():
  4620  		it.done = true
  4621  		it.fail = err
  4622  		return it.Next()
  4623  	}
  4624  }
  4625  
  4626  // Error returns any retrieval or parsing error occurred during filtering.
  4627  func (it *IERC1967BeaconUpgradedIterator) Error() error {
  4628  	return it.fail
  4629  }
  4630  
  4631  // Close terminates the iteration process, releasing any pending underlying
  4632  // resources.
  4633  func (it *IERC1967BeaconUpgradedIterator) Close() error {
  4634  	it.sub.Unsubscribe()
  4635  	return nil
  4636  }
  4637  
  4638  // IERC1967BeaconUpgraded represents a BeaconUpgraded event raised by the IERC1967 contract.
  4639  type IERC1967BeaconUpgraded struct {
  4640  	Beacon common.Address
  4641  	Raw    types.Log // Blockchain specific contextual infos
  4642  }
  4643  
  4644  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  4645  //
  4646  // Solidity: event BeaconUpgraded(address indexed beacon)
  4647  func (_IERC1967 *IERC1967Filterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*IERC1967BeaconUpgradedIterator, error) {
  4648  	var beaconRule []interface{}
  4649  	for _, beaconItem := range beacon {
  4650  		beaconRule = append(beaconRule, beaconItem)
  4651  	}
  4652  
  4653  	logs, sub, err := _IERC1967.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  4654  	if err != nil {
  4655  		return nil, err
  4656  	}
  4657  	return &IERC1967BeaconUpgradedIterator{contract: _IERC1967.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  4658  }
  4659  
  4660  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  4661  //
  4662  // Solidity: event BeaconUpgraded(address indexed beacon)
  4663  func (_IERC1967 *IERC1967Filterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967BeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  4664  	var beaconRule []interface{}
  4665  	for _, beaconItem := range beacon {
  4666  		beaconRule = append(beaconRule, beaconItem)
  4667  	}
  4668  
  4669  	logs, sub, err := _IERC1967.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  4670  	if err != nil {
  4671  		return nil, err
  4672  	}
  4673  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4674  		defer sub.Unsubscribe()
  4675  		for {
  4676  			select {
  4677  			case log := <-logs:
  4678  				// New log arrived, parse the event and forward to the user
  4679  				event := new(IERC1967BeaconUpgraded)
  4680  				if err := _IERC1967.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  4681  					return err
  4682  				}
  4683  				event.Raw = log
  4684  
  4685  				select {
  4686  				case sink <- event:
  4687  				case err := <-sub.Err():
  4688  					return err
  4689  				case <-quit:
  4690  					return nil
  4691  				}
  4692  			case err := <-sub.Err():
  4693  				return err
  4694  			case <-quit:
  4695  				return nil
  4696  			}
  4697  		}
  4698  	}), nil
  4699  }
  4700  
  4701  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  4702  //
  4703  // Solidity: event BeaconUpgraded(address indexed beacon)
  4704  func (_IERC1967 *IERC1967Filterer) ParseBeaconUpgraded(log types.Log) (*IERC1967BeaconUpgraded, error) {
  4705  	event := new(IERC1967BeaconUpgraded)
  4706  	if err := _IERC1967.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  4707  		return nil, err
  4708  	}
  4709  	return event, nil
  4710  }
  4711  
  4712  // IERC1967UpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the IERC1967 contract.
  4713  type IERC1967UpgradedIterator struct {
  4714  	Event *IERC1967Upgraded // Event containing the contract specifics and raw log
  4715  
  4716  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4717  	event    string              // Event name to use for unpacking event data
  4718  
  4719  	logs chan types.Log      // Log channel receiving the found contract events
  4720  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4721  	done bool                // Whether the subscription completed delivering logs
  4722  	fail error               // Occurred error to stop iteration
  4723  }
  4724  
  4725  // Next advances the iterator to the subsequent event, returning whether there
  4726  // are any more events found. In case of a retrieval or parsing error, false is
  4727  // returned and Error() can be queried for the exact failure.
  4728  func (it *IERC1967UpgradedIterator) Next() bool {
  4729  	// If the iterator failed, stop iterating
  4730  	if it.fail != nil {
  4731  		return false
  4732  	}
  4733  	// If the iterator completed, deliver directly whatever's available
  4734  	if it.done {
  4735  		select {
  4736  		case log := <-it.logs:
  4737  			it.Event = new(IERC1967Upgraded)
  4738  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4739  				it.fail = err
  4740  				return false
  4741  			}
  4742  			it.Event.Raw = log
  4743  			return true
  4744  
  4745  		default:
  4746  			return false
  4747  		}
  4748  	}
  4749  	// Iterator still in progress, wait for either a data or an error event
  4750  	select {
  4751  	case log := <-it.logs:
  4752  		it.Event = new(IERC1967Upgraded)
  4753  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4754  			it.fail = err
  4755  			return false
  4756  		}
  4757  		it.Event.Raw = log
  4758  		return true
  4759  
  4760  	case err := <-it.sub.Err():
  4761  		it.done = true
  4762  		it.fail = err
  4763  		return it.Next()
  4764  	}
  4765  }
  4766  
  4767  // Error returns any retrieval or parsing error occurred during filtering.
  4768  func (it *IERC1967UpgradedIterator) Error() error {
  4769  	return it.fail
  4770  }
  4771  
  4772  // Close terminates the iteration process, releasing any pending underlying
  4773  // resources.
  4774  func (it *IERC1967UpgradedIterator) Close() error {
  4775  	it.sub.Unsubscribe()
  4776  	return nil
  4777  }
  4778  
  4779  // IERC1967Upgraded represents a Upgraded event raised by the IERC1967 contract.
  4780  type IERC1967Upgraded struct {
  4781  	Implementation common.Address
  4782  	Raw            types.Log // Blockchain specific contextual infos
  4783  }
  4784  
  4785  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  4786  //
  4787  // Solidity: event Upgraded(address indexed implementation)
  4788  func (_IERC1967 *IERC1967Filterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*IERC1967UpgradedIterator, error) {
  4789  	var implementationRule []interface{}
  4790  	for _, implementationItem := range implementation {
  4791  		implementationRule = append(implementationRule, implementationItem)
  4792  	}
  4793  
  4794  	logs, sub, err := _IERC1967.contract.FilterLogs(opts, "Upgraded", implementationRule)
  4795  	if err != nil {
  4796  		return nil, err
  4797  	}
  4798  	return &IERC1967UpgradedIterator{contract: _IERC1967.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  4799  }
  4800  
  4801  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  4802  //
  4803  // Solidity: event Upgraded(address indexed implementation)
  4804  func (_IERC1967 *IERC1967Filterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967Upgraded, implementation []common.Address) (event.Subscription, error) {
  4805  	var implementationRule []interface{}
  4806  	for _, implementationItem := range implementation {
  4807  		implementationRule = append(implementationRule, implementationItem)
  4808  	}
  4809  
  4810  	logs, sub, err := _IERC1967.contract.WatchLogs(opts, "Upgraded", implementationRule)
  4811  	if err != nil {
  4812  		return nil, err
  4813  	}
  4814  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4815  		defer sub.Unsubscribe()
  4816  		for {
  4817  			select {
  4818  			case log := <-logs:
  4819  				// New log arrived, parse the event and forward to the user
  4820  				event := new(IERC1967Upgraded)
  4821  				if err := _IERC1967.contract.UnpackLog(event, "Upgraded", log); err != nil {
  4822  					return err
  4823  				}
  4824  				event.Raw = log
  4825  
  4826  				select {
  4827  				case sink <- event:
  4828  				case err := <-sub.Err():
  4829  					return err
  4830  				case <-quit:
  4831  					return nil
  4832  				}
  4833  			case err := <-sub.Err():
  4834  				return err
  4835  			case <-quit:
  4836  				return nil
  4837  			}
  4838  		}
  4839  	}), nil
  4840  }
  4841  
  4842  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  4843  //
  4844  // Solidity: event Upgraded(address indexed implementation)
  4845  func (_IERC1967 *IERC1967Filterer) ParseUpgraded(log types.Log) (*IERC1967Upgraded, error) {
  4846  	event := new(IERC1967Upgraded)
  4847  	if err := _IERC1967.contract.UnpackLog(event, "Upgraded", log); err != nil {
  4848  		return nil, err
  4849  	}
  4850  	return event, nil
  4851  }
  4852  
  4853  // IERC1967UpgradeableMetaData contains all meta data concerning the IERC1967Upgradeable contract.
  4854  var IERC1967UpgradeableMetaData = &bind.MetaData{
  4855  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]",
  4856  }
  4857  
  4858  // IERC1967UpgradeableABI is the input ABI used to generate the binding from.
  4859  // Deprecated: Use IERC1967UpgradeableMetaData.ABI instead.
  4860  var IERC1967UpgradeableABI = IERC1967UpgradeableMetaData.ABI
  4861  
  4862  // IERC1967UpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4863  const IERC1967UpgradeableBinRuntime = ``
  4864  
  4865  // IERC1967Upgradeable is an auto generated Go binding around a Klaytn contract.
  4866  type IERC1967Upgradeable struct {
  4867  	IERC1967UpgradeableCaller     // Read-only binding to the contract
  4868  	IERC1967UpgradeableTransactor // Write-only binding to the contract
  4869  	IERC1967UpgradeableFilterer   // Log filterer for contract events
  4870  }
  4871  
  4872  // IERC1967UpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
  4873  type IERC1967UpgradeableCaller struct {
  4874  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4875  }
  4876  
  4877  // IERC1967UpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4878  type IERC1967UpgradeableTransactor struct {
  4879  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4880  }
  4881  
  4882  // IERC1967UpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4883  type IERC1967UpgradeableFilterer struct {
  4884  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4885  }
  4886  
  4887  // IERC1967UpgradeableSession is an auto generated Go binding around a Klaytn contract,
  4888  // with pre-set call and transact options.
  4889  type IERC1967UpgradeableSession struct {
  4890  	Contract     *IERC1967Upgradeable // Generic contract binding to set the session for
  4891  	CallOpts     bind.CallOpts        // Call options to use throughout this session
  4892  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  4893  }
  4894  
  4895  // IERC1967UpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4896  // with pre-set call options.
  4897  type IERC1967UpgradeableCallerSession struct {
  4898  	Contract *IERC1967UpgradeableCaller // Generic contract caller binding to set the session for
  4899  	CallOpts bind.CallOpts              // Call options to use throughout this session
  4900  }
  4901  
  4902  // IERC1967UpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4903  // with pre-set transact options.
  4904  type IERC1967UpgradeableTransactorSession struct {
  4905  	Contract     *IERC1967UpgradeableTransactor // Generic contract transactor binding to set the session for
  4906  	TransactOpts bind.TransactOpts              // Transaction auth options to use throughout this session
  4907  }
  4908  
  4909  // IERC1967UpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
  4910  type IERC1967UpgradeableRaw struct {
  4911  	Contract *IERC1967Upgradeable // Generic contract binding to access the raw methods on
  4912  }
  4913  
  4914  // IERC1967UpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4915  type IERC1967UpgradeableCallerRaw struct {
  4916  	Contract *IERC1967UpgradeableCaller // Generic read-only contract binding to access the raw methods on
  4917  }
  4918  
  4919  // IERC1967UpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4920  type IERC1967UpgradeableTransactorRaw struct {
  4921  	Contract *IERC1967UpgradeableTransactor // Generic write-only contract binding to access the raw methods on
  4922  }
  4923  
  4924  // NewIERC1967Upgradeable creates a new instance of IERC1967Upgradeable, bound to a specific deployed contract.
  4925  func NewIERC1967Upgradeable(address common.Address, backend bind.ContractBackend) (*IERC1967Upgradeable, error) {
  4926  	contract, err := bindIERC1967Upgradeable(address, backend, backend, backend)
  4927  	if err != nil {
  4928  		return nil, err
  4929  	}
  4930  	return &IERC1967Upgradeable{IERC1967UpgradeableCaller: IERC1967UpgradeableCaller{contract: contract}, IERC1967UpgradeableTransactor: IERC1967UpgradeableTransactor{contract: contract}, IERC1967UpgradeableFilterer: IERC1967UpgradeableFilterer{contract: contract}}, nil
  4931  }
  4932  
  4933  // NewIERC1967UpgradeableCaller creates a new read-only instance of IERC1967Upgradeable, bound to a specific deployed contract.
  4934  func NewIERC1967UpgradeableCaller(address common.Address, caller bind.ContractCaller) (*IERC1967UpgradeableCaller, error) {
  4935  	contract, err := bindIERC1967Upgradeable(address, caller, nil, nil)
  4936  	if err != nil {
  4937  		return nil, err
  4938  	}
  4939  	return &IERC1967UpgradeableCaller{contract: contract}, nil
  4940  }
  4941  
  4942  // NewIERC1967UpgradeableTransactor creates a new write-only instance of IERC1967Upgradeable, bound to a specific deployed contract.
  4943  func NewIERC1967UpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC1967UpgradeableTransactor, error) {
  4944  	contract, err := bindIERC1967Upgradeable(address, nil, transactor, nil)
  4945  	if err != nil {
  4946  		return nil, err
  4947  	}
  4948  	return &IERC1967UpgradeableTransactor{contract: contract}, nil
  4949  }
  4950  
  4951  // NewIERC1967UpgradeableFilterer creates a new log filterer instance of IERC1967Upgradeable, bound to a specific deployed contract.
  4952  func NewIERC1967UpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC1967UpgradeableFilterer, error) {
  4953  	contract, err := bindIERC1967Upgradeable(address, nil, nil, filterer)
  4954  	if err != nil {
  4955  		return nil, err
  4956  	}
  4957  	return &IERC1967UpgradeableFilterer{contract: contract}, nil
  4958  }
  4959  
  4960  // bindIERC1967Upgradeable binds a generic wrapper to an already deployed contract.
  4961  func bindIERC1967Upgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4962  	parsed, err := IERC1967UpgradeableMetaData.GetAbi()
  4963  	if err != nil {
  4964  		return nil, err
  4965  	}
  4966  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4967  }
  4968  
  4969  // Call invokes the (constant) contract method with params as input values and
  4970  // sets the output to result. The result type might be a single field for simple
  4971  // returns, a slice of interfaces for anonymous returns and a struct for named
  4972  // returns.
  4973  func (_IERC1967Upgradeable *IERC1967UpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4974  	return _IERC1967Upgradeable.Contract.IERC1967UpgradeableCaller.contract.Call(opts, result, method, params...)
  4975  }
  4976  
  4977  // Transfer initiates a plain transaction to move funds to the contract, calling
  4978  // its default method if one is available.
  4979  func (_IERC1967Upgradeable *IERC1967UpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4980  	return _IERC1967Upgradeable.Contract.IERC1967UpgradeableTransactor.contract.Transfer(opts)
  4981  }
  4982  
  4983  // Transact invokes the (paid) contract method with params as input values.
  4984  func (_IERC1967Upgradeable *IERC1967UpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4985  	return _IERC1967Upgradeable.Contract.IERC1967UpgradeableTransactor.contract.Transact(opts, method, params...)
  4986  }
  4987  
  4988  // Call invokes the (constant) contract method with params as input values and
  4989  // sets the output to result. The result type might be a single field for simple
  4990  // returns, a slice of interfaces for anonymous returns and a struct for named
  4991  // returns.
  4992  func (_IERC1967Upgradeable *IERC1967UpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4993  	return _IERC1967Upgradeable.Contract.contract.Call(opts, result, method, params...)
  4994  }
  4995  
  4996  // Transfer initiates a plain transaction to move funds to the contract, calling
  4997  // its default method if one is available.
  4998  func (_IERC1967Upgradeable *IERC1967UpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4999  	return _IERC1967Upgradeable.Contract.contract.Transfer(opts)
  5000  }
  5001  
  5002  // Transact invokes the (paid) contract method with params as input values.
  5003  func (_IERC1967Upgradeable *IERC1967UpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5004  	return _IERC1967Upgradeable.Contract.contract.Transact(opts, method, params...)
  5005  }
  5006  
  5007  // IERC1967UpgradeableAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the IERC1967Upgradeable contract.
  5008  type IERC1967UpgradeableAdminChangedIterator struct {
  5009  	Event *IERC1967UpgradeableAdminChanged // Event containing the contract specifics and raw log
  5010  
  5011  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5012  	event    string              // Event name to use for unpacking event data
  5013  
  5014  	logs chan types.Log      // Log channel receiving the found contract events
  5015  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5016  	done bool                // Whether the subscription completed delivering logs
  5017  	fail error               // Occurred error to stop iteration
  5018  }
  5019  
  5020  // Next advances the iterator to the subsequent event, returning whether there
  5021  // are any more events found. In case of a retrieval or parsing error, false is
  5022  // returned and Error() can be queried for the exact failure.
  5023  func (it *IERC1967UpgradeableAdminChangedIterator) Next() bool {
  5024  	// If the iterator failed, stop iterating
  5025  	if it.fail != nil {
  5026  		return false
  5027  	}
  5028  	// If the iterator completed, deliver directly whatever's available
  5029  	if it.done {
  5030  		select {
  5031  		case log := <-it.logs:
  5032  			it.Event = new(IERC1967UpgradeableAdminChanged)
  5033  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5034  				it.fail = err
  5035  				return false
  5036  			}
  5037  			it.Event.Raw = log
  5038  			return true
  5039  
  5040  		default:
  5041  			return false
  5042  		}
  5043  	}
  5044  	// Iterator still in progress, wait for either a data or an error event
  5045  	select {
  5046  	case log := <-it.logs:
  5047  		it.Event = new(IERC1967UpgradeableAdminChanged)
  5048  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5049  			it.fail = err
  5050  			return false
  5051  		}
  5052  		it.Event.Raw = log
  5053  		return true
  5054  
  5055  	case err := <-it.sub.Err():
  5056  		it.done = true
  5057  		it.fail = err
  5058  		return it.Next()
  5059  	}
  5060  }
  5061  
  5062  // Error returns any retrieval or parsing error occurred during filtering.
  5063  func (it *IERC1967UpgradeableAdminChangedIterator) Error() error {
  5064  	return it.fail
  5065  }
  5066  
  5067  // Close terminates the iteration process, releasing any pending underlying
  5068  // resources.
  5069  func (it *IERC1967UpgradeableAdminChangedIterator) Close() error {
  5070  	it.sub.Unsubscribe()
  5071  	return nil
  5072  }
  5073  
  5074  // IERC1967UpgradeableAdminChanged represents a AdminChanged event raised by the IERC1967Upgradeable contract.
  5075  type IERC1967UpgradeableAdminChanged struct {
  5076  	PreviousAdmin common.Address
  5077  	NewAdmin      common.Address
  5078  	Raw           types.Log // Blockchain specific contextual infos
  5079  }
  5080  
  5081  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  5082  //
  5083  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  5084  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*IERC1967UpgradeableAdminChangedIterator, error) {
  5085  	logs, sub, err := _IERC1967Upgradeable.contract.FilterLogs(opts, "AdminChanged")
  5086  	if err != nil {
  5087  		return nil, err
  5088  	}
  5089  	return &IERC1967UpgradeableAdminChangedIterator{contract: _IERC1967Upgradeable.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  5090  }
  5091  
  5092  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  5093  //
  5094  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  5095  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *IERC1967UpgradeableAdminChanged) (event.Subscription, error) {
  5096  	logs, sub, err := _IERC1967Upgradeable.contract.WatchLogs(opts, "AdminChanged")
  5097  	if err != nil {
  5098  		return nil, err
  5099  	}
  5100  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5101  		defer sub.Unsubscribe()
  5102  		for {
  5103  			select {
  5104  			case log := <-logs:
  5105  				// New log arrived, parse the event and forward to the user
  5106  				event := new(IERC1967UpgradeableAdminChanged)
  5107  				if err := _IERC1967Upgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  5108  					return err
  5109  				}
  5110  				event.Raw = log
  5111  
  5112  				select {
  5113  				case sink <- event:
  5114  				case err := <-sub.Err():
  5115  					return err
  5116  				case <-quit:
  5117  					return nil
  5118  				}
  5119  			case err := <-sub.Err():
  5120  				return err
  5121  			case <-quit:
  5122  				return nil
  5123  			}
  5124  		}
  5125  	}), nil
  5126  }
  5127  
  5128  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  5129  //
  5130  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  5131  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) ParseAdminChanged(log types.Log) (*IERC1967UpgradeableAdminChanged, error) {
  5132  	event := new(IERC1967UpgradeableAdminChanged)
  5133  	if err := _IERC1967Upgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  5134  		return nil, err
  5135  	}
  5136  	return event, nil
  5137  }
  5138  
  5139  // IERC1967UpgradeableBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the IERC1967Upgradeable contract.
  5140  type IERC1967UpgradeableBeaconUpgradedIterator struct {
  5141  	Event *IERC1967UpgradeableBeaconUpgraded // Event containing the contract specifics and raw log
  5142  
  5143  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5144  	event    string              // Event name to use for unpacking event data
  5145  
  5146  	logs chan types.Log      // Log channel receiving the found contract events
  5147  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5148  	done bool                // Whether the subscription completed delivering logs
  5149  	fail error               // Occurred error to stop iteration
  5150  }
  5151  
  5152  // Next advances the iterator to the subsequent event, returning whether there
  5153  // are any more events found. In case of a retrieval or parsing error, false is
  5154  // returned and Error() can be queried for the exact failure.
  5155  func (it *IERC1967UpgradeableBeaconUpgradedIterator) Next() bool {
  5156  	// If the iterator failed, stop iterating
  5157  	if it.fail != nil {
  5158  		return false
  5159  	}
  5160  	// If the iterator completed, deliver directly whatever's available
  5161  	if it.done {
  5162  		select {
  5163  		case log := <-it.logs:
  5164  			it.Event = new(IERC1967UpgradeableBeaconUpgraded)
  5165  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5166  				it.fail = err
  5167  				return false
  5168  			}
  5169  			it.Event.Raw = log
  5170  			return true
  5171  
  5172  		default:
  5173  			return false
  5174  		}
  5175  	}
  5176  	// Iterator still in progress, wait for either a data or an error event
  5177  	select {
  5178  	case log := <-it.logs:
  5179  		it.Event = new(IERC1967UpgradeableBeaconUpgraded)
  5180  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5181  			it.fail = err
  5182  			return false
  5183  		}
  5184  		it.Event.Raw = log
  5185  		return true
  5186  
  5187  	case err := <-it.sub.Err():
  5188  		it.done = true
  5189  		it.fail = err
  5190  		return it.Next()
  5191  	}
  5192  }
  5193  
  5194  // Error returns any retrieval or parsing error occurred during filtering.
  5195  func (it *IERC1967UpgradeableBeaconUpgradedIterator) Error() error {
  5196  	return it.fail
  5197  }
  5198  
  5199  // Close terminates the iteration process, releasing any pending underlying
  5200  // resources.
  5201  func (it *IERC1967UpgradeableBeaconUpgradedIterator) Close() error {
  5202  	it.sub.Unsubscribe()
  5203  	return nil
  5204  }
  5205  
  5206  // IERC1967UpgradeableBeaconUpgraded represents a BeaconUpgraded event raised by the IERC1967Upgradeable contract.
  5207  type IERC1967UpgradeableBeaconUpgraded struct {
  5208  	Beacon common.Address
  5209  	Raw    types.Log // Blockchain specific contextual infos
  5210  }
  5211  
  5212  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  5213  //
  5214  // Solidity: event BeaconUpgraded(address indexed beacon)
  5215  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*IERC1967UpgradeableBeaconUpgradedIterator, error) {
  5216  	var beaconRule []interface{}
  5217  	for _, beaconItem := range beacon {
  5218  		beaconRule = append(beaconRule, beaconItem)
  5219  	}
  5220  
  5221  	logs, sub, err := _IERC1967Upgradeable.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  5222  	if err != nil {
  5223  		return nil, err
  5224  	}
  5225  	return &IERC1967UpgradeableBeaconUpgradedIterator{contract: _IERC1967Upgradeable.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  5226  }
  5227  
  5228  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  5229  //
  5230  // Solidity: event BeaconUpgraded(address indexed beacon)
  5231  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967UpgradeableBeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  5232  	var beaconRule []interface{}
  5233  	for _, beaconItem := range beacon {
  5234  		beaconRule = append(beaconRule, beaconItem)
  5235  	}
  5236  
  5237  	logs, sub, err := _IERC1967Upgradeable.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  5238  	if err != nil {
  5239  		return nil, err
  5240  	}
  5241  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5242  		defer sub.Unsubscribe()
  5243  		for {
  5244  			select {
  5245  			case log := <-logs:
  5246  				// New log arrived, parse the event and forward to the user
  5247  				event := new(IERC1967UpgradeableBeaconUpgraded)
  5248  				if err := _IERC1967Upgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  5249  					return err
  5250  				}
  5251  				event.Raw = log
  5252  
  5253  				select {
  5254  				case sink <- event:
  5255  				case err := <-sub.Err():
  5256  					return err
  5257  				case <-quit:
  5258  					return nil
  5259  				}
  5260  			case err := <-sub.Err():
  5261  				return err
  5262  			case <-quit:
  5263  				return nil
  5264  			}
  5265  		}
  5266  	}), nil
  5267  }
  5268  
  5269  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  5270  //
  5271  // Solidity: event BeaconUpgraded(address indexed beacon)
  5272  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) ParseBeaconUpgraded(log types.Log) (*IERC1967UpgradeableBeaconUpgraded, error) {
  5273  	event := new(IERC1967UpgradeableBeaconUpgraded)
  5274  	if err := _IERC1967Upgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  5275  		return nil, err
  5276  	}
  5277  	return event, nil
  5278  }
  5279  
  5280  // IERC1967UpgradeableUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the IERC1967Upgradeable contract.
  5281  type IERC1967UpgradeableUpgradedIterator struct {
  5282  	Event *IERC1967UpgradeableUpgraded // Event containing the contract specifics and raw log
  5283  
  5284  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5285  	event    string              // Event name to use for unpacking event data
  5286  
  5287  	logs chan types.Log      // Log channel receiving the found contract events
  5288  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5289  	done bool                // Whether the subscription completed delivering logs
  5290  	fail error               // Occurred error to stop iteration
  5291  }
  5292  
  5293  // Next advances the iterator to the subsequent event, returning whether there
  5294  // are any more events found. In case of a retrieval or parsing error, false is
  5295  // returned and Error() can be queried for the exact failure.
  5296  func (it *IERC1967UpgradeableUpgradedIterator) Next() bool {
  5297  	// If the iterator failed, stop iterating
  5298  	if it.fail != nil {
  5299  		return false
  5300  	}
  5301  	// If the iterator completed, deliver directly whatever's available
  5302  	if it.done {
  5303  		select {
  5304  		case log := <-it.logs:
  5305  			it.Event = new(IERC1967UpgradeableUpgraded)
  5306  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5307  				it.fail = err
  5308  				return false
  5309  			}
  5310  			it.Event.Raw = log
  5311  			return true
  5312  
  5313  		default:
  5314  			return false
  5315  		}
  5316  	}
  5317  	// Iterator still in progress, wait for either a data or an error event
  5318  	select {
  5319  	case log := <-it.logs:
  5320  		it.Event = new(IERC1967UpgradeableUpgraded)
  5321  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5322  			it.fail = err
  5323  			return false
  5324  		}
  5325  		it.Event.Raw = log
  5326  		return true
  5327  
  5328  	case err := <-it.sub.Err():
  5329  		it.done = true
  5330  		it.fail = err
  5331  		return it.Next()
  5332  	}
  5333  }
  5334  
  5335  // Error returns any retrieval or parsing error occurred during filtering.
  5336  func (it *IERC1967UpgradeableUpgradedIterator) Error() error {
  5337  	return it.fail
  5338  }
  5339  
  5340  // Close terminates the iteration process, releasing any pending underlying
  5341  // resources.
  5342  func (it *IERC1967UpgradeableUpgradedIterator) Close() error {
  5343  	it.sub.Unsubscribe()
  5344  	return nil
  5345  }
  5346  
  5347  // IERC1967UpgradeableUpgraded represents a Upgraded event raised by the IERC1967Upgradeable contract.
  5348  type IERC1967UpgradeableUpgraded struct {
  5349  	Implementation common.Address
  5350  	Raw            types.Log // Blockchain specific contextual infos
  5351  }
  5352  
  5353  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  5354  //
  5355  // Solidity: event Upgraded(address indexed implementation)
  5356  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*IERC1967UpgradeableUpgradedIterator, error) {
  5357  	var implementationRule []interface{}
  5358  	for _, implementationItem := range implementation {
  5359  		implementationRule = append(implementationRule, implementationItem)
  5360  	}
  5361  
  5362  	logs, sub, err := _IERC1967Upgradeable.contract.FilterLogs(opts, "Upgraded", implementationRule)
  5363  	if err != nil {
  5364  		return nil, err
  5365  	}
  5366  	return &IERC1967UpgradeableUpgradedIterator{contract: _IERC1967Upgradeable.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  5367  }
  5368  
  5369  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  5370  //
  5371  // Solidity: event Upgraded(address indexed implementation)
  5372  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967UpgradeableUpgraded, implementation []common.Address) (event.Subscription, error) {
  5373  	var implementationRule []interface{}
  5374  	for _, implementationItem := range implementation {
  5375  		implementationRule = append(implementationRule, implementationItem)
  5376  	}
  5377  
  5378  	logs, sub, err := _IERC1967Upgradeable.contract.WatchLogs(opts, "Upgraded", implementationRule)
  5379  	if err != nil {
  5380  		return nil, err
  5381  	}
  5382  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5383  		defer sub.Unsubscribe()
  5384  		for {
  5385  			select {
  5386  			case log := <-logs:
  5387  				// New log arrived, parse the event and forward to the user
  5388  				event := new(IERC1967UpgradeableUpgraded)
  5389  				if err := _IERC1967Upgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil {
  5390  					return err
  5391  				}
  5392  				event.Raw = log
  5393  
  5394  				select {
  5395  				case sink <- event:
  5396  				case err := <-sub.Err():
  5397  					return err
  5398  				case <-quit:
  5399  					return nil
  5400  				}
  5401  			case err := <-sub.Err():
  5402  				return err
  5403  			case <-quit:
  5404  				return nil
  5405  			}
  5406  		}
  5407  	}), nil
  5408  }
  5409  
  5410  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  5411  //
  5412  // Solidity: event Upgraded(address indexed implementation)
  5413  func (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) ParseUpgraded(log types.Log) (*IERC1967UpgradeableUpgraded, error) {
  5414  	event := new(IERC1967UpgradeableUpgraded)
  5415  	if err := _IERC1967Upgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil {
  5416  		return nil, err
  5417  	}
  5418  	return event, nil
  5419  }
  5420  
  5421  // IKIP113MetaData contains all meta data concerning the IKIP113 contract.
  5422  var IKIP113MetaData = &bind.MetaData{
  5423  	ABI: "[{\"inputs\":[],\"name\":\"getAllBlsInfo\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"nodeIdList\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"internalType\":\"structIKIP113.BlsPublicKeyInfo[]\",\"name\":\"pubkeyList\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
  5424  	Sigs: map[string]string{
  5425  		"6968b53f": "getAllBlsInfo()",
  5426  	},
  5427  }
  5428  
  5429  // IKIP113ABI is the input ABI used to generate the binding from.
  5430  // Deprecated: Use IKIP113MetaData.ABI instead.
  5431  var IKIP113ABI = IKIP113MetaData.ABI
  5432  
  5433  // IKIP113BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5434  const IKIP113BinRuntime = ``
  5435  
  5436  // IKIP113FuncSigs maps the 4-byte function signature to its string representation.
  5437  // Deprecated: Use IKIP113MetaData.Sigs instead.
  5438  var IKIP113FuncSigs = IKIP113MetaData.Sigs
  5439  
  5440  // IKIP113 is an auto generated Go binding around a Klaytn contract.
  5441  type IKIP113 struct {
  5442  	IKIP113Caller     // Read-only binding to the contract
  5443  	IKIP113Transactor // Write-only binding to the contract
  5444  	IKIP113Filterer   // Log filterer for contract events
  5445  }
  5446  
  5447  // IKIP113Caller is an auto generated read-only Go binding around a Klaytn contract.
  5448  type IKIP113Caller struct {
  5449  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5450  }
  5451  
  5452  // IKIP113Transactor is an auto generated write-only Go binding around a Klaytn contract.
  5453  type IKIP113Transactor struct {
  5454  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5455  }
  5456  
  5457  // IKIP113Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5458  type IKIP113Filterer struct {
  5459  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5460  }
  5461  
  5462  // IKIP113Session is an auto generated Go binding around a Klaytn contract,
  5463  // with pre-set call and transact options.
  5464  type IKIP113Session struct {
  5465  	Contract     *IKIP113          // Generic contract binding to set the session for
  5466  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5467  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5468  }
  5469  
  5470  // IKIP113CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5471  // with pre-set call options.
  5472  type IKIP113CallerSession struct {
  5473  	Contract *IKIP113Caller // Generic contract caller binding to set the session for
  5474  	CallOpts bind.CallOpts  // Call options to use throughout this session
  5475  }
  5476  
  5477  // IKIP113TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5478  // with pre-set transact options.
  5479  type IKIP113TransactorSession struct {
  5480  	Contract     *IKIP113Transactor // Generic contract transactor binding to set the session for
  5481  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  5482  }
  5483  
  5484  // IKIP113Raw is an auto generated low-level Go binding around a Klaytn contract.
  5485  type IKIP113Raw struct {
  5486  	Contract *IKIP113 // Generic contract binding to access the raw methods on
  5487  }
  5488  
  5489  // IKIP113CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5490  type IKIP113CallerRaw struct {
  5491  	Contract *IKIP113Caller // Generic read-only contract binding to access the raw methods on
  5492  }
  5493  
  5494  // IKIP113TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5495  type IKIP113TransactorRaw struct {
  5496  	Contract *IKIP113Transactor // Generic write-only contract binding to access the raw methods on
  5497  }
  5498  
  5499  // NewIKIP113 creates a new instance of IKIP113, bound to a specific deployed contract.
  5500  func NewIKIP113(address common.Address, backend bind.ContractBackend) (*IKIP113, error) {
  5501  	contract, err := bindIKIP113(address, backend, backend, backend)
  5502  	if err != nil {
  5503  		return nil, err
  5504  	}
  5505  	return &IKIP113{IKIP113Caller: IKIP113Caller{contract: contract}, IKIP113Transactor: IKIP113Transactor{contract: contract}, IKIP113Filterer: IKIP113Filterer{contract: contract}}, nil
  5506  }
  5507  
  5508  // NewIKIP113Caller creates a new read-only instance of IKIP113, bound to a specific deployed contract.
  5509  func NewIKIP113Caller(address common.Address, caller bind.ContractCaller) (*IKIP113Caller, error) {
  5510  	contract, err := bindIKIP113(address, caller, nil, nil)
  5511  	if err != nil {
  5512  		return nil, err
  5513  	}
  5514  	return &IKIP113Caller{contract: contract}, nil
  5515  }
  5516  
  5517  // NewIKIP113Transactor creates a new write-only instance of IKIP113, bound to a specific deployed contract.
  5518  func NewIKIP113Transactor(address common.Address, transactor bind.ContractTransactor) (*IKIP113Transactor, error) {
  5519  	contract, err := bindIKIP113(address, nil, transactor, nil)
  5520  	if err != nil {
  5521  		return nil, err
  5522  	}
  5523  	return &IKIP113Transactor{contract: contract}, nil
  5524  }
  5525  
  5526  // NewIKIP113Filterer creates a new log filterer instance of IKIP113, bound to a specific deployed contract.
  5527  func NewIKIP113Filterer(address common.Address, filterer bind.ContractFilterer) (*IKIP113Filterer, error) {
  5528  	contract, err := bindIKIP113(address, nil, nil, filterer)
  5529  	if err != nil {
  5530  		return nil, err
  5531  	}
  5532  	return &IKIP113Filterer{contract: contract}, nil
  5533  }
  5534  
  5535  // bindIKIP113 binds a generic wrapper to an already deployed contract.
  5536  func bindIKIP113(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5537  	parsed, err := IKIP113MetaData.GetAbi()
  5538  	if err != nil {
  5539  		return nil, err
  5540  	}
  5541  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5542  }
  5543  
  5544  // Call invokes the (constant) contract method with params as input values and
  5545  // sets the output to result. The result type might be a single field for simple
  5546  // returns, a slice of interfaces for anonymous returns and a struct for named
  5547  // returns.
  5548  func (_IKIP113 *IKIP113Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5549  	return _IKIP113.Contract.IKIP113Caller.contract.Call(opts, result, method, params...)
  5550  }
  5551  
  5552  // Transfer initiates a plain transaction to move funds to the contract, calling
  5553  // its default method if one is available.
  5554  func (_IKIP113 *IKIP113Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5555  	return _IKIP113.Contract.IKIP113Transactor.contract.Transfer(opts)
  5556  }
  5557  
  5558  // Transact invokes the (paid) contract method with params as input values.
  5559  func (_IKIP113 *IKIP113Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5560  	return _IKIP113.Contract.IKIP113Transactor.contract.Transact(opts, method, params...)
  5561  }
  5562  
  5563  // Call invokes the (constant) contract method with params as input values and
  5564  // sets the output to result. The result type might be a single field for simple
  5565  // returns, a slice of interfaces for anonymous returns and a struct for named
  5566  // returns.
  5567  func (_IKIP113 *IKIP113CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5568  	return _IKIP113.Contract.contract.Call(opts, result, method, params...)
  5569  }
  5570  
  5571  // Transfer initiates a plain transaction to move funds to the contract, calling
  5572  // its default method if one is available.
  5573  func (_IKIP113 *IKIP113TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5574  	return _IKIP113.Contract.contract.Transfer(opts)
  5575  }
  5576  
  5577  // Transact invokes the (paid) contract method with params as input values.
  5578  func (_IKIP113 *IKIP113TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5579  	return _IKIP113.Contract.contract.Transact(opts, method, params...)
  5580  }
  5581  
  5582  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  5583  //
  5584  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  5585  func (_IKIP113 *IKIP113Caller) GetAllBlsInfo(opts *bind.CallOpts) (struct {
  5586  	NodeIdList []common.Address
  5587  	PubkeyList []IKIP113BlsPublicKeyInfo
  5588  }, error,
  5589  ) {
  5590  	var out []interface{}
  5591  	err := _IKIP113.contract.Call(opts, &out, "getAllBlsInfo")
  5592  
  5593  	outstruct := new(struct {
  5594  		NodeIdList []common.Address
  5595  		PubkeyList []IKIP113BlsPublicKeyInfo
  5596  	})
  5597  
  5598  	outstruct.NodeIdList = *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  5599  	outstruct.PubkeyList = *abi.ConvertType(out[1], new([]IKIP113BlsPublicKeyInfo)).(*[]IKIP113BlsPublicKeyInfo)
  5600  	return *outstruct, err
  5601  }
  5602  
  5603  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  5604  //
  5605  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  5606  func (_IKIP113 *IKIP113Session) GetAllBlsInfo() (struct {
  5607  	NodeIdList []common.Address
  5608  	PubkeyList []IKIP113BlsPublicKeyInfo
  5609  }, error,
  5610  ) {
  5611  	return _IKIP113.Contract.GetAllBlsInfo(&_IKIP113.CallOpts)
  5612  }
  5613  
  5614  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  5615  //
  5616  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  5617  func (_IKIP113 *IKIP113CallerSession) GetAllBlsInfo() (struct {
  5618  	NodeIdList []common.Address
  5619  	PubkeyList []IKIP113BlsPublicKeyInfo
  5620  }, error,
  5621  ) {
  5622  	return _IKIP113.Contract.GetAllBlsInfo(&_IKIP113.CallOpts)
  5623  }
  5624  
  5625  // IRegistryMetaData contains all meta data concerning the IRegistry contract.
  5626  var IRegistryMetaData = &bind.MetaData{
  5627  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getActiveAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNames\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getAllRecords\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"internalType\":\"structIRegistry.Record[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"names\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"records\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  5628  	Sigs: map[string]string{
  5629  		"e2693e3f": "getActiveAddr(string)",
  5630  		"fb825e5f": "getAllNames()",
  5631  		"78d573a2": "getAllRecords(string)",
  5632  		"4622ab03": "names(uint256)",
  5633  		"8da5cb5b": "owner()",
  5634  		"3b51650d": "records(string,uint256)",
  5635  		"d393c871": "register(string,address,uint256)",
  5636  		"f2fde38b": "transferOwnership(address)",
  5637  	},
  5638  }
  5639  
  5640  // IRegistryABI is the input ABI used to generate the binding from.
  5641  // Deprecated: Use IRegistryMetaData.ABI instead.
  5642  var IRegistryABI = IRegistryMetaData.ABI
  5643  
  5644  // IRegistryBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5645  const IRegistryBinRuntime = ``
  5646  
  5647  // IRegistryFuncSigs maps the 4-byte function signature to its string representation.
  5648  // Deprecated: Use IRegistryMetaData.Sigs instead.
  5649  var IRegistryFuncSigs = IRegistryMetaData.Sigs
  5650  
  5651  // IRegistry is an auto generated Go binding around a Klaytn contract.
  5652  type IRegistry struct {
  5653  	IRegistryCaller     // Read-only binding to the contract
  5654  	IRegistryTransactor // Write-only binding to the contract
  5655  	IRegistryFilterer   // Log filterer for contract events
  5656  }
  5657  
  5658  // IRegistryCaller is an auto generated read-only Go binding around a Klaytn contract.
  5659  type IRegistryCaller struct {
  5660  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5661  }
  5662  
  5663  // IRegistryTransactor is an auto generated write-only Go binding around a Klaytn contract.
  5664  type IRegistryTransactor struct {
  5665  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5666  }
  5667  
  5668  // IRegistryFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5669  type IRegistryFilterer struct {
  5670  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5671  }
  5672  
  5673  // IRegistrySession is an auto generated Go binding around a Klaytn contract,
  5674  // with pre-set call and transact options.
  5675  type IRegistrySession struct {
  5676  	Contract     *IRegistry        // Generic contract binding to set the session for
  5677  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5678  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5679  }
  5680  
  5681  // IRegistryCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5682  // with pre-set call options.
  5683  type IRegistryCallerSession struct {
  5684  	Contract *IRegistryCaller // Generic contract caller binding to set the session for
  5685  	CallOpts bind.CallOpts    // Call options to use throughout this session
  5686  }
  5687  
  5688  // IRegistryTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5689  // with pre-set transact options.
  5690  type IRegistryTransactorSession struct {
  5691  	Contract     *IRegistryTransactor // Generic contract transactor binding to set the session for
  5692  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  5693  }
  5694  
  5695  // IRegistryRaw is an auto generated low-level Go binding around a Klaytn contract.
  5696  type IRegistryRaw struct {
  5697  	Contract *IRegistry // Generic contract binding to access the raw methods on
  5698  }
  5699  
  5700  // IRegistryCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5701  type IRegistryCallerRaw struct {
  5702  	Contract *IRegistryCaller // Generic read-only contract binding to access the raw methods on
  5703  }
  5704  
  5705  // IRegistryTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5706  type IRegistryTransactorRaw struct {
  5707  	Contract *IRegistryTransactor // Generic write-only contract binding to access the raw methods on
  5708  }
  5709  
  5710  // NewIRegistry creates a new instance of IRegistry, bound to a specific deployed contract.
  5711  func NewIRegistry(address common.Address, backend bind.ContractBackend) (*IRegistry, error) {
  5712  	contract, err := bindIRegistry(address, backend, backend, backend)
  5713  	if err != nil {
  5714  		return nil, err
  5715  	}
  5716  	return &IRegistry{IRegistryCaller: IRegistryCaller{contract: contract}, IRegistryTransactor: IRegistryTransactor{contract: contract}, IRegistryFilterer: IRegistryFilterer{contract: contract}}, nil
  5717  }
  5718  
  5719  // NewIRegistryCaller creates a new read-only instance of IRegistry, bound to a specific deployed contract.
  5720  func NewIRegistryCaller(address common.Address, caller bind.ContractCaller) (*IRegistryCaller, error) {
  5721  	contract, err := bindIRegistry(address, caller, nil, nil)
  5722  	if err != nil {
  5723  		return nil, err
  5724  	}
  5725  	return &IRegistryCaller{contract: contract}, nil
  5726  }
  5727  
  5728  // NewIRegistryTransactor creates a new write-only instance of IRegistry, bound to a specific deployed contract.
  5729  func NewIRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*IRegistryTransactor, error) {
  5730  	contract, err := bindIRegistry(address, nil, transactor, nil)
  5731  	if err != nil {
  5732  		return nil, err
  5733  	}
  5734  	return &IRegistryTransactor{contract: contract}, nil
  5735  }
  5736  
  5737  // NewIRegistryFilterer creates a new log filterer instance of IRegistry, bound to a specific deployed contract.
  5738  func NewIRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*IRegistryFilterer, error) {
  5739  	contract, err := bindIRegistry(address, nil, nil, filterer)
  5740  	if err != nil {
  5741  		return nil, err
  5742  	}
  5743  	return &IRegistryFilterer{contract: contract}, nil
  5744  }
  5745  
  5746  // bindIRegistry binds a generic wrapper to an already deployed contract.
  5747  func bindIRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5748  	parsed, err := IRegistryMetaData.GetAbi()
  5749  	if err != nil {
  5750  		return nil, err
  5751  	}
  5752  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5753  }
  5754  
  5755  // Call invokes the (constant) contract method with params as input values and
  5756  // sets the output to result. The result type might be a single field for simple
  5757  // returns, a slice of interfaces for anonymous returns and a struct for named
  5758  // returns.
  5759  func (_IRegistry *IRegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5760  	return _IRegistry.Contract.IRegistryCaller.contract.Call(opts, result, method, params...)
  5761  }
  5762  
  5763  // Transfer initiates a plain transaction to move funds to the contract, calling
  5764  // its default method if one is available.
  5765  func (_IRegistry *IRegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5766  	return _IRegistry.Contract.IRegistryTransactor.contract.Transfer(opts)
  5767  }
  5768  
  5769  // Transact invokes the (paid) contract method with params as input values.
  5770  func (_IRegistry *IRegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5771  	return _IRegistry.Contract.IRegistryTransactor.contract.Transact(opts, method, params...)
  5772  }
  5773  
  5774  // Call invokes the (constant) contract method with params as input values and
  5775  // sets the output to result. The result type might be a single field for simple
  5776  // returns, a slice of interfaces for anonymous returns and a struct for named
  5777  // returns.
  5778  func (_IRegistry *IRegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5779  	return _IRegistry.Contract.contract.Call(opts, result, method, params...)
  5780  }
  5781  
  5782  // Transfer initiates a plain transaction to move funds to the contract, calling
  5783  // its default method if one is available.
  5784  func (_IRegistry *IRegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5785  	return _IRegistry.Contract.contract.Transfer(opts)
  5786  }
  5787  
  5788  // Transact invokes the (paid) contract method with params as input values.
  5789  func (_IRegistry *IRegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5790  	return _IRegistry.Contract.contract.Transact(opts, method, params...)
  5791  }
  5792  
  5793  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
  5794  //
  5795  // Solidity: function getAllNames() view returns(string[])
  5796  func (_IRegistry *IRegistryCaller) GetAllNames(opts *bind.CallOpts) ([]string, error) {
  5797  	var out []interface{}
  5798  	err := _IRegistry.contract.Call(opts, &out, "getAllNames")
  5799  	if err != nil {
  5800  		return *new([]string), err
  5801  	}
  5802  
  5803  	out0 := *abi.ConvertType(out[0], new([]string)).(*[]string)
  5804  
  5805  	return out0, err
  5806  }
  5807  
  5808  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
  5809  //
  5810  // Solidity: function getAllNames() view returns(string[])
  5811  func (_IRegistry *IRegistrySession) GetAllNames() ([]string, error) {
  5812  	return _IRegistry.Contract.GetAllNames(&_IRegistry.CallOpts)
  5813  }
  5814  
  5815  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
  5816  //
  5817  // Solidity: function getAllNames() view returns(string[])
  5818  func (_IRegistry *IRegistryCallerSession) GetAllNames() ([]string, error) {
  5819  	return _IRegistry.Contract.GetAllNames(&_IRegistry.CallOpts)
  5820  }
  5821  
  5822  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
  5823  //
  5824  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
  5825  func (_IRegistry *IRegistryCaller) GetAllRecords(opts *bind.CallOpts, name string) ([]IRegistryRecord, error) {
  5826  	var out []interface{}
  5827  	err := _IRegistry.contract.Call(opts, &out, "getAllRecords", name)
  5828  	if err != nil {
  5829  		return *new([]IRegistryRecord), err
  5830  	}
  5831  
  5832  	out0 := *abi.ConvertType(out[0], new([]IRegistryRecord)).(*[]IRegistryRecord)
  5833  
  5834  	return out0, err
  5835  }
  5836  
  5837  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
  5838  //
  5839  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
  5840  func (_IRegistry *IRegistrySession) GetAllRecords(name string) ([]IRegistryRecord, error) {
  5841  	return _IRegistry.Contract.GetAllRecords(&_IRegistry.CallOpts, name)
  5842  }
  5843  
  5844  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
  5845  //
  5846  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
  5847  func (_IRegistry *IRegistryCallerSession) GetAllRecords(name string) ([]IRegistryRecord, error) {
  5848  	return _IRegistry.Contract.GetAllRecords(&_IRegistry.CallOpts, name)
  5849  }
  5850  
  5851  // Names is a free data retrieval call binding the contract method 0x4622ab03.
  5852  //
  5853  // Solidity: function names(uint256 ) view returns(string)
  5854  func (_IRegistry *IRegistryCaller) Names(opts *bind.CallOpts, arg0 *big.Int) (string, error) {
  5855  	var out []interface{}
  5856  	err := _IRegistry.contract.Call(opts, &out, "names", arg0)
  5857  	if err != nil {
  5858  		return *new(string), err
  5859  	}
  5860  
  5861  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  5862  
  5863  	return out0, err
  5864  }
  5865  
  5866  // Names is a free data retrieval call binding the contract method 0x4622ab03.
  5867  //
  5868  // Solidity: function names(uint256 ) view returns(string)
  5869  func (_IRegistry *IRegistrySession) Names(arg0 *big.Int) (string, error) {
  5870  	return _IRegistry.Contract.Names(&_IRegistry.CallOpts, arg0)
  5871  }
  5872  
  5873  // Names is a free data retrieval call binding the contract method 0x4622ab03.
  5874  //
  5875  // Solidity: function names(uint256 ) view returns(string)
  5876  func (_IRegistry *IRegistryCallerSession) Names(arg0 *big.Int) (string, error) {
  5877  	return _IRegistry.Contract.Names(&_IRegistry.CallOpts, arg0)
  5878  }
  5879  
  5880  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5881  //
  5882  // Solidity: function owner() view returns(address)
  5883  func (_IRegistry *IRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  5884  	var out []interface{}
  5885  	err := _IRegistry.contract.Call(opts, &out, "owner")
  5886  	if err != nil {
  5887  		return *new(common.Address), err
  5888  	}
  5889  
  5890  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5891  
  5892  	return out0, err
  5893  }
  5894  
  5895  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5896  //
  5897  // Solidity: function owner() view returns(address)
  5898  func (_IRegistry *IRegistrySession) Owner() (common.Address, error) {
  5899  	return _IRegistry.Contract.Owner(&_IRegistry.CallOpts)
  5900  }
  5901  
  5902  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5903  //
  5904  // Solidity: function owner() view returns(address)
  5905  func (_IRegistry *IRegistryCallerSession) Owner() (common.Address, error) {
  5906  	return _IRegistry.Contract.Owner(&_IRegistry.CallOpts)
  5907  }
  5908  
  5909  // Records is a free data retrieval call binding the contract method 0x3b51650d.
  5910  //
  5911  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
  5912  func (_IRegistry *IRegistryCaller) Records(opts *bind.CallOpts, arg0 string, arg1 *big.Int) (struct {
  5913  	Addr       common.Address
  5914  	Activation *big.Int
  5915  }, error,
  5916  ) {
  5917  	var out []interface{}
  5918  	err := _IRegistry.contract.Call(opts, &out, "records", arg0, arg1)
  5919  
  5920  	outstruct := new(struct {
  5921  		Addr       common.Address
  5922  		Activation *big.Int
  5923  	})
  5924  
  5925  	outstruct.Addr = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5926  	outstruct.Activation = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
  5927  	return *outstruct, err
  5928  }
  5929  
  5930  // Records is a free data retrieval call binding the contract method 0x3b51650d.
  5931  //
  5932  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
  5933  func (_IRegistry *IRegistrySession) Records(arg0 string, arg1 *big.Int) (struct {
  5934  	Addr       common.Address
  5935  	Activation *big.Int
  5936  }, error,
  5937  ) {
  5938  	return _IRegistry.Contract.Records(&_IRegistry.CallOpts, arg0, arg1)
  5939  }
  5940  
  5941  // Records is a free data retrieval call binding the contract method 0x3b51650d.
  5942  //
  5943  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
  5944  func (_IRegistry *IRegistryCallerSession) Records(arg0 string, arg1 *big.Int) (struct {
  5945  	Addr       common.Address
  5946  	Activation *big.Int
  5947  }, error,
  5948  ) {
  5949  	return _IRegistry.Contract.Records(&_IRegistry.CallOpts, arg0, arg1)
  5950  }
  5951  
  5952  // GetActiveAddr is a paid mutator transaction binding the contract method 0xe2693e3f.
  5953  //
  5954  // Solidity: function getActiveAddr(string name) returns(address)
  5955  func (_IRegistry *IRegistryTransactor) GetActiveAddr(opts *bind.TransactOpts, name string) (*types.Transaction, error) {
  5956  	return _IRegistry.contract.Transact(opts, "getActiveAddr", name)
  5957  }
  5958  
  5959  // GetActiveAddr is a paid mutator transaction binding the contract method 0xe2693e3f.
  5960  //
  5961  // Solidity: function getActiveAddr(string name) returns(address)
  5962  func (_IRegistry *IRegistrySession) GetActiveAddr(name string) (*types.Transaction, error) {
  5963  	return _IRegistry.Contract.GetActiveAddr(&_IRegistry.TransactOpts, name)
  5964  }
  5965  
  5966  // GetActiveAddr is a paid mutator transaction binding the contract method 0xe2693e3f.
  5967  //
  5968  // Solidity: function getActiveAddr(string name) returns(address)
  5969  func (_IRegistry *IRegistryTransactorSession) GetActiveAddr(name string) (*types.Transaction, error) {
  5970  	return _IRegistry.Contract.GetActiveAddr(&_IRegistry.TransactOpts, name)
  5971  }
  5972  
  5973  // Register is a paid mutator transaction binding the contract method 0xd393c871.
  5974  //
  5975  // Solidity: function register(string name, address addr, uint256 activation) returns()
  5976  func (_IRegistry *IRegistryTransactor) Register(opts *bind.TransactOpts, name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
  5977  	return _IRegistry.contract.Transact(opts, "register", name, addr, activation)
  5978  }
  5979  
  5980  // Register is a paid mutator transaction binding the contract method 0xd393c871.
  5981  //
  5982  // Solidity: function register(string name, address addr, uint256 activation) returns()
  5983  func (_IRegistry *IRegistrySession) Register(name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
  5984  	return _IRegistry.Contract.Register(&_IRegistry.TransactOpts, name, addr, activation)
  5985  }
  5986  
  5987  // Register is a paid mutator transaction binding the contract method 0xd393c871.
  5988  //
  5989  // Solidity: function register(string name, address addr, uint256 activation) returns()
  5990  func (_IRegistry *IRegistryTransactorSession) Register(name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
  5991  	return _IRegistry.Contract.Register(&_IRegistry.TransactOpts, name, addr, activation)
  5992  }
  5993  
  5994  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  5995  //
  5996  // Solidity: function transferOwnership(address newOwner) returns()
  5997  func (_IRegistry *IRegistryTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  5998  	return _IRegistry.contract.Transact(opts, "transferOwnership", newOwner)
  5999  }
  6000  
  6001  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6002  //
  6003  // Solidity: function transferOwnership(address newOwner) returns()
  6004  func (_IRegistry *IRegistrySession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6005  	return _IRegistry.Contract.TransferOwnership(&_IRegistry.TransactOpts, newOwner)
  6006  }
  6007  
  6008  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6009  //
  6010  // Solidity: function transferOwnership(address newOwner) returns()
  6011  func (_IRegistry *IRegistryTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6012  	return _IRegistry.Contract.TransferOwnership(&_IRegistry.TransactOpts, newOwner)
  6013  }
  6014  
  6015  // IRegistryOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the IRegistry contract.
  6016  type IRegistryOwnershipTransferredIterator struct {
  6017  	Event *IRegistryOwnershipTransferred // Event containing the contract specifics and raw log
  6018  
  6019  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6020  	event    string              // Event name to use for unpacking event data
  6021  
  6022  	logs chan types.Log      // Log channel receiving the found contract events
  6023  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6024  	done bool                // Whether the subscription completed delivering logs
  6025  	fail error               // Occurred error to stop iteration
  6026  }
  6027  
  6028  // Next advances the iterator to the subsequent event, returning whether there
  6029  // are any more events found. In case of a retrieval or parsing error, false is
  6030  // returned and Error() can be queried for the exact failure.
  6031  func (it *IRegistryOwnershipTransferredIterator) Next() bool {
  6032  	// If the iterator failed, stop iterating
  6033  	if it.fail != nil {
  6034  		return false
  6035  	}
  6036  	// If the iterator completed, deliver directly whatever's available
  6037  	if it.done {
  6038  		select {
  6039  		case log := <-it.logs:
  6040  			it.Event = new(IRegistryOwnershipTransferred)
  6041  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6042  				it.fail = err
  6043  				return false
  6044  			}
  6045  			it.Event.Raw = log
  6046  			return true
  6047  
  6048  		default:
  6049  			return false
  6050  		}
  6051  	}
  6052  	// Iterator still in progress, wait for either a data or an error event
  6053  	select {
  6054  	case log := <-it.logs:
  6055  		it.Event = new(IRegistryOwnershipTransferred)
  6056  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6057  			it.fail = err
  6058  			return false
  6059  		}
  6060  		it.Event.Raw = log
  6061  		return true
  6062  
  6063  	case err := <-it.sub.Err():
  6064  		it.done = true
  6065  		it.fail = err
  6066  		return it.Next()
  6067  	}
  6068  }
  6069  
  6070  // Error returns any retrieval or parsing error occurred during filtering.
  6071  func (it *IRegistryOwnershipTransferredIterator) Error() error {
  6072  	return it.fail
  6073  }
  6074  
  6075  // Close terminates the iteration process, releasing any pending underlying
  6076  // resources.
  6077  func (it *IRegistryOwnershipTransferredIterator) Close() error {
  6078  	it.sub.Unsubscribe()
  6079  	return nil
  6080  }
  6081  
  6082  // IRegistryOwnershipTransferred represents a OwnershipTransferred event raised by the IRegistry contract.
  6083  type IRegistryOwnershipTransferred struct {
  6084  	PreviousOwner common.Address
  6085  	NewOwner      common.Address
  6086  	Raw           types.Log // Blockchain specific contextual infos
  6087  }
  6088  
  6089  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  6090  //
  6091  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  6092  func (_IRegistry *IRegistryFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*IRegistryOwnershipTransferredIterator, error) {
  6093  	var previousOwnerRule []interface{}
  6094  	for _, previousOwnerItem := range previousOwner {
  6095  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  6096  	}
  6097  	var newOwnerRule []interface{}
  6098  	for _, newOwnerItem := range newOwner {
  6099  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  6100  	}
  6101  
  6102  	logs, sub, err := _IRegistry.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  6103  	if err != nil {
  6104  		return nil, err
  6105  	}
  6106  	return &IRegistryOwnershipTransferredIterator{contract: _IRegistry.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  6107  }
  6108  
  6109  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  6110  //
  6111  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  6112  func (_IRegistry *IRegistryFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *IRegistryOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  6113  	var previousOwnerRule []interface{}
  6114  	for _, previousOwnerItem := range previousOwner {
  6115  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  6116  	}
  6117  	var newOwnerRule []interface{}
  6118  	for _, newOwnerItem := range newOwner {
  6119  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  6120  	}
  6121  
  6122  	logs, sub, err := _IRegistry.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  6123  	if err != nil {
  6124  		return nil, err
  6125  	}
  6126  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6127  		defer sub.Unsubscribe()
  6128  		for {
  6129  			select {
  6130  			case log := <-logs:
  6131  				// New log arrived, parse the event and forward to the user
  6132  				event := new(IRegistryOwnershipTransferred)
  6133  				if err := _IRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  6134  					return err
  6135  				}
  6136  				event.Raw = log
  6137  
  6138  				select {
  6139  				case sink <- event:
  6140  				case err := <-sub.Err():
  6141  					return err
  6142  				case <-quit:
  6143  					return nil
  6144  				}
  6145  			case err := <-sub.Err():
  6146  				return err
  6147  			case <-quit:
  6148  				return nil
  6149  			}
  6150  		}
  6151  	}), nil
  6152  }
  6153  
  6154  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  6155  //
  6156  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  6157  func (_IRegistry *IRegistryFilterer) ParseOwnershipTransferred(log types.Log) (*IRegistryOwnershipTransferred, error) {
  6158  	event := new(IRegistryOwnershipTransferred)
  6159  	if err := _IRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  6160  		return nil, err
  6161  	}
  6162  	return event, nil
  6163  }
  6164  
  6165  // IRegistryRegisteredIterator is returned from FilterRegistered and is used to iterate over the raw logs and unpacked data for Registered events raised by the IRegistry contract.
  6166  type IRegistryRegisteredIterator struct {
  6167  	Event *IRegistryRegistered // Event containing the contract specifics and raw log
  6168  
  6169  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6170  	event    string              // Event name to use for unpacking event data
  6171  
  6172  	logs chan types.Log      // Log channel receiving the found contract events
  6173  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6174  	done bool                // Whether the subscription completed delivering logs
  6175  	fail error               // Occurred error to stop iteration
  6176  }
  6177  
  6178  // Next advances the iterator to the subsequent event, returning whether there
  6179  // are any more events found. In case of a retrieval or parsing error, false is
  6180  // returned and Error() can be queried for the exact failure.
  6181  func (it *IRegistryRegisteredIterator) Next() bool {
  6182  	// If the iterator failed, stop iterating
  6183  	if it.fail != nil {
  6184  		return false
  6185  	}
  6186  	// If the iterator completed, deliver directly whatever's available
  6187  	if it.done {
  6188  		select {
  6189  		case log := <-it.logs:
  6190  			it.Event = new(IRegistryRegistered)
  6191  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6192  				it.fail = err
  6193  				return false
  6194  			}
  6195  			it.Event.Raw = log
  6196  			return true
  6197  
  6198  		default:
  6199  			return false
  6200  		}
  6201  	}
  6202  	// Iterator still in progress, wait for either a data or an error event
  6203  	select {
  6204  	case log := <-it.logs:
  6205  		it.Event = new(IRegistryRegistered)
  6206  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6207  			it.fail = err
  6208  			return false
  6209  		}
  6210  		it.Event.Raw = log
  6211  		return true
  6212  
  6213  	case err := <-it.sub.Err():
  6214  		it.done = true
  6215  		it.fail = err
  6216  		return it.Next()
  6217  	}
  6218  }
  6219  
  6220  // Error returns any retrieval or parsing error occurred during filtering.
  6221  func (it *IRegistryRegisteredIterator) Error() error {
  6222  	return it.fail
  6223  }
  6224  
  6225  // Close terminates the iteration process, releasing any pending underlying
  6226  // resources.
  6227  func (it *IRegistryRegisteredIterator) Close() error {
  6228  	it.sub.Unsubscribe()
  6229  	return nil
  6230  }
  6231  
  6232  // IRegistryRegistered represents a Registered event raised by the IRegistry contract.
  6233  type IRegistryRegistered struct {
  6234  	Name       string
  6235  	Addr       common.Address
  6236  	Activation *big.Int
  6237  	Raw        types.Log // Blockchain specific contextual infos
  6238  }
  6239  
  6240  // FilterRegistered is a free log retrieval operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
  6241  //
  6242  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
  6243  func (_IRegistry *IRegistryFilterer) FilterRegistered(opts *bind.FilterOpts, addr []common.Address, activation []*big.Int) (*IRegistryRegisteredIterator, error) {
  6244  	var addrRule []interface{}
  6245  	for _, addrItem := range addr {
  6246  		addrRule = append(addrRule, addrItem)
  6247  	}
  6248  	var activationRule []interface{}
  6249  	for _, activationItem := range activation {
  6250  		activationRule = append(activationRule, activationItem)
  6251  	}
  6252  
  6253  	logs, sub, err := _IRegistry.contract.FilterLogs(opts, "Registered", addrRule, activationRule)
  6254  	if err != nil {
  6255  		return nil, err
  6256  	}
  6257  	return &IRegistryRegisteredIterator{contract: _IRegistry.contract, event: "Registered", logs: logs, sub: sub}, nil
  6258  }
  6259  
  6260  // WatchRegistered is a free log subscription operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
  6261  //
  6262  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
  6263  func (_IRegistry *IRegistryFilterer) WatchRegistered(opts *bind.WatchOpts, sink chan<- *IRegistryRegistered, addr []common.Address, activation []*big.Int) (event.Subscription, error) {
  6264  	var addrRule []interface{}
  6265  	for _, addrItem := range addr {
  6266  		addrRule = append(addrRule, addrItem)
  6267  	}
  6268  	var activationRule []interface{}
  6269  	for _, activationItem := range activation {
  6270  		activationRule = append(activationRule, activationItem)
  6271  	}
  6272  
  6273  	logs, sub, err := _IRegistry.contract.WatchLogs(opts, "Registered", addrRule, activationRule)
  6274  	if err != nil {
  6275  		return nil, err
  6276  	}
  6277  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6278  		defer sub.Unsubscribe()
  6279  		for {
  6280  			select {
  6281  			case log := <-logs:
  6282  				// New log arrived, parse the event and forward to the user
  6283  				event := new(IRegistryRegistered)
  6284  				if err := _IRegistry.contract.UnpackLog(event, "Registered", log); err != nil {
  6285  					return err
  6286  				}
  6287  				event.Raw = log
  6288  
  6289  				select {
  6290  				case sink <- event:
  6291  				case err := <-sub.Err():
  6292  					return err
  6293  				case <-quit:
  6294  					return nil
  6295  				}
  6296  			case err := <-sub.Err():
  6297  				return err
  6298  			case <-quit:
  6299  				return nil
  6300  			}
  6301  		}
  6302  	}), nil
  6303  }
  6304  
  6305  // ParseRegistered is a log parse operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
  6306  //
  6307  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
  6308  func (_IRegistry *IRegistryFilterer) ParseRegistered(log types.Log) (*IRegistryRegistered, error) {
  6309  	event := new(IRegistryRegistered)
  6310  	if err := _IRegistry.contract.UnpackLog(event, "Registered", log); err != nil {
  6311  		return nil, err
  6312  	}
  6313  	return event, nil
  6314  }
  6315  
  6316  // InitializableMetaData contains all meta data concerning the Initializable contract.
  6317  var InitializableMetaData = &bind.MetaData{
  6318  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]",
  6319  }
  6320  
  6321  // InitializableABI is the input ABI used to generate the binding from.
  6322  // Deprecated: Use InitializableMetaData.ABI instead.
  6323  var InitializableABI = InitializableMetaData.ABI
  6324  
  6325  // InitializableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  6326  const InitializableBinRuntime = ``
  6327  
  6328  // Initializable is an auto generated Go binding around a Klaytn contract.
  6329  type Initializable struct {
  6330  	InitializableCaller     // Read-only binding to the contract
  6331  	InitializableTransactor // Write-only binding to the contract
  6332  	InitializableFilterer   // Log filterer for contract events
  6333  }
  6334  
  6335  // InitializableCaller is an auto generated read-only Go binding around a Klaytn contract.
  6336  type InitializableCaller struct {
  6337  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6338  }
  6339  
  6340  // InitializableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  6341  type InitializableTransactor struct {
  6342  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6343  }
  6344  
  6345  // InitializableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  6346  type InitializableFilterer struct {
  6347  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6348  }
  6349  
  6350  // InitializableSession is an auto generated Go binding around a Klaytn contract,
  6351  // with pre-set call and transact options.
  6352  type InitializableSession struct {
  6353  	Contract     *Initializable    // Generic contract binding to set the session for
  6354  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  6355  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  6356  }
  6357  
  6358  // InitializableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  6359  // with pre-set call options.
  6360  type InitializableCallerSession struct {
  6361  	Contract *InitializableCaller // Generic contract caller binding to set the session for
  6362  	CallOpts bind.CallOpts        // Call options to use throughout this session
  6363  }
  6364  
  6365  // InitializableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  6366  // with pre-set transact options.
  6367  type InitializableTransactorSession struct {
  6368  	Contract     *InitializableTransactor // Generic contract transactor binding to set the session for
  6369  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
  6370  }
  6371  
  6372  // InitializableRaw is an auto generated low-level Go binding around a Klaytn contract.
  6373  type InitializableRaw struct {
  6374  	Contract *Initializable // Generic contract binding to access the raw methods on
  6375  }
  6376  
  6377  // InitializableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  6378  type InitializableCallerRaw struct {
  6379  	Contract *InitializableCaller // Generic read-only contract binding to access the raw methods on
  6380  }
  6381  
  6382  // InitializableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  6383  type InitializableTransactorRaw struct {
  6384  	Contract *InitializableTransactor // Generic write-only contract binding to access the raw methods on
  6385  }
  6386  
  6387  // NewInitializable creates a new instance of Initializable, bound to a specific deployed contract.
  6388  func NewInitializable(address common.Address, backend bind.ContractBackend) (*Initializable, error) {
  6389  	contract, err := bindInitializable(address, backend, backend, backend)
  6390  	if err != nil {
  6391  		return nil, err
  6392  	}
  6393  	return &Initializable{InitializableCaller: InitializableCaller{contract: contract}, InitializableTransactor: InitializableTransactor{contract: contract}, InitializableFilterer: InitializableFilterer{contract: contract}}, nil
  6394  }
  6395  
  6396  // NewInitializableCaller creates a new read-only instance of Initializable, bound to a specific deployed contract.
  6397  func NewInitializableCaller(address common.Address, caller bind.ContractCaller) (*InitializableCaller, error) {
  6398  	contract, err := bindInitializable(address, caller, nil, nil)
  6399  	if err != nil {
  6400  		return nil, err
  6401  	}
  6402  	return &InitializableCaller{contract: contract}, nil
  6403  }
  6404  
  6405  // NewInitializableTransactor creates a new write-only instance of Initializable, bound to a specific deployed contract.
  6406  func NewInitializableTransactor(address common.Address, transactor bind.ContractTransactor) (*InitializableTransactor, error) {
  6407  	contract, err := bindInitializable(address, nil, transactor, nil)
  6408  	if err != nil {
  6409  		return nil, err
  6410  	}
  6411  	return &InitializableTransactor{contract: contract}, nil
  6412  }
  6413  
  6414  // NewInitializableFilterer creates a new log filterer instance of Initializable, bound to a specific deployed contract.
  6415  func NewInitializableFilterer(address common.Address, filterer bind.ContractFilterer) (*InitializableFilterer, error) {
  6416  	contract, err := bindInitializable(address, nil, nil, filterer)
  6417  	if err != nil {
  6418  		return nil, err
  6419  	}
  6420  	return &InitializableFilterer{contract: contract}, nil
  6421  }
  6422  
  6423  // bindInitializable binds a generic wrapper to an already deployed contract.
  6424  func bindInitializable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6425  	parsed, err := InitializableMetaData.GetAbi()
  6426  	if err != nil {
  6427  		return nil, err
  6428  	}
  6429  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  6430  }
  6431  
  6432  // Call invokes the (constant) contract method with params as input values and
  6433  // sets the output to result. The result type might be a single field for simple
  6434  // returns, a slice of interfaces for anonymous returns and a struct for named
  6435  // returns.
  6436  func (_Initializable *InitializableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6437  	return _Initializable.Contract.InitializableCaller.contract.Call(opts, result, method, params...)
  6438  }
  6439  
  6440  // Transfer initiates a plain transaction to move funds to the contract, calling
  6441  // its default method if one is available.
  6442  func (_Initializable *InitializableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6443  	return _Initializable.Contract.InitializableTransactor.contract.Transfer(opts)
  6444  }
  6445  
  6446  // Transact invokes the (paid) contract method with params as input values.
  6447  func (_Initializable *InitializableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6448  	return _Initializable.Contract.InitializableTransactor.contract.Transact(opts, method, params...)
  6449  }
  6450  
  6451  // Call invokes the (constant) contract method with params as input values and
  6452  // sets the output to result. The result type might be a single field for simple
  6453  // returns, a slice of interfaces for anonymous returns and a struct for named
  6454  // returns.
  6455  func (_Initializable *InitializableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6456  	return _Initializable.Contract.contract.Call(opts, result, method, params...)
  6457  }
  6458  
  6459  // Transfer initiates a plain transaction to move funds to the contract, calling
  6460  // its default method if one is available.
  6461  func (_Initializable *InitializableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6462  	return _Initializable.Contract.contract.Transfer(opts)
  6463  }
  6464  
  6465  // Transact invokes the (paid) contract method with params as input values.
  6466  func (_Initializable *InitializableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6467  	return _Initializable.Contract.contract.Transact(opts, method, params...)
  6468  }
  6469  
  6470  // InitializableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Initializable contract.
  6471  type InitializableInitializedIterator struct {
  6472  	Event *InitializableInitialized // Event containing the contract specifics and raw log
  6473  
  6474  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6475  	event    string              // Event name to use for unpacking event data
  6476  
  6477  	logs chan types.Log      // Log channel receiving the found contract events
  6478  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6479  	done bool                // Whether the subscription completed delivering logs
  6480  	fail error               // Occurred error to stop iteration
  6481  }
  6482  
  6483  // Next advances the iterator to the subsequent event, returning whether there
  6484  // are any more events found. In case of a retrieval or parsing error, false is
  6485  // returned and Error() can be queried for the exact failure.
  6486  func (it *InitializableInitializedIterator) Next() bool {
  6487  	// If the iterator failed, stop iterating
  6488  	if it.fail != nil {
  6489  		return false
  6490  	}
  6491  	// If the iterator completed, deliver directly whatever's available
  6492  	if it.done {
  6493  		select {
  6494  		case log := <-it.logs:
  6495  			it.Event = new(InitializableInitialized)
  6496  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6497  				it.fail = err
  6498  				return false
  6499  			}
  6500  			it.Event.Raw = log
  6501  			return true
  6502  
  6503  		default:
  6504  			return false
  6505  		}
  6506  	}
  6507  	// Iterator still in progress, wait for either a data or an error event
  6508  	select {
  6509  	case log := <-it.logs:
  6510  		it.Event = new(InitializableInitialized)
  6511  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6512  			it.fail = err
  6513  			return false
  6514  		}
  6515  		it.Event.Raw = log
  6516  		return true
  6517  
  6518  	case err := <-it.sub.Err():
  6519  		it.done = true
  6520  		it.fail = err
  6521  		return it.Next()
  6522  	}
  6523  }
  6524  
  6525  // Error returns any retrieval or parsing error occurred during filtering.
  6526  func (it *InitializableInitializedIterator) Error() error {
  6527  	return it.fail
  6528  }
  6529  
  6530  // Close terminates the iteration process, releasing any pending underlying
  6531  // resources.
  6532  func (it *InitializableInitializedIterator) Close() error {
  6533  	it.sub.Unsubscribe()
  6534  	return nil
  6535  }
  6536  
  6537  // InitializableInitialized represents a Initialized event raised by the Initializable contract.
  6538  type InitializableInitialized struct {
  6539  	Version uint8
  6540  	Raw     types.Log // Blockchain specific contextual infos
  6541  }
  6542  
  6543  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  6544  //
  6545  // Solidity: event Initialized(uint8 version)
  6546  func (_Initializable *InitializableFilterer) FilterInitialized(opts *bind.FilterOpts) (*InitializableInitializedIterator, error) {
  6547  	logs, sub, err := _Initializable.contract.FilterLogs(opts, "Initialized")
  6548  	if err != nil {
  6549  		return nil, err
  6550  	}
  6551  	return &InitializableInitializedIterator{contract: _Initializable.contract, event: "Initialized", logs: logs, sub: sub}, nil
  6552  }
  6553  
  6554  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  6555  //
  6556  // Solidity: event Initialized(uint8 version)
  6557  func (_Initializable *InitializableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *InitializableInitialized) (event.Subscription, error) {
  6558  	logs, sub, err := _Initializable.contract.WatchLogs(opts, "Initialized")
  6559  	if err != nil {
  6560  		return nil, err
  6561  	}
  6562  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6563  		defer sub.Unsubscribe()
  6564  		for {
  6565  			select {
  6566  			case log := <-logs:
  6567  				// New log arrived, parse the event and forward to the user
  6568  				event := new(InitializableInitialized)
  6569  				if err := _Initializable.contract.UnpackLog(event, "Initialized", log); err != nil {
  6570  					return err
  6571  				}
  6572  				event.Raw = log
  6573  
  6574  				select {
  6575  				case sink <- event:
  6576  				case err := <-sub.Err():
  6577  					return err
  6578  				case <-quit:
  6579  					return nil
  6580  				}
  6581  			case err := <-sub.Err():
  6582  				return err
  6583  			case <-quit:
  6584  				return nil
  6585  			}
  6586  		}
  6587  	}), nil
  6588  }
  6589  
  6590  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  6591  //
  6592  // Solidity: event Initialized(uint8 version)
  6593  func (_Initializable *InitializableFilterer) ParseInitialized(log types.Log) (*InitializableInitialized, error) {
  6594  	event := new(InitializableInitialized)
  6595  	if err := _Initializable.contract.UnpackLog(event, "Initialized", log); err != nil {
  6596  		return nil, err
  6597  	}
  6598  	return event, nil
  6599  }
  6600  
  6601  // KIP113MetaData contains all meta data concerning the KIP113 contract.
  6602  var KIP113MetaData = &bind.MetaData{
  6603  	ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"name\":\"Unregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ZERO48HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO96HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"abook\",\"outputs\":[{\"internalType\":\"contractIAddressBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allNodeIds\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllBlsInfo\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"nodeIdList\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"internalType\":\"structIKIP113.BlsPublicKeyInfo[]\",\"name\":\"pubkeyList\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"record\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"}],\"name\":\"unregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]",
  6604  	Sigs: map[string]string{
  6605  		"6fc522c6": "ZERO48HASH()",
  6606  		"20abd458": "ZERO96HASH()",
  6607  		"829d639d": "abook()",
  6608  		"a5834971": "allNodeIds(uint256)",
  6609  		"6968b53f": "getAllBlsInfo()",
  6610  		"8129fc1c": "initialize()",
  6611  		"8da5cb5b": "owner()",
  6612  		"52d1902d": "proxiableUUID()",
  6613  		"3465d6d5": "record(address)",
  6614  		"786cd4d7": "register(address,bytes,bytes)",
  6615  		"715018a6": "renounceOwnership()",
  6616  		"f2fde38b": "transferOwnership(address)",
  6617  		"2ec2c246": "unregister(address)",
  6618  		"3659cfe6": "upgradeTo(address)",
  6619  		"4f1ef286": "upgradeToAndCall(address,bytes)",
  6620  	},
  6621  	Bin: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611ecc61011860003960008181610593015281816105d301528181610672015281816106b201526107450152611ecc6000f3fe6080604052600436106100e85760003560e01c80636fc522c61161008a578063829d639d11610059578063829d639d1461026d5780638da5cb5b1461029b578063a5834971146102b9578063f2fde38b146102d957600080fd5b80636fc522c6146101ef578063715018a614610223578063786cd4d7146102385780638129fc1c1461025857600080fd5b80633659cfe6116100c65780633659cfe6146101845780634f1ef286146101a457806352d1902d146101b75780636968b53f146101cc57600080fd5b806320abd458146100ed5780632ec2c246146101345780633465d6d514610156575b600080fd5b3480156100f957600080fd5b506101217f46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c2181565b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061015461014f3660046116cb565b6102f9565b005b34801561016257600080fd5b506101766101713660046116cb565b61045d565b60405161012b92919061173f565b34801561019057600080fd5b5061015461019f3660046116cb565b610589565b6101546101b2366004611783565b610668565b3480156101c357600080fd5b50610121610738565b3480156101d857600080fd5b506101e16107eb565b60405161012b929190611847565b3480156101fb57600080fd5b506101217fc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd29381565b34801561022f57600080fd5b50610154610aa8565b34801561024457600080fd5b50610154610253366004611955565b610abc565b34801561026457600080fd5b50610154610e30565b34801561027957600080fd5b5061028361040081565b6040516001600160a01b03909116815260200161012b565b3480156102a757600080fd5b506097546001600160a01b0316610283565b3480156102c557600080fd5b506102836102d43660046119d8565b610f48565b3480156102e557600080fd5b506101546102f43660046116cb565b610f72565b610301610fe8565b61030a81611042565b1561035c5760405162461bcd60e51b815260206004820152601a60248201527f434e206973207374696c6c20696e2041646472657373426f6f6b00000000000060448201526064015b60405180910390fd5b6001600160a01b038116600090815260ca60205260409020805461037f906119f1565b90506000036103c75760405162461bcd60e51b815260206004820152601460248201527310d3881a5cc81b9bdd081c9959da5cdd195c995960621b6044820152606401610353565b6103d0816110be565b6001600160a01b038116600090815260ca60205260409081902090517fb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d99161041f918491906001820190611aa8565b60405180910390a16001600160a01b038116600090815260ca602052604081209061044a8282611668565b610458600183016000611668565b505050565b60ca60205260009081526040902080548190610478906119f1565b80601f01602080910402602001604051908101604052809291908181526020018280546104a4906119f1565b80156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b505050505090806001018054610506906119f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610532906119f1565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905082565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d15760405162461bcd60e51b815260040161035390611ade565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661061a600080516020611e50833981519152546001600160a01b031690565b6001600160a01b0316146106405760405162461bcd60e51b815260040161035390611b2a565b610649816111c5565b60408051600080825260208201909252610665918391906111cd565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b05760405162461bcd60e51b815260040161035390611ade565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106f9600080516020611e50833981519152546001600160a01b031690565b6001600160a01b03161461071f5760405162461bcd60e51b815260040161035390611b2a565b610728826111c5565b610734828260016111cd565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610353565b50600080516020611e5083398151915290565b60c954606090819067ffffffffffffffff81111561080b5761080b61176d565b604051908082528060200260200182016040528015610834578160200160208202803683370190505b5060c95490925067ffffffffffffffff8111156108535761085361176d565b60405190808252806020026020018201604052801561089857816020015b60408051808201909152606080825260208201528152602001906001900390816108715790505b50905060005b8251811015610aa35760c981815481106108ba576108ba611b76565b9060005260206000200160009054906101000a90046001600160a01b03168382815181106108ea576108ea611b76565b60200260200101906001600160a01b031690816001600160a01b03168152505060ca600060c9838154811061092157610921611b76565b60009182526020808320909101546001600160a01b031683528201929092526040908101909120815180830190925280548290829061095f906119f1565b80601f016020809104026020016040519081016040528092919081815260200182805461098b906119f1565b80156109d85780601f106109ad576101008083540402835291602001916109d8565b820191906000526020600020905b8154815290600101906020018083116109bb57829003601f168201915b505050505081526020016001820180546109f1906119f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1d906119f1565b8015610a6a5780601f10610a3f57610100808354040283529160200191610a6a565b820191906000526020600020905b815481529060010190602001808311610a4d57829003601f168201915b505050505081525050828281518110610a8557610a85611b76565b60200260200101819052508080610a9b90611ba2565b91505061089e565b509091565b610ab0610fe8565b610aba6000611338565b565b610ac4610fe8565b838360308114610b165760405162461bcd60e51b815260206004820152601b60248201527f5075626c6963206b6579206d75737420626520343820627974657300000000006044820152606401610353565b6040517fc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd29390610b489084908490611bbb565b604051809103902003610b9d5760405162461bcd60e51b815260206004820152601960248201527f5075626c6963206b65792063616e6e6f74206265207a65726f000000000000006044820152606401610353565b838360608114610be65760405162461bcd60e51b8152602060048201526014602482015273506f70206d75737420626520393620627974657360601b6044820152606401610353565b6040517f46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c2190610c189084908490611bbb565b604051809103902003610c625760405162461bcd60e51b8152602060048201526012602482015271506f702063616e6e6f74206265207a65726f60701b6044820152606401610353565b610c6b89611042565b610cb75760405162461bcd60e51b815260206004820152601e60248201527f636e4e6f64654964206973206e6f7420696e2041646472657373426f6f6b00006044820152606401610353565b6001600160a01b038916600090815260ca602052604090208054610cda906119f1565b9050600003610d2f5760c980546001810182556000919091527f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d280180546001600160a01b0319166001600160a01b038b161790555b6040805160606020601f8b018190040282018101835291810189815290918291908b908b9081908501838280828437600092019190915250505090825250604080516020601f8a018190048102820181019092528881529181019190899089908190840183828082843760009201829052509390945250506001600160a01b038c16815260ca6020526040902082519091508190610dcd9082611c19565b5060208201516001820190610de29082611c19565b509050507f79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f8989898989604051610e1d959493929190611d02565b60405180910390a1505050505050505050565b600054610100900460ff1615808015610e505750600054600160ff909116105b80610e6a5750303b158015610e6a575060005460ff166001145b610ecd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610353565b6000805460ff191660011790558015610ef0576000805461ff0019166101001790555b610ef861138a565b610f006113b9565b8015610665576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60c98181548110610f5857600080fd5b6000918252602090912001546001600160a01b0316905081565b610f7a610fe8565b6001600160a01b038116610fdf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b61066581611338565b6097546001600160a01b03163314610aba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610353565b604051630aabaead60e11b81526001600160a01b0382166004820152600090610400906315575d5a90602401606060405180830381865afa9250505080156110a7575060408051601f3d908101601f191682019092526110a491810190611d46565b60015b6110b357506000919050565b506001949350505050565b60005b60c95481101561073457816001600160a01b031660c982815481106110e8576110e8611b76565b6000918252602090912001546001600160a01b0316036111b35760c9805461111290600190611d93565b8154811061112257611122611b76565b60009182526020909120015460c980546001600160a01b03909216918390811061114e5761114e611b76565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c980548061118d5761118d611da6565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806111bd81611ba2565b9150506110c1565b610665610fe8565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561120057610458836113e0565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561125a575060408051601f3d908101601f1916820190925261125791810190611dbc565b60015b6112bd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610353565b600080516020611e50833981519152811461132c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610353565b5061045883838361147c565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166113b15760405162461bcd60e51b815260040161035390611dd5565b610aba6114a7565b600054610100900460ff16610aba5760405162461bcd60e51b815260040161035390611dd5565b6001600160a01b0381163b61144d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610353565b600080516020611e5083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611485836114d7565b6000825111806114925750805b15610458576114a18383611517565b50505050565b600054610100900460ff166114ce5760405162461bcd60e51b815260040161035390611dd5565b610aba33611338565b6114e0816113e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061153c8383604051806060016040528060278152602001611e7060279139611545565b90505b92915050565b6060600080856001600160a01b0316856040516115629190611e20565b600060405180830381855af49150503d806000811461159d576040519150601f19603f3d011682016040523d82523d6000602084013e6115a2565b606091505b50915091506115b3868383876115bd565b9695505050505050565b6060831561162c578251600003611625576001600160a01b0385163b6116255760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610353565b5081611636565b611636838361163e565b949350505050565b81511561164e5781518083602001fd5b8060405162461bcd60e51b81526004016103539190611e3c565b508054611674906119f1565b6000825580601f10611684575050565b601f01602090049060005260206000209081019061066591905b808211156116b2576000815560010161169e565b5090565b6001600160a01b038116811461066557600080fd5b6000602082840312156116dd57600080fd5b81356116e8816116b6565b9392505050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6040815260006117526040830185611713565b82810360208401526117648185611713565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561179657600080fd5b82356117a1816116b6565b9150602083013567ffffffffffffffff808211156117be57600080fd5b818501915085601f8301126117d257600080fd5b8135818111156117e4576117e461176d565b604051601f8201601f19908116603f0116810190838211818310171561180c5761180c61176d565b8160405282815288602084870101111561182557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60408082528351828201819052600091906020906060850190828801855b8281101561188a5781516001600160a01b031684529284019290840190600101611865565b50505084810382860152855180825282820190600581901b8301840188850160005b838110156118fc57858303601f19018552815180518985526118d08a860182611713565b91890151858303868b01529190506118e88183611713565b9689019694505050908601906001016118ac565b50909a9950505050505050505050565b60008083601f84011261191e57600080fd5b50813567ffffffffffffffff81111561193657600080fd5b60208301915083602082850101111561194e57600080fd5b9250929050565b60008060008060006060868803121561196d57600080fd5b8535611978816116b6565b9450602086013567ffffffffffffffff8082111561199557600080fd5b6119a189838a0161190c565b909650945060408801359150808211156119ba57600080fd5b506119c78882890161190c565b969995985093965092949392505050565b6000602082840312156119ea57600080fd5b5035919050565b600181811c90821680611a0557607f821691505b602082108103611a2557634e487b7160e01b600052602260045260246000fd5b50919050565b60008154611a38816119f1565b808552602060018381168015611a555760018114611a6f57611a9d565b60ff1985168884015283151560051b880183019550611a9d565b866000528260002060005b85811015611a955781548a8201860152908301908401611a7a565b890184019650505b505050505092915050565b6001600160a01b0384168152606060208201819052600090611acc90830185611a2b565b82810360408401526115b38185611a2b565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611bb457611bb4611b8c565b5060010190565b8183823760009101908152919050565b601f82111561045857600081815260208120601f850160051c81016020861015611bf25750805b601f850160051c820191505b81811015611c1157828155600101611bfe565b505050505050565b815167ffffffffffffffff811115611c3357611c3361176d565b611c4781611c4184546119f1565b84611bcb565b602080601f831160018114611c7c5760008415611c645750858301515b600019600386901b1c1916600185901b178555611c11565b600085815260208120601f198616915b82811015611cab57888601518255948401946001909101908401611c8c565b5085821015611cc95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0386168152606060208201819052600090611d279083018688611cd9565b8281036040840152611d3a818587611cd9565b98975050505050505050565b600080600060608486031215611d5b57600080fd5b8351611d66816116b6565b6020850151909350611d77816116b6565b6040850151909250611d88816116b6565b809150509250925092565b8181038181111561153f5761153f611b8c565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611dce57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611e328184602087016116ef565b9190910192915050565b60208152600061153c602083018461171356fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d02b98764eebd34b392597d53a0f207a671d0bcaba08bb568c5dabdf106de2cd64736f6c63430008130033",
  6622  }
  6623  
  6624  // KIP113ABI is the input ABI used to generate the binding from.
  6625  // Deprecated: Use KIP113MetaData.ABI instead.
  6626  var KIP113ABI = KIP113MetaData.ABI
  6627  
  6628  // KIP113BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  6629  const KIP113BinRuntime = `6080604052600436106100e85760003560e01c80636fc522c61161008a578063829d639d11610059578063829d639d1461026d5780638da5cb5b1461029b578063a5834971146102b9578063f2fde38b146102d957600080fd5b80636fc522c6146101ef578063715018a614610223578063786cd4d7146102385780638129fc1c1461025857600080fd5b80633659cfe6116100c65780633659cfe6146101845780634f1ef286146101a457806352d1902d146101b75780636968b53f146101cc57600080fd5b806320abd458146100ed5780632ec2c246146101345780633465d6d514610156575b600080fd5b3480156100f957600080fd5b506101217f46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c2181565b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061015461014f3660046116cb565b6102f9565b005b34801561016257600080fd5b506101766101713660046116cb565b61045d565b60405161012b92919061173f565b34801561019057600080fd5b5061015461019f3660046116cb565b610589565b6101546101b2366004611783565b610668565b3480156101c357600080fd5b50610121610738565b3480156101d857600080fd5b506101e16107eb565b60405161012b929190611847565b3480156101fb57600080fd5b506101217fc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd29381565b34801561022f57600080fd5b50610154610aa8565b34801561024457600080fd5b50610154610253366004611955565b610abc565b34801561026457600080fd5b50610154610e30565b34801561027957600080fd5b5061028361040081565b6040516001600160a01b03909116815260200161012b565b3480156102a757600080fd5b506097546001600160a01b0316610283565b3480156102c557600080fd5b506102836102d43660046119d8565b610f48565b3480156102e557600080fd5b506101546102f43660046116cb565b610f72565b610301610fe8565b61030a81611042565b1561035c5760405162461bcd60e51b815260206004820152601a60248201527f434e206973207374696c6c20696e2041646472657373426f6f6b00000000000060448201526064015b60405180910390fd5b6001600160a01b038116600090815260ca60205260409020805461037f906119f1565b90506000036103c75760405162461bcd60e51b815260206004820152601460248201527310d3881a5cc81b9bdd081c9959da5cdd195c995960621b6044820152606401610353565b6103d0816110be565b6001600160a01b038116600090815260ca60205260409081902090517fb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d99161041f918491906001820190611aa8565b60405180910390a16001600160a01b038116600090815260ca602052604081209061044a8282611668565b610458600183016000611668565b505050565b60ca60205260009081526040902080548190610478906119f1565b80601f01602080910402602001604051908101604052809291908181526020018280546104a4906119f1565b80156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b505050505090806001018054610506906119f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610532906119f1565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905082565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d15760405162461bcd60e51b815260040161035390611ade565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661061a600080516020611e50833981519152546001600160a01b031690565b6001600160a01b0316146106405760405162461bcd60e51b815260040161035390611b2a565b610649816111c5565b60408051600080825260208201909252610665918391906111cd565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b05760405162461bcd60e51b815260040161035390611ade565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106f9600080516020611e50833981519152546001600160a01b031690565b6001600160a01b03161461071f5760405162461bcd60e51b815260040161035390611b2a565b610728826111c5565b610734828260016111cd565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610353565b50600080516020611e5083398151915290565b60c954606090819067ffffffffffffffff81111561080b5761080b61176d565b604051908082528060200260200182016040528015610834578160200160208202803683370190505b5060c95490925067ffffffffffffffff8111156108535761085361176d565b60405190808252806020026020018201604052801561089857816020015b60408051808201909152606080825260208201528152602001906001900390816108715790505b50905060005b8251811015610aa35760c981815481106108ba576108ba611b76565b9060005260206000200160009054906101000a90046001600160a01b03168382815181106108ea576108ea611b76565b60200260200101906001600160a01b031690816001600160a01b03168152505060ca600060c9838154811061092157610921611b76565b60009182526020808320909101546001600160a01b031683528201929092526040908101909120815180830190925280548290829061095f906119f1565b80601f016020809104026020016040519081016040528092919081815260200182805461098b906119f1565b80156109d85780601f106109ad576101008083540402835291602001916109d8565b820191906000526020600020905b8154815290600101906020018083116109bb57829003601f168201915b505050505081526020016001820180546109f1906119f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1d906119f1565b8015610a6a5780601f10610a3f57610100808354040283529160200191610a6a565b820191906000526020600020905b815481529060010190602001808311610a4d57829003601f168201915b505050505081525050828281518110610a8557610a85611b76565b60200260200101819052508080610a9b90611ba2565b91505061089e565b509091565b610ab0610fe8565b610aba6000611338565b565b610ac4610fe8565b838360308114610b165760405162461bcd60e51b815260206004820152601b60248201527f5075626c6963206b6579206d75737420626520343820627974657300000000006044820152606401610353565b6040517fc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd29390610b489084908490611bbb565b604051809103902003610b9d5760405162461bcd60e51b815260206004820152601960248201527f5075626c6963206b65792063616e6e6f74206265207a65726f000000000000006044820152606401610353565b838360608114610be65760405162461bcd60e51b8152602060048201526014602482015273506f70206d75737420626520393620627974657360601b6044820152606401610353565b6040517f46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c2190610c189084908490611bbb565b604051809103902003610c625760405162461bcd60e51b8152602060048201526012602482015271506f702063616e6e6f74206265207a65726f60701b6044820152606401610353565b610c6b89611042565b610cb75760405162461bcd60e51b815260206004820152601e60248201527f636e4e6f64654964206973206e6f7420696e2041646472657373426f6f6b00006044820152606401610353565b6001600160a01b038916600090815260ca602052604090208054610cda906119f1565b9050600003610d2f5760c980546001810182556000919091527f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d280180546001600160a01b0319166001600160a01b038b161790555b6040805160606020601f8b018190040282018101835291810189815290918291908b908b9081908501838280828437600092019190915250505090825250604080516020601f8a018190048102820181019092528881529181019190899089908190840183828082843760009201829052509390945250506001600160a01b038c16815260ca6020526040902082519091508190610dcd9082611c19565b5060208201516001820190610de29082611c19565b509050507f79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f8989898989604051610e1d959493929190611d02565b60405180910390a1505050505050505050565b600054610100900460ff1615808015610e505750600054600160ff909116105b80610e6a5750303b158015610e6a575060005460ff166001145b610ecd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610353565b6000805460ff191660011790558015610ef0576000805461ff0019166101001790555b610ef861138a565b610f006113b9565b8015610665576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60c98181548110610f5857600080fd5b6000918252602090912001546001600160a01b0316905081565b610f7a610fe8565b6001600160a01b038116610fdf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b61066581611338565b6097546001600160a01b03163314610aba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610353565b604051630aabaead60e11b81526001600160a01b0382166004820152600090610400906315575d5a90602401606060405180830381865afa9250505080156110a7575060408051601f3d908101601f191682019092526110a491810190611d46565b60015b6110b357506000919050565b506001949350505050565b60005b60c95481101561073457816001600160a01b031660c982815481106110e8576110e8611b76565b6000918252602090912001546001600160a01b0316036111b35760c9805461111290600190611d93565b8154811061112257611122611b76565b60009182526020909120015460c980546001600160a01b03909216918390811061114e5761114e611b76565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c980548061118d5761118d611da6565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806111bd81611ba2565b9150506110c1565b610665610fe8565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561120057610458836113e0565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561125a575060408051601f3d908101601f1916820190925261125791810190611dbc565b60015b6112bd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610353565b600080516020611e50833981519152811461132c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610353565b5061045883838361147c565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166113b15760405162461bcd60e51b815260040161035390611dd5565b610aba6114a7565b600054610100900460ff16610aba5760405162461bcd60e51b815260040161035390611dd5565b6001600160a01b0381163b61144d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610353565b600080516020611e5083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611485836114d7565b6000825111806114925750805b15610458576114a18383611517565b50505050565b600054610100900460ff166114ce5760405162461bcd60e51b815260040161035390611dd5565b610aba33611338565b6114e0816113e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061153c8383604051806060016040528060278152602001611e7060279139611545565b90505b92915050565b6060600080856001600160a01b0316856040516115629190611e20565b600060405180830381855af49150503d806000811461159d576040519150601f19603f3d011682016040523d82523d6000602084013e6115a2565b606091505b50915091506115b3868383876115bd565b9695505050505050565b6060831561162c578251600003611625576001600160a01b0385163b6116255760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610353565b5081611636565b611636838361163e565b949350505050565b81511561164e5781518083602001fd5b8060405162461bcd60e51b81526004016103539190611e3c565b508054611674906119f1565b6000825580601f10611684575050565b601f01602090049060005260206000209081019061066591905b808211156116b2576000815560010161169e565b5090565b6001600160a01b038116811461066557600080fd5b6000602082840312156116dd57600080fd5b81356116e8816116b6565b9392505050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6040815260006117526040830185611713565b82810360208401526117648185611713565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561179657600080fd5b82356117a1816116b6565b9150602083013567ffffffffffffffff808211156117be57600080fd5b818501915085601f8301126117d257600080fd5b8135818111156117e4576117e461176d565b604051601f8201601f19908116603f0116810190838211818310171561180c5761180c61176d565b8160405282815288602084870101111561182557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60408082528351828201819052600091906020906060850190828801855b8281101561188a5781516001600160a01b031684529284019290840190600101611865565b50505084810382860152855180825282820190600581901b8301840188850160005b838110156118fc57858303601f19018552815180518985526118d08a860182611713565b91890151858303868b01529190506118e88183611713565b9689019694505050908601906001016118ac565b50909a9950505050505050505050565b60008083601f84011261191e57600080fd5b50813567ffffffffffffffff81111561193657600080fd5b60208301915083602082850101111561194e57600080fd5b9250929050565b60008060008060006060868803121561196d57600080fd5b8535611978816116b6565b9450602086013567ffffffffffffffff8082111561199557600080fd5b6119a189838a0161190c565b909650945060408801359150808211156119ba57600080fd5b506119c78882890161190c565b969995985093965092949392505050565b6000602082840312156119ea57600080fd5b5035919050565b600181811c90821680611a0557607f821691505b602082108103611a2557634e487b7160e01b600052602260045260246000fd5b50919050565b60008154611a38816119f1565b808552602060018381168015611a555760018114611a6f57611a9d565b60ff1985168884015283151560051b880183019550611a9d565b866000528260002060005b85811015611a955781548a8201860152908301908401611a7a565b890184019650505b505050505092915050565b6001600160a01b0384168152606060208201819052600090611acc90830185611a2b565b82810360408401526115b38185611a2b565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611bb457611bb4611b8c565b5060010190565b8183823760009101908152919050565b601f82111561045857600081815260208120601f850160051c81016020861015611bf25750805b601f850160051c820191505b81811015611c1157828155600101611bfe565b505050505050565b815167ffffffffffffffff811115611c3357611c3361176d565b611c4781611c4184546119f1565b84611bcb565b602080601f831160018114611c7c5760008415611c645750858301515b600019600386901b1c1916600185901b178555611c11565b600085815260208120601f198616915b82811015611cab57888601518255948401946001909101908401611c8c565b5085821015611cc95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0386168152606060208201819052600090611d279083018688611cd9565b8281036040840152611d3a818587611cd9565b98975050505050505050565b600080600060608486031215611d5b57600080fd5b8351611d66816116b6565b6020850151909350611d77816116b6565b6040850151909250611d88816116b6565b809150509250925092565b8181038181111561153f5761153f611b8c565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611dce57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611e328184602087016116ef565b9190910192915050565b60208152600061153c602083018461171356fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d02b98764eebd34b392597d53a0f207a671d0bcaba08bb568c5dabdf106de2cd64736f6c63430008130033`
  6630  
  6631  // KIP113FuncSigs maps the 4-byte function signature to its string representation.
  6632  // Deprecated: Use KIP113MetaData.Sigs instead.
  6633  var KIP113FuncSigs = KIP113MetaData.Sigs
  6634  
  6635  // KIP113Bin is the compiled bytecode used for deploying new contracts.
  6636  // Deprecated: Use KIP113MetaData.Bin instead.
  6637  var KIP113Bin = KIP113MetaData.Bin
  6638  
  6639  // DeployKIP113 deploys a new Klaytn contract, binding an instance of KIP113 to it.
  6640  func DeployKIP113(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KIP113, error) {
  6641  	parsed, err := KIP113MetaData.GetAbi()
  6642  	if err != nil {
  6643  		return common.Address{}, nil, nil, err
  6644  	}
  6645  	if parsed == nil {
  6646  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  6647  	}
  6648  
  6649  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(KIP113Bin), backend)
  6650  	if err != nil {
  6651  		return common.Address{}, nil, nil, err
  6652  	}
  6653  	return address, tx, &KIP113{KIP113Caller: KIP113Caller{contract: contract}, KIP113Transactor: KIP113Transactor{contract: contract}, KIP113Filterer: KIP113Filterer{contract: contract}}, nil
  6654  }
  6655  
  6656  // KIP113 is an auto generated Go binding around a Klaytn contract.
  6657  type KIP113 struct {
  6658  	KIP113Caller     // Read-only binding to the contract
  6659  	KIP113Transactor // Write-only binding to the contract
  6660  	KIP113Filterer   // Log filterer for contract events
  6661  }
  6662  
  6663  // KIP113Caller is an auto generated read-only Go binding around a Klaytn contract.
  6664  type KIP113Caller struct {
  6665  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6666  }
  6667  
  6668  // KIP113Transactor is an auto generated write-only Go binding around a Klaytn contract.
  6669  type KIP113Transactor struct {
  6670  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6671  }
  6672  
  6673  // KIP113Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  6674  type KIP113Filterer struct {
  6675  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6676  }
  6677  
  6678  // KIP113Session is an auto generated Go binding around a Klaytn contract,
  6679  // with pre-set call and transact options.
  6680  type KIP113Session struct {
  6681  	Contract     *KIP113           // Generic contract binding to set the session for
  6682  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  6683  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  6684  }
  6685  
  6686  // KIP113CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  6687  // with pre-set call options.
  6688  type KIP113CallerSession struct {
  6689  	Contract *KIP113Caller // Generic contract caller binding to set the session for
  6690  	CallOpts bind.CallOpts // Call options to use throughout this session
  6691  }
  6692  
  6693  // KIP113TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  6694  // with pre-set transact options.
  6695  type KIP113TransactorSession struct {
  6696  	Contract     *KIP113Transactor // Generic contract transactor binding to set the session for
  6697  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  6698  }
  6699  
  6700  // KIP113Raw is an auto generated low-level Go binding around a Klaytn contract.
  6701  type KIP113Raw struct {
  6702  	Contract *KIP113 // Generic contract binding to access the raw methods on
  6703  }
  6704  
  6705  // KIP113CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  6706  type KIP113CallerRaw struct {
  6707  	Contract *KIP113Caller // Generic read-only contract binding to access the raw methods on
  6708  }
  6709  
  6710  // KIP113TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  6711  type KIP113TransactorRaw struct {
  6712  	Contract *KIP113Transactor // Generic write-only contract binding to access the raw methods on
  6713  }
  6714  
  6715  // NewKIP113 creates a new instance of KIP113, bound to a specific deployed contract.
  6716  func NewKIP113(address common.Address, backend bind.ContractBackend) (*KIP113, error) {
  6717  	contract, err := bindKIP113(address, backend, backend, backend)
  6718  	if err != nil {
  6719  		return nil, err
  6720  	}
  6721  	return &KIP113{KIP113Caller: KIP113Caller{contract: contract}, KIP113Transactor: KIP113Transactor{contract: contract}, KIP113Filterer: KIP113Filterer{contract: contract}}, nil
  6722  }
  6723  
  6724  // NewKIP113Caller creates a new read-only instance of KIP113, bound to a specific deployed contract.
  6725  func NewKIP113Caller(address common.Address, caller bind.ContractCaller) (*KIP113Caller, error) {
  6726  	contract, err := bindKIP113(address, caller, nil, nil)
  6727  	if err != nil {
  6728  		return nil, err
  6729  	}
  6730  	return &KIP113Caller{contract: contract}, nil
  6731  }
  6732  
  6733  // NewKIP113Transactor creates a new write-only instance of KIP113, bound to a specific deployed contract.
  6734  func NewKIP113Transactor(address common.Address, transactor bind.ContractTransactor) (*KIP113Transactor, error) {
  6735  	contract, err := bindKIP113(address, nil, transactor, nil)
  6736  	if err != nil {
  6737  		return nil, err
  6738  	}
  6739  	return &KIP113Transactor{contract: contract}, nil
  6740  }
  6741  
  6742  // NewKIP113Filterer creates a new log filterer instance of KIP113, bound to a specific deployed contract.
  6743  func NewKIP113Filterer(address common.Address, filterer bind.ContractFilterer) (*KIP113Filterer, error) {
  6744  	contract, err := bindKIP113(address, nil, nil, filterer)
  6745  	if err != nil {
  6746  		return nil, err
  6747  	}
  6748  	return &KIP113Filterer{contract: contract}, nil
  6749  }
  6750  
  6751  // bindKIP113 binds a generic wrapper to an already deployed contract.
  6752  func bindKIP113(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6753  	parsed, err := KIP113MetaData.GetAbi()
  6754  	if err != nil {
  6755  		return nil, err
  6756  	}
  6757  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  6758  }
  6759  
  6760  // Call invokes the (constant) contract method with params as input values and
  6761  // sets the output to result. The result type might be a single field for simple
  6762  // returns, a slice of interfaces for anonymous returns and a struct for named
  6763  // returns.
  6764  func (_KIP113 *KIP113Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6765  	return _KIP113.Contract.KIP113Caller.contract.Call(opts, result, method, params...)
  6766  }
  6767  
  6768  // Transfer initiates a plain transaction to move funds to the contract, calling
  6769  // its default method if one is available.
  6770  func (_KIP113 *KIP113Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6771  	return _KIP113.Contract.KIP113Transactor.contract.Transfer(opts)
  6772  }
  6773  
  6774  // Transact invokes the (paid) contract method with params as input values.
  6775  func (_KIP113 *KIP113Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6776  	return _KIP113.Contract.KIP113Transactor.contract.Transact(opts, method, params...)
  6777  }
  6778  
  6779  // Call invokes the (constant) contract method with params as input values and
  6780  // sets the output to result. The result type might be a single field for simple
  6781  // returns, a slice of interfaces for anonymous returns and a struct for named
  6782  // returns.
  6783  func (_KIP113 *KIP113CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6784  	return _KIP113.Contract.contract.Call(opts, result, method, params...)
  6785  }
  6786  
  6787  // Transfer initiates a plain transaction to move funds to the contract, calling
  6788  // its default method if one is available.
  6789  func (_KIP113 *KIP113TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6790  	return _KIP113.Contract.contract.Transfer(opts)
  6791  }
  6792  
  6793  // Transact invokes the (paid) contract method with params as input values.
  6794  func (_KIP113 *KIP113TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6795  	return _KIP113.Contract.contract.Transact(opts, method, params...)
  6796  }
  6797  
  6798  // ZERO48HASH is a free data retrieval call binding the contract method 0x6fc522c6.
  6799  //
  6800  // Solidity: function ZERO48HASH() view returns(bytes32)
  6801  func (_KIP113 *KIP113Caller) ZERO48HASH(opts *bind.CallOpts) ([32]byte, error) {
  6802  	var out []interface{}
  6803  	err := _KIP113.contract.Call(opts, &out, "ZERO48HASH")
  6804  	if err != nil {
  6805  		return *new([32]byte), err
  6806  	}
  6807  
  6808  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  6809  
  6810  	return out0, err
  6811  }
  6812  
  6813  // ZERO48HASH is a free data retrieval call binding the contract method 0x6fc522c6.
  6814  //
  6815  // Solidity: function ZERO48HASH() view returns(bytes32)
  6816  func (_KIP113 *KIP113Session) ZERO48HASH() ([32]byte, error) {
  6817  	return _KIP113.Contract.ZERO48HASH(&_KIP113.CallOpts)
  6818  }
  6819  
  6820  // ZERO48HASH is a free data retrieval call binding the contract method 0x6fc522c6.
  6821  //
  6822  // Solidity: function ZERO48HASH() view returns(bytes32)
  6823  func (_KIP113 *KIP113CallerSession) ZERO48HASH() ([32]byte, error) {
  6824  	return _KIP113.Contract.ZERO48HASH(&_KIP113.CallOpts)
  6825  }
  6826  
  6827  // ZERO96HASH is a free data retrieval call binding the contract method 0x20abd458.
  6828  //
  6829  // Solidity: function ZERO96HASH() view returns(bytes32)
  6830  func (_KIP113 *KIP113Caller) ZERO96HASH(opts *bind.CallOpts) ([32]byte, error) {
  6831  	var out []interface{}
  6832  	err := _KIP113.contract.Call(opts, &out, "ZERO96HASH")
  6833  	if err != nil {
  6834  		return *new([32]byte), err
  6835  	}
  6836  
  6837  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  6838  
  6839  	return out0, err
  6840  }
  6841  
  6842  // ZERO96HASH is a free data retrieval call binding the contract method 0x20abd458.
  6843  //
  6844  // Solidity: function ZERO96HASH() view returns(bytes32)
  6845  func (_KIP113 *KIP113Session) ZERO96HASH() ([32]byte, error) {
  6846  	return _KIP113.Contract.ZERO96HASH(&_KIP113.CallOpts)
  6847  }
  6848  
  6849  // ZERO96HASH is a free data retrieval call binding the contract method 0x20abd458.
  6850  //
  6851  // Solidity: function ZERO96HASH() view returns(bytes32)
  6852  func (_KIP113 *KIP113CallerSession) ZERO96HASH() ([32]byte, error) {
  6853  	return _KIP113.Contract.ZERO96HASH(&_KIP113.CallOpts)
  6854  }
  6855  
  6856  // Abook is a free data retrieval call binding the contract method 0x829d639d.
  6857  //
  6858  // Solidity: function abook() view returns(address)
  6859  func (_KIP113 *KIP113Caller) Abook(opts *bind.CallOpts) (common.Address, error) {
  6860  	var out []interface{}
  6861  	err := _KIP113.contract.Call(opts, &out, "abook")
  6862  	if err != nil {
  6863  		return *new(common.Address), err
  6864  	}
  6865  
  6866  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6867  
  6868  	return out0, err
  6869  }
  6870  
  6871  // Abook is a free data retrieval call binding the contract method 0x829d639d.
  6872  //
  6873  // Solidity: function abook() view returns(address)
  6874  func (_KIP113 *KIP113Session) Abook() (common.Address, error) {
  6875  	return _KIP113.Contract.Abook(&_KIP113.CallOpts)
  6876  }
  6877  
  6878  // Abook is a free data retrieval call binding the contract method 0x829d639d.
  6879  //
  6880  // Solidity: function abook() view returns(address)
  6881  func (_KIP113 *KIP113CallerSession) Abook() (common.Address, error) {
  6882  	return _KIP113.Contract.Abook(&_KIP113.CallOpts)
  6883  }
  6884  
  6885  // AllNodeIds is a free data retrieval call binding the contract method 0xa5834971.
  6886  //
  6887  // Solidity: function allNodeIds(uint256 ) view returns(address)
  6888  func (_KIP113 *KIP113Caller) AllNodeIds(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  6889  	var out []interface{}
  6890  	err := _KIP113.contract.Call(opts, &out, "allNodeIds", arg0)
  6891  	if err != nil {
  6892  		return *new(common.Address), err
  6893  	}
  6894  
  6895  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6896  
  6897  	return out0, err
  6898  }
  6899  
  6900  // AllNodeIds is a free data retrieval call binding the contract method 0xa5834971.
  6901  //
  6902  // Solidity: function allNodeIds(uint256 ) view returns(address)
  6903  func (_KIP113 *KIP113Session) AllNodeIds(arg0 *big.Int) (common.Address, error) {
  6904  	return _KIP113.Contract.AllNodeIds(&_KIP113.CallOpts, arg0)
  6905  }
  6906  
  6907  // AllNodeIds is a free data retrieval call binding the contract method 0xa5834971.
  6908  //
  6909  // Solidity: function allNodeIds(uint256 ) view returns(address)
  6910  func (_KIP113 *KIP113CallerSession) AllNodeIds(arg0 *big.Int) (common.Address, error) {
  6911  	return _KIP113.Contract.AllNodeIds(&_KIP113.CallOpts, arg0)
  6912  }
  6913  
  6914  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  6915  //
  6916  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  6917  func (_KIP113 *KIP113Caller) GetAllBlsInfo(opts *bind.CallOpts) (struct {
  6918  	NodeIdList []common.Address
  6919  	PubkeyList []IKIP113BlsPublicKeyInfo
  6920  }, error,
  6921  ) {
  6922  	var out []interface{}
  6923  	err := _KIP113.contract.Call(opts, &out, "getAllBlsInfo")
  6924  
  6925  	outstruct := new(struct {
  6926  		NodeIdList []common.Address
  6927  		PubkeyList []IKIP113BlsPublicKeyInfo
  6928  	})
  6929  
  6930  	outstruct.NodeIdList = *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  6931  	outstruct.PubkeyList = *abi.ConvertType(out[1], new([]IKIP113BlsPublicKeyInfo)).(*[]IKIP113BlsPublicKeyInfo)
  6932  	return *outstruct, err
  6933  }
  6934  
  6935  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  6936  //
  6937  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  6938  func (_KIP113 *KIP113Session) GetAllBlsInfo() (struct {
  6939  	NodeIdList []common.Address
  6940  	PubkeyList []IKIP113BlsPublicKeyInfo
  6941  }, error,
  6942  ) {
  6943  	return _KIP113.Contract.GetAllBlsInfo(&_KIP113.CallOpts)
  6944  }
  6945  
  6946  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  6947  //
  6948  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  6949  func (_KIP113 *KIP113CallerSession) GetAllBlsInfo() (struct {
  6950  	NodeIdList []common.Address
  6951  	PubkeyList []IKIP113BlsPublicKeyInfo
  6952  }, error,
  6953  ) {
  6954  	return _KIP113.Contract.GetAllBlsInfo(&_KIP113.CallOpts)
  6955  }
  6956  
  6957  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6958  //
  6959  // Solidity: function owner() view returns(address)
  6960  func (_KIP113 *KIP113Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
  6961  	var out []interface{}
  6962  	err := _KIP113.contract.Call(opts, &out, "owner")
  6963  	if err != nil {
  6964  		return *new(common.Address), err
  6965  	}
  6966  
  6967  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6968  
  6969  	return out0, err
  6970  }
  6971  
  6972  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6973  //
  6974  // Solidity: function owner() view returns(address)
  6975  func (_KIP113 *KIP113Session) Owner() (common.Address, error) {
  6976  	return _KIP113.Contract.Owner(&_KIP113.CallOpts)
  6977  }
  6978  
  6979  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6980  //
  6981  // Solidity: function owner() view returns(address)
  6982  func (_KIP113 *KIP113CallerSession) Owner() (common.Address, error) {
  6983  	return _KIP113.Contract.Owner(&_KIP113.CallOpts)
  6984  }
  6985  
  6986  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  6987  //
  6988  // Solidity: function proxiableUUID() view returns(bytes32)
  6989  func (_KIP113 *KIP113Caller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) {
  6990  	var out []interface{}
  6991  	err := _KIP113.contract.Call(opts, &out, "proxiableUUID")
  6992  	if err != nil {
  6993  		return *new([32]byte), err
  6994  	}
  6995  
  6996  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  6997  
  6998  	return out0, err
  6999  }
  7000  
  7001  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  7002  //
  7003  // Solidity: function proxiableUUID() view returns(bytes32)
  7004  func (_KIP113 *KIP113Session) ProxiableUUID() ([32]byte, error) {
  7005  	return _KIP113.Contract.ProxiableUUID(&_KIP113.CallOpts)
  7006  }
  7007  
  7008  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  7009  //
  7010  // Solidity: function proxiableUUID() view returns(bytes32)
  7011  func (_KIP113 *KIP113CallerSession) ProxiableUUID() ([32]byte, error) {
  7012  	return _KIP113.Contract.ProxiableUUID(&_KIP113.CallOpts)
  7013  }
  7014  
  7015  // Record is a free data retrieval call binding the contract method 0x3465d6d5.
  7016  //
  7017  // Solidity: function record(address ) view returns(bytes publicKey, bytes pop)
  7018  func (_KIP113 *KIP113Caller) Record(opts *bind.CallOpts, arg0 common.Address) (struct {
  7019  	PublicKey []byte
  7020  	Pop       []byte
  7021  }, error,
  7022  ) {
  7023  	var out []interface{}
  7024  	err := _KIP113.contract.Call(opts, &out, "record", arg0)
  7025  
  7026  	outstruct := new(struct {
  7027  		PublicKey []byte
  7028  		Pop       []byte
  7029  	})
  7030  
  7031  	outstruct.PublicKey = *abi.ConvertType(out[0], new([]byte)).(*[]byte)
  7032  	outstruct.Pop = *abi.ConvertType(out[1], new([]byte)).(*[]byte)
  7033  	return *outstruct, err
  7034  }
  7035  
  7036  // Record is a free data retrieval call binding the contract method 0x3465d6d5.
  7037  //
  7038  // Solidity: function record(address ) view returns(bytes publicKey, bytes pop)
  7039  func (_KIP113 *KIP113Session) Record(arg0 common.Address) (struct {
  7040  	PublicKey []byte
  7041  	Pop       []byte
  7042  }, error,
  7043  ) {
  7044  	return _KIP113.Contract.Record(&_KIP113.CallOpts, arg0)
  7045  }
  7046  
  7047  // Record is a free data retrieval call binding the contract method 0x3465d6d5.
  7048  //
  7049  // Solidity: function record(address ) view returns(bytes publicKey, bytes pop)
  7050  func (_KIP113 *KIP113CallerSession) Record(arg0 common.Address) (struct {
  7051  	PublicKey []byte
  7052  	Pop       []byte
  7053  }, error,
  7054  ) {
  7055  	return _KIP113.Contract.Record(&_KIP113.CallOpts, arg0)
  7056  }
  7057  
  7058  // Initialize is a paid mutator transaction binding the contract method 0x8129fc1c.
  7059  //
  7060  // Solidity: function initialize() returns()
  7061  func (_KIP113 *KIP113Transactor) Initialize(opts *bind.TransactOpts) (*types.Transaction, error) {
  7062  	return _KIP113.contract.Transact(opts, "initialize")
  7063  }
  7064  
  7065  // Initialize is a paid mutator transaction binding the contract method 0x8129fc1c.
  7066  //
  7067  // Solidity: function initialize() returns()
  7068  func (_KIP113 *KIP113Session) Initialize() (*types.Transaction, error) {
  7069  	return _KIP113.Contract.Initialize(&_KIP113.TransactOpts)
  7070  }
  7071  
  7072  // Initialize is a paid mutator transaction binding the contract method 0x8129fc1c.
  7073  //
  7074  // Solidity: function initialize() returns()
  7075  func (_KIP113 *KIP113TransactorSession) Initialize() (*types.Transaction, error) {
  7076  	return _KIP113.Contract.Initialize(&_KIP113.TransactOpts)
  7077  }
  7078  
  7079  // Register is a paid mutator transaction binding the contract method 0x786cd4d7.
  7080  //
  7081  // Solidity: function register(address cnNodeId, bytes publicKey, bytes pop) returns()
  7082  func (_KIP113 *KIP113Transactor) Register(opts *bind.TransactOpts, cnNodeId common.Address, publicKey []byte, pop []byte) (*types.Transaction, error) {
  7083  	return _KIP113.contract.Transact(opts, "register", cnNodeId, publicKey, pop)
  7084  }
  7085  
  7086  // Register is a paid mutator transaction binding the contract method 0x786cd4d7.
  7087  //
  7088  // Solidity: function register(address cnNodeId, bytes publicKey, bytes pop) returns()
  7089  func (_KIP113 *KIP113Session) Register(cnNodeId common.Address, publicKey []byte, pop []byte) (*types.Transaction, error) {
  7090  	return _KIP113.Contract.Register(&_KIP113.TransactOpts, cnNodeId, publicKey, pop)
  7091  }
  7092  
  7093  // Register is a paid mutator transaction binding the contract method 0x786cd4d7.
  7094  //
  7095  // Solidity: function register(address cnNodeId, bytes publicKey, bytes pop) returns()
  7096  func (_KIP113 *KIP113TransactorSession) Register(cnNodeId common.Address, publicKey []byte, pop []byte) (*types.Transaction, error) {
  7097  	return _KIP113.Contract.Register(&_KIP113.TransactOpts, cnNodeId, publicKey, pop)
  7098  }
  7099  
  7100  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  7101  //
  7102  // Solidity: function renounceOwnership() returns()
  7103  func (_KIP113 *KIP113Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  7104  	return _KIP113.contract.Transact(opts, "renounceOwnership")
  7105  }
  7106  
  7107  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  7108  //
  7109  // Solidity: function renounceOwnership() returns()
  7110  func (_KIP113 *KIP113Session) RenounceOwnership() (*types.Transaction, error) {
  7111  	return _KIP113.Contract.RenounceOwnership(&_KIP113.TransactOpts)
  7112  }
  7113  
  7114  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  7115  //
  7116  // Solidity: function renounceOwnership() returns()
  7117  func (_KIP113 *KIP113TransactorSession) RenounceOwnership() (*types.Transaction, error) {
  7118  	return _KIP113.Contract.RenounceOwnership(&_KIP113.TransactOpts)
  7119  }
  7120  
  7121  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  7122  //
  7123  // Solidity: function transferOwnership(address newOwner) returns()
  7124  func (_KIP113 *KIP113Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  7125  	return _KIP113.contract.Transact(opts, "transferOwnership", newOwner)
  7126  }
  7127  
  7128  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  7129  //
  7130  // Solidity: function transferOwnership(address newOwner) returns()
  7131  func (_KIP113 *KIP113Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  7132  	return _KIP113.Contract.TransferOwnership(&_KIP113.TransactOpts, newOwner)
  7133  }
  7134  
  7135  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  7136  //
  7137  // Solidity: function transferOwnership(address newOwner) returns()
  7138  func (_KIP113 *KIP113TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  7139  	return _KIP113.Contract.TransferOwnership(&_KIP113.TransactOpts, newOwner)
  7140  }
  7141  
  7142  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
  7143  //
  7144  // Solidity: function unregister(address cnNodeId) returns()
  7145  func (_KIP113 *KIP113Transactor) Unregister(opts *bind.TransactOpts, cnNodeId common.Address) (*types.Transaction, error) {
  7146  	return _KIP113.contract.Transact(opts, "unregister", cnNodeId)
  7147  }
  7148  
  7149  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
  7150  //
  7151  // Solidity: function unregister(address cnNodeId) returns()
  7152  func (_KIP113 *KIP113Session) Unregister(cnNodeId common.Address) (*types.Transaction, error) {
  7153  	return _KIP113.Contract.Unregister(&_KIP113.TransactOpts, cnNodeId)
  7154  }
  7155  
  7156  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
  7157  //
  7158  // Solidity: function unregister(address cnNodeId) returns()
  7159  func (_KIP113 *KIP113TransactorSession) Unregister(cnNodeId common.Address) (*types.Transaction, error) {
  7160  	return _KIP113.Contract.Unregister(&_KIP113.TransactOpts, cnNodeId)
  7161  }
  7162  
  7163  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  7164  //
  7165  // Solidity: function upgradeTo(address newImplementation) returns()
  7166  func (_KIP113 *KIP113Transactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) {
  7167  	return _KIP113.contract.Transact(opts, "upgradeTo", newImplementation)
  7168  }
  7169  
  7170  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  7171  //
  7172  // Solidity: function upgradeTo(address newImplementation) returns()
  7173  func (_KIP113 *KIP113Session) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
  7174  	return _KIP113.Contract.UpgradeTo(&_KIP113.TransactOpts, newImplementation)
  7175  }
  7176  
  7177  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  7178  //
  7179  // Solidity: function upgradeTo(address newImplementation) returns()
  7180  func (_KIP113 *KIP113TransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
  7181  	return _KIP113.Contract.UpgradeTo(&_KIP113.TransactOpts, newImplementation)
  7182  }
  7183  
  7184  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  7185  //
  7186  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  7187  func (_KIP113 *KIP113Transactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) {
  7188  	return _KIP113.contract.Transact(opts, "upgradeToAndCall", newImplementation, data)
  7189  }
  7190  
  7191  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  7192  //
  7193  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  7194  func (_KIP113 *KIP113Session) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
  7195  	return _KIP113.Contract.UpgradeToAndCall(&_KIP113.TransactOpts, newImplementation, data)
  7196  }
  7197  
  7198  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  7199  //
  7200  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  7201  func (_KIP113 *KIP113TransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
  7202  	return _KIP113.Contract.UpgradeToAndCall(&_KIP113.TransactOpts, newImplementation, data)
  7203  }
  7204  
  7205  // KIP113AdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the KIP113 contract.
  7206  type KIP113AdminChangedIterator struct {
  7207  	Event *KIP113AdminChanged // Event containing the contract specifics and raw log
  7208  
  7209  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7210  	event    string              // Event name to use for unpacking event data
  7211  
  7212  	logs chan types.Log      // Log channel receiving the found contract events
  7213  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7214  	done bool                // Whether the subscription completed delivering logs
  7215  	fail error               // Occurred error to stop iteration
  7216  }
  7217  
  7218  // Next advances the iterator to the subsequent event, returning whether there
  7219  // are any more events found. In case of a retrieval or parsing error, false is
  7220  // returned and Error() can be queried for the exact failure.
  7221  func (it *KIP113AdminChangedIterator) Next() bool {
  7222  	// If the iterator failed, stop iterating
  7223  	if it.fail != nil {
  7224  		return false
  7225  	}
  7226  	// If the iterator completed, deliver directly whatever's available
  7227  	if it.done {
  7228  		select {
  7229  		case log := <-it.logs:
  7230  			it.Event = new(KIP113AdminChanged)
  7231  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7232  				it.fail = err
  7233  				return false
  7234  			}
  7235  			it.Event.Raw = log
  7236  			return true
  7237  
  7238  		default:
  7239  			return false
  7240  		}
  7241  	}
  7242  	// Iterator still in progress, wait for either a data or an error event
  7243  	select {
  7244  	case log := <-it.logs:
  7245  		it.Event = new(KIP113AdminChanged)
  7246  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7247  			it.fail = err
  7248  			return false
  7249  		}
  7250  		it.Event.Raw = log
  7251  		return true
  7252  
  7253  	case err := <-it.sub.Err():
  7254  		it.done = true
  7255  		it.fail = err
  7256  		return it.Next()
  7257  	}
  7258  }
  7259  
  7260  // Error returns any retrieval or parsing error occurred during filtering.
  7261  func (it *KIP113AdminChangedIterator) Error() error {
  7262  	return it.fail
  7263  }
  7264  
  7265  // Close terminates the iteration process, releasing any pending underlying
  7266  // resources.
  7267  func (it *KIP113AdminChangedIterator) Close() error {
  7268  	it.sub.Unsubscribe()
  7269  	return nil
  7270  }
  7271  
  7272  // KIP113AdminChanged represents a AdminChanged event raised by the KIP113 contract.
  7273  type KIP113AdminChanged struct {
  7274  	PreviousAdmin common.Address
  7275  	NewAdmin      common.Address
  7276  	Raw           types.Log // Blockchain specific contextual infos
  7277  }
  7278  
  7279  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  7280  //
  7281  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  7282  func (_KIP113 *KIP113Filterer) FilterAdminChanged(opts *bind.FilterOpts) (*KIP113AdminChangedIterator, error) {
  7283  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "AdminChanged")
  7284  	if err != nil {
  7285  		return nil, err
  7286  	}
  7287  	return &KIP113AdminChangedIterator{contract: _KIP113.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  7288  }
  7289  
  7290  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  7291  //
  7292  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  7293  func (_KIP113 *KIP113Filterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *KIP113AdminChanged) (event.Subscription, error) {
  7294  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "AdminChanged")
  7295  	if err != nil {
  7296  		return nil, err
  7297  	}
  7298  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7299  		defer sub.Unsubscribe()
  7300  		for {
  7301  			select {
  7302  			case log := <-logs:
  7303  				// New log arrived, parse the event and forward to the user
  7304  				event := new(KIP113AdminChanged)
  7305  				if err := _KIP113.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  7306  					return err
  7307  				}
  7308  				event.Raw = log
  7309  
  7310  				select {
  7311  				case sink <- event:
  7312  				case err := <-sub.Err():
  7313  					return err
  7314  				case <-quit:
  7315  					return nil
  7316  				}
  7317  			case err := <-sub.Err():
  7318  				return err
  7319  			case <-quit:
  7320  				return nil
  7321  			}
  7322  		}
  7323  	}), nil
  7324  }
  7325  
  7326  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  7327  //
  7328  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  7329  func (_KIP113 *KIP113Filterer) ParseAdminChanged(log types.Log) (*KIP113AdminChanged, error) {
  7330  	event := new(KIP113AdminChanged)
  7331  	if err := _KIP113.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  7332  		return nil, err
  7333  	}
  7334  	return event, nil
  7335  }
  7336  
  7337  // KIP113BeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the KIP113 contract.
  7338  type KIP113BeaconUpgradedIterator struct {
  7339  	Event *KIP113BeaconUpgraded // Event containing the contract specifics and raw log
  7340  
  7341  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7342  	event    string              // Event name to use for unpacking event data
  7343  
  7344  	logs chan types.Log      // Log channel receiving the found contract events
  7345  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7346  	done bool                // Whether the subscription completed delivering logs
  7347  	fail error               // Occurred error to stop iteration
  7348  }
  7349  
  7350  // Next advances the iterator to the subsequent event, returning whether there
  7351  // are any more events found. In case of a retrieval or parsing error, false is
  7352  // returned and Error() can be queried for the exact failure.
  7353  func (it *KIP113BeaconUpgradedIterator) Next() bool {
  7354  	// If the iterator failed, stop iterating
  7355  	if it.fail != nil {
  7356  		return false
  7357  	}
  7358  	// If the iterator completed, deliver directly whatever's available
  7359  	if it.done {
  7360  		select {
  7361  		case log := <-it.logs:
  7362  			it.Event = new(KIP113BeaconUpgraded)
  7363  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7364  				it.fail = err
  7365  				return false
  7366  			}
  7367  			it.Event.Raw = log
  7368  			return true
  7369  
  7370  		default:
  7371  			return false
  7372  		}
  7373  	}
  7374  	// Iterator still in progress, wait for either a data or an error event
  7375  	select {
  7376  	case log := <-it.logs:
  7377  		it.Event = new(KIP113BeaconUpgraded)
  7378  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7379  			it.fail = err
  7380  			return false
  7381  		}
  7382  		it.Event.Raw = log
  7383  		return true
  7384  
  7385  	case err := <-it.sub.Err():
  7386  		it.done = true
  7387  		it.fail = err
  7388  		return it.Next()
  7389  	}
  7390  }
  7391  
  7392  // Error returns any retrieval or parsing error occurred during filtering.
  7393  func (it *KIP113BeaconUpgradedIterator) Error() error {
  7394  	return it.fail
  7395  }
  7396  
  7397  // Close terminates the iteration process, releasing any pending underlying
  7398  // resources.
  7399  func (it *KIP113BeaconUpgradedIterator) Close() error {
  7400  	it.sub.Unsubscribe()
  7401  	return nil
  7402  }
  7403  
  7404  // KIP113BeaconUpgraded represents a BeaconUpgraded event raised by the KIP113 contract.
  7405  type KIP113BeaconUpgraded struct {
  7406  	Beacon common.Address
  7407  	Raw    types.Log // Blockchain specific contextual infos
  7408  }
  7409  
  7410  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  7411  //
  7412  // Solidity: event BeaconUpgraded(address indexed beacon)
  7413  func (_KIP113 *KIP113Filterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*KIP113BeaconUpgradedIterator, error) {
  7414  	var beaconRule []interface{}
  7415  	for _, beaconItem := range beacon {
  7416  		beaconRule = append(beaconRule, beaconItem)
  7417  	}
  7418  
  7419  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  7420  	if err != nil {
  7421  		return nil, err
  7422  	}
  7423  	return &KIP113BeaconUpgradedIterator{contract: _KIP113.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  7424  }
  7425  
  7426  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  7427  //
  7428  // Solidity: event BeaconUpgraded(address indexed beacon)
  7429  func (_KIP113 *KIP113Filterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *KIP113BeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  7430  	var beaconRule []interface{}
  7431  	for _, beaconItem := range beacon {
  7432  		beaconRule = append(beaconRule, beaconItem)
  7433  	}
  7434  
  7435  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  7436  	if err != nil {
  7437  		return nil, err
  7438  	}
  7439  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7440  		defer sub.Unsubscribe()
  7441  		for {
  7442  			select {
  7443  			case log := <-logs:
  7444  				// New log arrived, parse the event and forward to the user
  7445  				event := new(KIP113BeaconUpgraded)
  7446  				if err := _KIP113.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  7447  					return err
  7448  				}
  7449  				event.Raw = log
  7450  
  7451  				select {
  7452  				case sink <- event:
  7453  				case err := <-sub.Err():
  7454  					return err
  7455  				case <-quit:
  7456  					return nil
  7457  				}
  7458  			case err := <-sub.Err():
  7459  				return err
  7460  			case <-quit:
  7461  				return nil
  7462  			}
  7463  		}
  7464  	}), nil
  7465  }
  7466  
  7467  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  7468  //
  7469  // Solidity: event BeaconUpgraded(address indexed beacon)
  7470  func (_KIP113 *KIP113Filterer) ParseBeaconUpgraded(log types.Log) (*KIP113BeaconUpgraded, error) {
  7471  	event := new(KIP113BeaconUpgraded)
  7472  	if err := _KIP113.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  7473  		return nil, err
  7474  	}
  7475  	return event, nil
  7476  }
  7477  
  7478  // KIP113InitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the KIP113 contract.
  7479  type KIP113InitializedIterator struct {
  7480  	Event *KIP113Initialized // Event containing the contract specifics and raw log
  7481  
  7482  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7483  	event    string              // Event name to use for unpacking event data
  7484  
  7485  	logs chan types.Log      // Log channel receiving the found contract events
  7486  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7487  	done bool                // Whether the subscription completed delivering logs
  7488  	fail error               // Occurred error to stop iteration
  7489  }
  7490  
  7491  // Next advances the iterator to the subsequent event, returning whether there
  7492  // are any more events found. In case of a retrieval or parsing error, false is
  7493  // returned and Error() can be queried for the exact failure.
  7494  func (it *KIP113InitializedIterator) Next() bool {
  7495  	// If the iterator failed, stop iterating
  7496  	if it.fail != nil {
  7497  		return false
  7498  	}
  7499  	// If the iterator completed, deliver directly whatever's available
  7500  	if it.done {
  7501  		select {
  7502  		case log := <-it.logs:
  7503  			it.Event = new(KIP113Initialized)
  7504  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7505  				it.fail = err
  7506  				return false
  7507  			}
  7508  			it.Event.Raw = log
  7509  			return true
  7510  
  7511  		default:
  7512  			return false
  7513  		}
  7514  	}
  7515  	// Iterator still in progress, wait for either a data or an error event
  7516  	select {
  7517  	case log := <-it.logs:
  7518  		it.Event = new(KIP113Initialized)
  7519  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7520  			it.fail = err
  7521  			return false
  7522  		}
  7523  		it.Event.Raw = log
  7524  		return true
  7525  
  7526  	case err := <-it.sub.Err():
  7527  		it.done = true
  7528  		it.fail = err
  7529  		return it.Next()
  7530  	}
  7531  }
  7532  
  7533  // Error returns any retrieval or parsing error occurred during filtering.
  7534  func (it *KIP113InitializedIterator) Error() error {
  7535  	return it.fail
  7536  }
  7537  
  7538  // Close terminates the iteration process, releasing any pending underlying
  7539  // resources.
  7540  func (it *KIP113InitializedIterator) Close() error {
  7541  	it.sub.Unsubscribe()
  7542  	return nil
  7543  }
  7544  
  7545  // KIP113Initialized represents a Initialized event raised by the KIP113 contract.
  7546  type KIP113Initialized struct {
  7547  	Version uint8
  7548  	Raw     types.Log // Blockchain specific contextual infos
  7549  }
  7550  
  7551  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  7552  //
  7553  // Solidity: event Initialized(uint8 version)
  7554  func (_KIP113 *KIP113Filterer) FilterInitialized(opts *bind.FilterOpts) (*KIP113InitializedIterator, error) {
  7555  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "Initialized")
  7556  	if err != nil {
  7557  		return nil, err
  7558  	}
  7559  	return &KIP113InitializedIterator{contract: _KIP113.contract, event: "Initialized", logs: logs, sub: sub}, nil
  7560  }
  7561  
  7562  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  7563  //
  7564  // Solidity: event Initialized(uint8 version)
  7565  func (_KIP113 *KIP113Filterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *KIP113Initialized) (event.Subscription, error) {
  7566  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "Initialized")
  7567  	if err != nil {
  7568  		return nil, err
  7569  	}
  7570  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7571  		defer sub.Unsubscribe()
  7572  		for {
  7573  			select {
  7574  			case log := <-logs:
  7575  				// New log arrived, parse the event and forward to the user
  7576  				event := new(KIP113Initialized)
  7577  				if err := _KIP113.contract.UnpackLog(event, "Initialized", log); err != nil {
  7578  					return err
  7579  				}
  7580  				event.Raw = log
  7581  
  7582  				select {
  7583  				case sink <- event:
  7584  				case err := <-sub.Err():
  7585  					return err
  7586  				case <-quit:
  7587  					return nil
  7588  				}
  7589  			case err := <-sub.Err():
  7590  				return err
  7591  			case <-quit:
  7592  				return nil
  7593  			}
  7594  		}
  7595  	}), nil
  7596  }
  7597  
  7598  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  7599  //
  7600  // Solidity: event Initialized(uint8 version)
  7601  func (_KIP113 *KIP113Filterer) ParseInitialized(log types.Log) (*KIP113Initialized, error) {
  7602  	event := new(KIP113Initialized)
  7603  	if err := _KIP113.contract.UnpackLog(event, "Initialized", log); err != nil {
  7604  		return nil, err
  7605  	}
  7606  	return event, nil
  7607  }
  7608  
  7609  // KIP113OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the KIP113 contract.
  7610  type KIP113OwnershipTransferredIterator struct {
  7611  	Event *KIP113OwnershipTransferred // Event containing the contract specifics and raw log
  7612  
  7613  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7614  	event    string              // Event name to use for unpacking event data
  7615  
  7616  	logs chan types.Log      // Log channel receiving the found contract events
  7617  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7618  	done bool                // Whether the subscription completed delivering logs
  7619  	fail error               // Occurred error to stop iteration
  7620  }
  7621  
  7622  // Next advances the iterator to the subsequent event, returning whether there
  7623  // are any more events found. In case of a retrieval or parsing error, false is
  7624  // returned and Error() can be queried for the exact failure.
  7625  func (it *KIP113OwnershipTransferredIterator) Next() bool {
  7626  	// If the iterator failed, stop iterating
  7627  	if it.fail != nil {
  7628  		return false
  7629  	}
  7630  	// If the iterator completed, deliver directly whatever's available
  7631  	if it.done {
  7632  		select {
  7633  		case log := <-it.logs:
  7634  			it.Event = new(KIP113OwnershipTransferred)
  7635  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7636  				it.fail = err
  7637  				return false
  7638  			}
  7639  			it.Event.Raw = log
  7640  			return true
  7641  
  7642  		default:
  7643  			return false
  7644  		}
  7645  	}
  7646  	// Iterator still in progress, wait for either a data or an error event
  7647  	select {
  7648  	case log := <-it.logs:
  7649  		it.Event = new(KIP113OwnershipTransferred)
  7650  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7651  			it.fail = err
  7652  			return false
  7653  		}
  7654  		it.Event.Raw = log
  7655  		return true
  7656  
  7657  	case err := <-it.sub.Err():
  7658  		it.done = true
  7659  		it.fail = err
  7660  		return it.Next()
  7661  	}
  7662  }
  7663  
  7664  // Error returns any retrieval or parsing error occurred during filtering.
  7665  func (it *KIP113OwnershipTransferredIterator) Error() error {
  7666  	return it.fail
  7667  }
  7668  
  7669  // Close terminates the iteration process, releasing any pending underlying
  7670  // resources.
  7671  func (it *KIP113OwnershipTransferredIterator) Close() error {
  7672  	it.sub.Unsubscribe()
  7673  	return nil
  7674  }
  7675  
  7676  // KIP113OwnershipTransferred represents a OwnershipTransferred event raised by the KIP113 contract.
  7677  type KIP113OwnershipTransferred struct {
  7678  	PreviousOwner common.Address
  7679  	NewOwner      common.Address
  7680  	Raw           types.Log // Blockchain specific contextual infos
  7681  }
  7682  
  7683  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7684  //
  7685  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7686  func (_KIP113 *KIP113Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*KIP113OwnershipTransferredIterator, error) {
  7687  	var previousOwnerRule []interface{}
  7688  	for _, previousOwnerItem := range previousOwner {
  7689  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7690  	}
  7691  	var newOwnerRule []interface{}
  7692  	for _, newOwnerItem := range newOwner {
  7693  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7694  	}
  7695  
  7696  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7697  	if err != nil {
  7698  		return nil, err
  7699  	}
  7700  	return &KIP113OwnershipTransferredIterator{contract: _KIP113.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  7701  }
  7702  
  7703  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7704  //
  7705  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7706  func (_KIP113 *KIP113Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *KIP113OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  7707  	var previousOwnerRule []interface{}
  7708  	for _, previousOwnerItem := range previousOwner {
  7709  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7710  	}
  7711  	var newOwnerRule []interface{}
  7712  	for _, newOwnerItem := range newOwner {
  7713  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7714  	}
  7715  
  7716  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7717  	if err != nil {
  7718  		return nil, err
  7719  	}
  7720  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7721  		defer sub.Unsubscribe()
  7722  		for {
  7723  			select {
  7724  			case log := <-logs:
  7725  				// New log arrived, parse the event and forward to the user
  7726  				event := new(KIP113OwnershipTransferred)
  7727  				if err := _KIP113.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7728  					return err
  7729  				}
  7730  				event.Raw = log
  7731  
  7732  				select {
  7733  				case sink <- event:
  7734  				case err := <-sub.Err():
  7735  					return err
  7736  				case <-quit:
  7737  					return nil
  7738  				}
  7739  			case err := <-sub.Err():
  7740  				return err
  7741  			case <-quit:
  7742  				return nil
  7743  			}
  7744  		}
  7745  	}), nil
  7746  }
  7747  
  7748  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7749  //
  7750  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7751  func (_KIP113 *KIP113Filterer) ParseOwnershipTransferred(log types.Log) (*KIP113OwnershipTransferred, error) {
  7752  	event := new(KIP113OwnershipTransferred)
  7753  	if err := _KIP113.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7754  		return nil, err
  7755  	}
  7756  	return event, nil
  7757  }
  7758  
  7759  // KIP113RegisteredIterator is returned from FilterRegistered and is used to iterate over the raw logs and unpacked data for Registered events raised by the KIP113 contract.
  7760  type KIP113RegisteredIterator struct {
  7761  	Event *KIP113Registered // Event containing the contract specifics and raw log
  7762  
  7763  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7764  	event    string              // Event name to use for unpacking event data
  7765  
  7766  	logs chan types.Log      // Log channel receiving the found contract events
  7767  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7768  	done bool                // Whether the subscription completed delivering logs
  7769  	fail error               // Occurred error to stop iteration
  7770  }
  7771  
  7772  // Next advances the iterator to the subsequent event, returning whether there
  7773  // are any more events found. In case of a retrieval or parsing error, false is
  7774  // returned and Error() can be queried for the exact failure.
  7775  func (it *KIP113RegisteredIterator) Next() bool {
  7776  	// If the iterator failed, stop iterating
  7777  	if it.fail != nil {
  7778  		return false
  7779  	}
  7780  	// If the iterator completed, deliver directly whatever's available
  7781  	if it.done {
  7782  		select {
  7783  		case log := <-it.logs:
  7784  			it.Event = new(KIP113Registered)
  7785  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7786  				it.fail = err
  7787  				return false
  7788  			}
  7789  			it.Event.Raw = log
  7790  			return true
  7791  
  7792  		default:
  7793  			return false
  7794  		}
  7795  	}
  7796  	// Iterator still in progress, wait for either a data or an error event
  7797  	select {
  7798  	case log := <-it.logs:
  7799  		it.Event = new(KIP113Registered)
  7800  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7801  			it.fail = err
  7802  			return false
  7803  		}
  7804  		it.Event.Raw = log
  7805  		return true
  7806  
  7807  	case err := <-it.sub.Err():
  7808  		it.done = true
  7809  		it.fail = err
  7810  		return it.Next()
  7811  	}
  7812  }
  7813  
  7814  // Error returns any retrieval or parsing error occurred during filtering.
  7815  func (it *KIP113RegisteredIterator) Error() error {
  7816  	return it.fail
  7817  }
  7818  
  7819  // Close terminates the iteration process, releasing any pending underlying
  7820  // resources.
  7821  func (it *KIP113RegisteredIterator) Close() error {
  7822  	it.sub.Unsubscribe()
  7823  	return nil
  7824  }
  7825  
  7826  // KIP113Registered represents a Registered event raised by the KIP113 contract.
  7827  type KIP113Registered struct {
  7828  	CnNodeId  common.Address
  7829  	PublicKey []byte
  7830  	Pop       []byte
  7831  	Raw       types.Log // Blockchain specific contextual infos
  7832  }
  7833  
  7834  // FilterRegistered is a free log retrieval operation binding the contract event 0x79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f.
  7835  //
  7836  // Solidity: event Registered(address cnNodeId, bytes publicKey, bytes pop)
  7837  func (_KIP113 *KIP113Filterer) FilterRegistered(opts *bind.FilterOpts) (*KIP113RegisteredIterator, error) {
  7838  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "Registered")
  7839  	if err != nil {
  7840  		return nil, err
  7841  	}
  7842  	return &KIP113RegisteredIterator{contract: _KIP113.contract, event: "Registered", logs: logs, sub: sub}, nil
  7843  }
  7844  
  7845  // WatchRegistered is a free log subscription operation binding the contract event 0x79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f.
  7846  //
  7847  // Solidity: event Registered(address cnNodeId, bytes publicKey, bytes pop)
  7848  func (_KIP113 *KIP113Filterer) WatchRegistered(opts *bind.WatchOpts, sink chan<- *KIP113Registered) (event.Subscription, error) {
  7849  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "Registered")
  7850  	if err != nil {
  7851  		return nil, err
  7852  	}
  7853  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7854  		defer sub.Unsubscribe()
  7855  		for {
  7856  			select {
  7857  			case log := <-logs:
  7858  				// New log arrived, parse the event and forward to the user
  7859  				event := new(KIP113Registered)
  7860  				if err := _KIP113.contract.UnpackLog(event, "Registered", log); err != nil {
  7861  					return err
  7862  				}
  7863  				event.Raw = log
  7864  
  7865  				select {
  7866  				case sink <- event:
  7867  				case err := <-sub.Err():
  7868  					return err
  7869  				case <-quit:
  7870  					return nil
  7871  				}
  7872  			case err := <-sub.Err():
  7873  				return err
  7874  			case <-quit:
  7875  				return nil
  7876  			}
  7877  		}
  7878  	}), nil
  7879  }
  7880  
  7881  // ParseRegistered is a log parse operation binding the contract event 0x79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f.
  7882  //
  7883  // Solidity: event Registered(address cnNodeId, bytes publicKey, bytes pop)
  7884  func (_KIP113 *KIP113Filterer) ParseRegistered(log types.Log) (*KIP113Registered, error) {
  7885  	event := new(KIP113Registered)
  7886  	if err := _KIP113.contract.UnpackLog(event, "Registered", log); err != nil {
  7887  		return nil, err
  7888  	}
  7889  	return event, nil
  7890  }
  7891  
  7892  // KIP113UnregisteredIterator is returned from FilterUnregistered and is used to iterate over the raw logs and unpacked data for Unregistered events raised by the KIP113 contract.
  7893  type KIP113UnregisteredIterator struct {
  7894  	Event *KIP113Unregistered // Event containing the contract specifics and raw log
  7895  
  7896  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7897  	event    string              // Event name to use for unpacking event data
  7898  
  7899  	logs chan types.Log      // Log channel receiving the found contract events
  7900  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7901  	done bool                // Whether the subscription completed delivering logs
  7902  	fail error               // Occurred error to stop iteration
  7903  }
  7904  
  7905  // Next advances the iterator to the subsequent event, returning whether there
  7906  // are any more events found. In case of a retrieval or parsing error, false is
  7907  // returned and Error() can be queried for the exact failure.
  7908  func (it *KIP113UnregisteredIterator) Next() bool {
  7909  	// If the iterator failed, stop iterating
  7910  	if it.fail != nil {
  7911  		return false
  7912  	}
  7913  	// If the iterator completed, deliver directly whatever's available
  7914  	if it.done {
  7915  		select {
  7916  		case log := <-it.logs:
  7917  			it.Event = new(KIP113Unregistered)
  7918  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7919  				it.fail = err
  7920  				return false
  7921  			}
  7922  			it.Event.Raw = log
  7923  			return true
  7924  
  7925  		default:
  7926  			return false
  7927  		}
  7928  	}
  7929  	// Iterator still in progress, wait for either a data or an error event
  7930  	select {
  7931  	case log := <-it.logs:
  7932  		it.Event = new(KIP113Unregistered)
  7933  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7934  			it.fail = err
  7935  			return false
  7936  		}
  7937  		it.Event.Raw = log
  7938  		return true
  7939  
  7940  	case err := <-it.sub.Err():
  7941  		it.done = true
  7942  		it.fail = err
  7943  		return it.Next()
  7944  	}
  7945  }
  7946  
  7947  // Error returns any retrieval or parsing error occurred during filtering.
  7948  func (it *KIP113UnregisteredIterator) Error() error {
  7949  	return it.fail
  7950  }
  7951  
  7952  // Close terminates the iteration process, releasing any pending underlying
  7953  // resources.
  7954  func (it *KIP113UnregisteredIterator) Close() error {
  7955  	it.sub.Unsubscribe()
  7956  	return nil
  7957  }
  7958  
  7959  // KIP113Unregistered represents a Unregistered event raised by the KIP113 contract.
  7960  type KIP113Unregistered struct {
  7961  	CnNodeId  common.Address
  7962  	PublicKey []byte
  7963  	Pop       []byte
  7964  	Raw       types.Log // Blockchain specific contextual infos
  7965  }
  7966  
  7967  // FilterUnregistered is a free log retrieval operation binding the contract event 0xb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d9.
  7968  //
  7969  // Solidity: event Unregistered(address cnNodeId, bytes publicKey, bytes pop)
  7970  func (_KIP113 *KIP113Filterer) FilterUnregistered(opts *bind.FilterOpts) (*KIP113UnregisteredIterator, error) {
  7971  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "Unregistered")
  7972  	if err != nil {
  7973  		return nil, err
  7974  	}
  7975  	return &KIP113UnregisteredIterator{contract: _KIP113.contract, event: "Unregistered", logs: logs, sub: sub}, nil
  7976  }
  7977  
  7978  // WatchUnregistered is a free log subscription operation binding the contract event 0xb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d9.
  7979  //
  7980  // Solidity: event Unregistered(address cnNodeId, bytes publicKey, bytes pop)
  7981  func (_KIP113 *KIP113Filterer) WatchUnregistered(opts *bind.WatchOpts, sink chan<- *KIP113Unregistered) (event.Subscription, error) {
  7982  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "Unregistered")
  7983  	if err != nil {
  7984  		return nil, err
  7985  	}
  7986  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7987  		defer sub.Unsubscribe()
  7988  		for {
  7989  			select {
  7990  			case log := <-logs:
  7991  				// New log arrived, parse the event and forward to the user
  7992  				event := new(KIP113Unregistered)
  7993  				if err := _KIP113.contract.UnpackLog(event, "Unregistered", log); err != nil {
  7994  					return err
  7995  				}
  7996  				event.Raw = log
  7997  
  7998  				select {
  7999  				case sink <- event:
  8000  				case err := <-sub.Err():
  8001  					return err
  8002  				case <-quit:
  8003  					return nil
  8004  				}
  8005  			case err := <-sub.Err():
  8006  				return err
  8007  			case <-quit:
  8008  				return nil
  8009  			}
  8010  		}
  8011  	}), nil
  8012  }
  8013  
  8014  // ParseUnregistered is a log parse operation binding the contract event 0xb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d9.
  8015  //
  8016  // Solidity: event Unregistered(address cnNodeId, bytes publicKey, bytes pop)
  8017  func (_KIP113 *KIP113Filterer) ParseUnregistered(log types.Log) (*KIP113Unregistered, error) {
  8018  	event := new(KIP113Unregistered)
  8019  	if err := _KIP113.contract.UnpackLog(event, "Unregistered", log); err != nil {
  8020  		return nil, err
  8021  	}
  8022  	return event, nil
  8023  }
  8024  
  8025  // KIP113UpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the KIP113 contract.
  8026  type KIP113UpgradedIterator struct {
  8027  	Event *KIP113Upgraded // Event containing the contract specifics and raw log
  8028  
  8029  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8030  	event    string              // Event name to use for unpacking event data
  8031  
  8032  	logs chan types.Log      // Log channel receiving the found contract events
  8033  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8034  	done bool                // Whether the subscription completed delivering logs
  8035  	fail error               // Occurred error to stop iteration
  8036  }
  8037  
  8038  // Next advances the iterator to the subsequent event, returning whether there
  8039  // are any more events found. In case of a retrieval or parsing error, false is
  8040  // returned and Error() can be queried for the exact failure.
  8041  func (it *KIP113UpgradedIterator) Next() bool {
  8042  	// If the iterator failed, stop iterating
  8043  	if it.fail != nil {
  8044  		return false
  8045  	}
  8046  	// If the iterator completed, deliver directly whatever's available
  8047  	if it.done {
  8048  		select {
  8049  		case log := <-it.logs:
  8050  			it.Event = new(KIP113Upgraded)
  8051  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8052  				it.fail = err
  8053  				return false
  8054  			}
  8055  			it.Event.Raw = log
  8056  			return true
  8057  
  8058  		default:
  8059  			return false
  8060  		}
  8061  	}
  8062  	// Iterator still in progress, wait for either a data or an error event
  8063  	select {
  8064  	case log := <-it.logs:
  8065  		it.Event = new(KIP113Upgraded)
  8066  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8067  			it.fail = err
  8068  			return false
  8069  		}
  8070  		it.Event.Raw = log
  8071  		return true
  8072  
  8073  	case err := <-it.sub.Err():
  8074  		it.done = true
  8075  		it.fail = err
  8076  		return it.Next()
  8077  	}
  8078  }
  8079  
  8080  // Error returns any retrieval or parsing error occurred during filtering.
  8081  func (it *KIP113UpgradedIterator) Error() error {
  8082  	return it.fail
  8083  }
  8084  
  8085  // Close terminates the iteration process, releasing any pending underlying
  8086  // resources.
  8087  func (it *KIP113UpgradedIterator) Close() error {
  8088  	it.sub.Unsubscribe()
  8089  	return nil
  8090  }
  8091  
  8092  // KIP113Upgraded represents a Upgraded event raised by the KIP113 contract.
  8093  type KIP113Upgraded struct {
  8094  	Implementation common.Address
  8095  	Raw            types.Log // Blockchain specific contextual infos
  8096  }
  8097  
  8098  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  8099  //
  8100  // Solidity: event Upgraded(address indexed implementation)
  8101  func (_KIP113 *KIP113Filterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*KIP113UpgradedIterator, error) {
  8102  	var implementationRule []interface{}
  8103  	for _, implementationItem := range implementation {
  8104  		implementationRule = append(implementationRule, implementationItem)
  8105  	}
  8106  
  8107  	logs, sub, err := _KIP113.contract.FilterLogs(opts, "Upgraded", implementationRule)
  8108  	if err != nil {
  8109  		return nil, err
  8110  	}
  8111  	return &KIP113UpgradedIterator{contract: _KIP113.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  8112  }
  8113  
  8114  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  8115  //
  8116  // Solidity: event Upgraded(address indexed implementation)
  8117  func (_KIP113 *KIP113Filterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *KIP113Upgraded, implementation []common.Address) (event.Subscription, error) {
  8118  	var implementationRule []interface{}
  8119  	for _, implementationItem := range implementation {
  8120  		implementationRule = append(implementationRule, implementationItem)
  8121  	}
  8122  
  8123  	logs, sub, err := _KIP113.contract.WatchLogs(opts, "Upgraded", implementationRule)
  8124  	if err != nil {
  8125  		return nil, err
  8126  	}
  8127  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8128  		defer sub.Unsubscribe()
  8129  		for {
  8130  			select {
  8131  			case log := <-logs:
  8132  				// New log arrived, parse the event and forward to the user
  8133  				event := new(KIP113Upgraded)
  8134  				if err := _KIP113.contract.UnpackLog(event, "Upgraded", log); err != nil {
  8135  					return err
  8136  				}
  8137  				event.Raw = log
  8138  
  8139  				select {
  8140  				case sink <- event:
  8141  				case err := <-sub.Err():
  8142  					return err
  8143  				case <-quit:
  8144  					return nil
  8145  				}
  8146  			case err := <-sub.Err():
  8147  				return err
  8148  			case <-quit:
  8149  				return nil
  8150  			}
  8151  		}
  8152  	}), nil
  8153  }
  8154  
  8155  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  8156  //
  8157  // Solidity: event Upgraded(address indexed implementation)
  8158  func (_KIP113 *KIP113Filterer) ParseUpgraded(log types.Log) (*KIP113Upgraded, error) {
  8159  	event := new(KIP113Upgraded)
  8160  	if err := _KIP113.contract.UnpackLog(event, "Upgraded", log); err != nil {
  8161  		return nil, err
  8162  	}
  8163  	return event, nil
  8164  }
  8165  
  8166  // KIP113MockMetaData contains all meta data concerning the KIP113Mock contract.
  8167  var KIP113MockMetaData = &bind.MetaData{
  8168  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"name\":\"Unregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ZERO48HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO96HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"abook\",\"outputs\":[{\"internalType\":\"contractIAddressBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allNodeIds\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllBlsInfo\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"nodeIdList\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"internalType\":\"structIKIP113.BlsPublicKeyInfo[]\",\"name\":\"pubkeyList\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"record\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pop\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"cnNodeId\",\"type\":\"address\"}],\"name\":\"unregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]",
  8169  	Sigs: map[string]string{
  8170  		"6fc522c6": "ZERO48HASH()",
  8171  		"20abd458": "ZERO96HASH()",
  8172  		"829d639d": "abook()",
  8173  		"a5834971": "allNodeIds(uint256)",
  8174  		"6968b53f": "getAllBlsInfo()",
  8175  		"8129fc1c": "initialize()",
  8176  		"8da5cb5b": "owner()",
  8177  		"52d1902d": "proxiableUUID()",
  8178  		"3465d6d5": "record(address)",
  8179  		"786cd4d7": "register(address,bytes,bytes)",
  8180  		"715018a6": "renounceOwnership()",
  8181  		"f2fde38b": "transferOwnership(address)",
  8182  		"2ec2c246": "unregister(address)",
  8183  		"3659cfe6": "upgradeTo(address)",
  8184  		"4f1ef286": "upgradeToAndCall(address,bytes)",
  8185  	},
  8186  	Bin: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611c0e61011860003960008181610593015281816105d301528181610672015281816106b201526107450152611c0e6000f3fe6080604052600436106100e85760003560e01c80636fc522c61161008a578063829d639d11610059578063829d639d1461026d5780638da5cb5b1461029b578063a5834971146102b9578063f2fde38b146102d957600080fd5b80636fc522c6146101ef578063715018a614610223578063786cd4d7146102385780638129fc1c1461025857600080fd5b80633659cfe6116100c65780633659cfe6146101845780634f1ef286146101a457806352d1902d146101b75780636968b53f146101cc57600080fd5b806320abd458146100ed5780632ec2c246146101345780633465d6d514610156575b600080fd5b3480156100f957600080fd5b506101217f46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c2181565b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061015461014f36600461148a565b6102f9565b005b34801561016257600080fd5b5061017661017136600461148a565b61045d565b60405161012b9291906114fe565b34801561019057600080fd5b5061015461019f36600461148a565b610589565b6101546101b2366004611542565b610668565b3480156101c357600080fd5b50610121610738565b3480156101d857600080fd5b506101e16107eb565b60405161012b929190611606565b3480156101fb57600080fd5b506101217fc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd29381565b34801561022f57600080fd5b50610154610aa6565b34801561024457600080fd5b50610154610253366004611714565b610aba565b34801561026457600080fd5b50610154610bef565b34801561027957600080fd5b5061028361040081565b6040516001600160a01b03909116815260200161012b565b3480156102a757600080fd5b506097546001600160a01b0316610283565b3480156102c557600080fd5b506102836102d4366004611797565b610d07565b3480156102e557600080fd5b506101546102f436600461148a565b610d31565b610301610da7565b61030a81610e01565b1561035c5760405162461bcd60e51b815260206004820152601a60248201527f434e206973207374696c6c20696e2041646472657373426f6f6b00000000000060448201526064015b60405180910390fd5b6001600160a01b038116600090815260ca60205260409020805461037f906117b0565b90506000036103c75760405162461bcd60e51b815260206004820152601460248201527310d3881a5cc81b9bdd081c9959da5cdd195c995960621b6044820152606401610353565b6103d081610e7d565b6001600160a01b038116600090815260ca60205260409081902090517fb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d99161041f918491906001820190611867565b60405180910390a16001600160a01b038116600090815260ca602052604081209061044a8282611427565b610458600183016000611427565b505050565b60ca60205260009081526040902080548190610478906117b0565b80601f01602080910402602001604051908101604052809291908181526020018280546104a4906117b0565b80156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b505050505090806001018054610506906117b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610532906117b0565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905082565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d15760405162461bcd60e51b81526004016103539061189d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661061a600080516020611b92833981519152546001600160a01b031690565b6001600160a01b0316146106405760405162461bcd60e51b8152600401610353906118e9565b61064981610f84565b6040805160008082526020820190925261066591839190610f8c565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b05760405162461bcd60e51b81526004016103539061189d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106f9600080516020611b92833981519152546001600160a01b031690565b6001600160a01b03161461071f5760405162461bcd60e51b8152600401610353906118e9565b61072882610f84565b61073482826001610f8c565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610353565b50600080516020611b9283398151915290565b60c95460609081908067ffffffffffffffff81111561080c5761080c61152c565b604051908082528060200260200182016040528015610835578160200160208202803683370190505b5092508067ffffffffffffffff8111156108515761085161152c565b60405190808252806020026020018201604052801561089657816020015b604080518082019091526060808252602082015281526020019060019003908161086f5790505b50915060005b81811015610aa05760c981815481106108b7576108b7611935565b9060005260206000200160009054906101000a90046001600160a01b03168482815181106108e7576108e7611935565b60200260200101906001600160a01b031690816001600160a01b03168152505060ca600060c9838154811061091e5761091e611935565b60009182526020808320909101546001600160a01b031683528201929092526040908101909120815180830190925280548290829061095c906117b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610988906117b0565b80156109d55780601f106109aa576101008083540402835291602001916109d5565b820191906000526020600020905b8154815290600101906020018083116109b857829003601f168201915b505050505081526020016001820180546109ee906117b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1a906117b0565b8015610a675780601f10610a3c57610100808354040283529160200191610a67565b820191906000526020600020905b815481529060010190602001808311610a4a57829003601f168201915b505050505081525050838281518110610a8257610a82611935565b60200260200101819052508080610a9890611961565b91505061089c565b50509091565b610aae610da7565b610ab860006110f7565b565b6001600160a01b038516600090815260ca602052604090208054610add906117b0565b9050600003610b325760c980546001810182556000919091527f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d280180546001600160a01b0319166001600160a01b0387161790555b6040805160606020601f87018190040282018101835291810185815290918291908790879081908501838280828437600092019190915250505090825250604080516020601f86018190048102820181019092528481529181019190859085908190840183828082843760009201829052509390945250506001600160a01b038816815260ca6020526040902082519091508190610bd090826119c8565b5060208201516001820190610be590826119c8565b5050505050505050565b600054610100900460ff1615808015610c0f5750600054600160ff909116105b80610c295750303b158015610c29575060005460ff166001145b610c8c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610353565b6000805460ff191660011790558015610caf576000805461ff0019166101001790555b610cb7611149565b610cbf611178565b8015610665576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60c98181548110610d1757600080fd5b6000918252602090912001546001600160a01b0316905081565b610d39610da7565b6001600160a01b038116610d9e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b610665816110f7565b6097546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610353565b604051630aabaead60e11b81526001600160a01b0382166004820152600090610400906315575d5a90602401606060405180830381865afa925050508015610e66575060408051601f3d908101601f19168201909252610e6391810190611a88565b60015b610e7257506000919050565b506001949350505050565b60005b60c95481101561073457816001600160a01b031660c98281548110610ea757610ea7611935565b6000918252602090912001546001600160a01b031603610f725760c98054610ed190600190611ad5565b81548110610ee157610ee1611935565b60009182526020909120015460c980546001600160a01b039092169183908110610f0d57610f0d611935565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c9805480610f4c57610f4c611ae8565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f7c81611961565b915050610e80565b610665610da7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610fbf576104588361119f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611019575060408051601f3d908101601f1916820190925261101691810190611afe565b60015b61107c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610353565b600080516020611b9283398151915281146110eb5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610353565b5061045883838361123b565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166111705760405162461bcd60e51b815260040161035390611b17565b610ab8611266565b600054610100900460ff16610ab85760405162461bcd60e51b815260040161035390611b17565b6001600160a01b0381163b61120c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610353565b600080516020611b9283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61124483611296565b6000825111806112515750805b156104585761126083836112d6565b50505050565b600054610100900460ff1661128d5760405162461bcd60e51b815260040161035390611b17565b610ab8336110f7565b61129f8161119f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606112fb8383604051806060016040528060278152602001611bb260279139611304565b90505b92915050565b6060600080856001600160a01b0316856040516113219190611b62565b600060405180830381855af49150503d806000811461135c576040519150601f19603f3d011682016040523d82523d6000602084013e611361565b606091505b50915091506113728683838761137c565b9695505050505050565b606083156113eb5782516000036113e4576001600160a01b0385163b6113e45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610353565b50816113f5565b6113f583836113fd565b949350505050565b81511561140d5781518083602001fd5b8060405162461bcd60e51b81526004016103539190611b7e565b508054611433906117b0565b6000825580601f10611443575050565b601f01602090049060005260206000209081019061066591905b80821115611471576000815560010161145d565b5090565b6001600160a01b038116811461066557600080fd5b60006020828403121561149c57600080fd5b81356114a781611475565b9392505050565b60005b838110156114c95781810151838201526020016114b1565b50506000910152565b600081518084526114ea8160208601602086016114ae565b601f01601f19169290920160200192915050565b60408152600061151160408301856114d2565b828103602084015261152381856114d2565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561155557600080fd5b823561156081611475565b9150602083013567ffffffffffffffff8082111561157d57600080fd5b818501915085601f83011261159157600080fd5b8135818111156115a3576115a361152c565b604051601f8201601f19908116603f011681019083821181831017156115cb576115cb61152c565b816040528281528860208487010111156115e457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60408082528351828201819052600091906020906060850190828801855b828110156116495781516001600160a01b031684529284019290840190600101611624565b50505084810382860152855180825282820190600581901b8301840188850160005b838110156116bb57858303601f190185528151805189855261168f8a8601826114d2565b91890151858303868b01529190506116a781836114d2565b96890196945050509086019060010161166b565b50909a9950505050505050505050565b60008083601f8401126116dd57600080fd5b50813567ffffffffffffffff8111156116f557600080fd5b60208301915083602082850101111561170d57600080fd5b9250929050565b60008060008060006060868803121561172c57600080fd5b853561173781611475565b9450602086013567ffffffffffffffff8082111561175457600080fd5b61176089838a016116cb565b9096509450604088013591508082111561177957600080fd5b50611786888289016116cb565b969995985093965092949392505050565b6000602082840312156117a957600080fd5b5035919050565b600181811c908216806117c457607f821691505b6020821081036117e457634e487b7160e01b600052602260045260246000fd5b50919050565b600081546117f7816117b0565b808552602060018381168015611814576001811461182e5761185c565b60ff1985168884015283151560051b88018301955061185c565b866000528260002060005b858110156118545781548a8201860152908301908401611839565b890184019650505b505050505092915050565b6001600160a01b038416815260606020820181905260009061188b908301856117ea565b828103604084015261137281856117ea565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016119735761197361194b565b5060010190565b601f82111561045857600081815260208120601f850160051c810160208610156119a15750805b601f850160051c820191505b818110156119c0578281556001016119ad565b505050505050565b815167ffffffffffffffff8111156119e2576119e261152c565b6119f6816119f084546117b0565b8461197a565b602080601f831160018114611a2b5760008415611a135750858301515b600019600386901b1c1916600185901b1785556119c0565b600085815260208120601f198616915b82811015611a5a57888601518255948401946001909101908401611a3b565b5085821015611a785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080600060608486031215611a9d57600080fd5b8351611aa881611475565b6020850151909350611ab981611475565b6040850151909250611aca81611475565b809150509250925092565b818103818111156112fe576112fe61194b565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611b1057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611b748184602087016114ae565b9190910192915050565b6020815260006112fb60208301846114d256fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122073ea4af54d3ffdbc93826462adf4b55a449fceb20536bcce5ec19edfa2b5128c64736f6c63430008130033",
  8187  }
  8188  
  8189  // KIP113MockABI is the input ABI used to generate the binding from.
  8190  // Deprecated: Use KIP113MockMetaData.ABI instead.
  8191  var KIP113MockABI = KIP113MockMetaData.ABI
  8192  
  8193  // KIP113MockBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  8194  const KIP113MockBinRuntime = `6080604052600436106100e85760003560e01c80636fc522c61161008a578063829d639d11610059578063829d639d1461026d5780638da5cb5b1461029b578063a5834971146102b9578063f2fde38b146102d957600080fd5b80636fc522c6146101ef578063715018a614610223578063786cd4d7146102385780638129fc1c1461025857600080fd5b80633659cfe6116100c65780633659cfe6146101845780634f1ef286146101a457806352d1902d146101b75780636968b53f146101cc57600080fd5b806320abd458146100ed5780632ec2c246146101345780633465d6d514610156575b600080fd5b3480156100f957600080fd5b506101217f46700b4d40ac5c35af2c22dda2787a91eb567b06c924a8fb8ae9a05b20c08c2181565b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061015461014f36600461148a565b6102f9565b005b34801561016257600080fd5b5061017661017136600461148a565b61045d565b60405161012b9291906114fe565b34801561019057600080fd5b5061015461019f36600461148a565b610589565b6101546101b2366004611542565b610668565b3480156101c357600080fd5b50610121610738565b3480156101d857600080fd5b506101e16107eb565b60405161012b929190611606565b3480156101fb57600080fd5b506101217fc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd29381565b34801561022f57600080fd5b50610154610aa6565b34801561024457600080fd5b50610154610253366004611714565b610aba565b34801561026457600080fd5b50610154610bef565b34801561027957600080fd5b5061028361040081565b6040516001600160a01b03909116815260200161012b565b3480156102a757600080fd5b506097546001600160a01b0316610283565b3480156102c557600080fd5b506102836102d4366004611797565b610d07565b3480156102e557600080fd5b506101546102f436600461148a565b610d31565b610301610da7565b61030a81610e01565b1561035c5760405162461bcd60e51b815260206004820152601a60248201527f434e206973207374696c6c20696e2041646472657373426f6f6b00000000000060448201526064015b60405180910390fd5b6001600160a01b038116600090815260ca60205260409020805461037f906117b0565b90506000036103c75760405162461bcd60e51b815260206004820152601460248201527310d3881a5cc81b9bdd081c9959da5cdd195c995960621b6044820152606401610353565b6103d081610e7d565b6001600160a01b038116600090815260ca60205260409081902090517fb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d99161041f918491906001820190611867565b60405180910390a16001600160a01b038116600090815260ca602052604081209061044a8282611427565b610458600183016000611427565b505050565b60ca60205260009081526040902080548190610478906117b0565b80601f01602080910402602001604051908101604052809291908181526020018280546104a4906117b0565b80156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b505050505090806001018054610506906117b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610532906117b0565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905082565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d15760405162461bcd60e51b81526004016103539061189d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661061a600080516020611b92833981519152546001600160a01b031690565b6001600160a01b0316146106405760405162461bcd60e51b8152600401610353906118e9565b61064981610f84565b6040805160008082526020820190925261066591839190610f8c565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b05760405162461bcd60e51b81526004016103539061189d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106f9600080516020611b92833981519152546001600160a01b031690565b6001600160a01b03161461071f5760405162461bcd60e51b8152600401610353906118e9565b61072882610f84565b61073482826001610f8c565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610353565b50600080516020611b9283398151915290565b60c95460609081908067ffffffffffffffff81111561080c5761080c61152c565b604051908082528060200260200182016040528015610835578160200160208202803683370190505b5092508067ffffffffffffffff8111156108515761085161152c565b60405190808252806020026020018201604052801561089657816020015b604080518082019091526060808252602082015281526020019060019003908161086f5790505b50915060005b81811015610aa05760c981815481106108b7576108b7611935565b9060005260206000200160009054906101000a90046001600160a01b03168482815181106108e7576108e7611935565b60200260200101906001600160a01b031690816001600160a01b03168152505060ca600060c9838154811061091e5761091e611935565b60009182526020808320909101546001600160a01b031683528201929092526040908101909120815180830190925280548290829061095c906117b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610988906117b0565b80156109d55780601f106109aa576101008083540402835291602001916109d5565b820191906000526020600020905b8154815290600101906020018083116109b857829003601f168201915b505050505081526020016001820180546109ee906117b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1a906117b0565b8015610a675780601f10610a3c57610100808354040283529160200191610a67565b820191906000526020600020905b815481529060010190602001808311610a4a57829003601f168201915b505050505081525050838281518110610a8257610a82611935565b60200260200101819052508080610a9890611961565b91505061089c565b50509091565b610aae610da7565b610ab860006110f7565b565b6001600160a01b038516600090815260ca602052604090208054610add906117b0565b9050600003610b325760c980546001810182556000919091527f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d280180546001600160a01b0319166001600160a01b0387161790555b6040805160606020601f87018190040282018101835291810185815290918291908790879081908501838280828437600092019190915250505090825250604080516020601f86018190048102820181019092528481529181019190859085908190840183828082843760009201829052509390945250506001600160a01b038816815260ca6020526040902082519091508190610bd090826119c8565b5060208201516001820190610be590826119c8565b5050505050505050565b600054610100900460ff1615808015610c0f5750600054600160ff909116105b80610c295750303b158015610c29575060005460ff166001145b610c8c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610353565b6000805460ff191660011790558015610caf576000805461ff0019166101001790555b610cb7611149565b610cbf611178565b8015610665576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60c98181548110610d1757600080fd5b6000918252602090912001546001600160a01b0316905081565b610d39610da7565b6001600160a01b038116610d9e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b610665816110f7565b6097546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610353565b604051630aabaead60e11b81526001600160a01b0382166004820152600090610400906315575d5a90602401606060405180830381865afa925050508015610e66575060408051601f3d908101601f19168201909252610e6391810190611a88565b60015b610e7257506000919050565b506001949350505050565b60005b60c95481101561073457816001600160a01b031660c98281548110610ea757610ea7611935565b6000918252602090912001546001600160a01b031603610f725760c98054610ed190600190611ad5565b81548110610ee157610ee1611935565b60009182526020909120015460c980546001600160a01b039092169183908110610f0d57610f0d611935565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c9805480610f4c57610f4c611ae8565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f7c81611961565b915050610e80565b610665610da7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610fbf576104588361119f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611019575060408051601f3d908101601f1916820190925261101691810190611afe565b60015b61107c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610353565b600080516020611b9283398151915281146110eb5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610353565b5061045883838361123b565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166111705760405162461bcd60e51b815260040161035390611b17565b610ab8611266565b600054610100900460ff16610ab85760405162461bcd60e51b815260040161035390611b17565b6001600160a01b0381163b61120c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610353565b600080516020611b9283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61124483611296565b6000825111806112515750805b156104585761126083836112d6565b50505050565b600054610100900460ff1661128d5760405162461bcd60e51b815260040161035390611b17565b610ab8336110f7565b61129f8161119f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606112fb8383604051806060016040528060278152602001611bb260279139611304565b90505b92915050565b6060600080856001600160a01b0316856040516113219190611b62565b600060405180830381855af49150503d806000811461135c576040519150601f19603f3d011682016040523d82523d6000602084013e611361565b606091505b50915091506113728683838761137c565b9695505050505050565b606083156113eb5782516000036113e4576001600160a01b0385163b6113e45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610353565b50816113f5565b6113f583836113fd565b949350505050565b81511561140d5781518083602001fd5b8060405162461bcd60e51b81526004016103539190611b7e565b508054611433906117b0565b6000825580601f10611443575050565b601f01602090049060005260206000209081019061066591905b80821115611471576000815560010161145d565b5090565b6001600160a01b038116811461066557600080fd5b60006020828403121561149c57600080fd5b81356114a781611475565b9392505050565b60005b838110156114c95781810151838201526020016114b1565b50506000910152565b600081518084526114ea8160208601602086016114ae565b601f01601f19169290920160200192915050565b60408152600061151160408301856114d2565b828103602084015261152381856114d2565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561155557600080fd5b823561156081611475565b9150602083013567ffffffffffffffff8082111561157d57600080fd5b818501915085601f83011261159157600080fd5b8135818111156115a3576115a361152c565b604051601f8201601f19908116603f011681019083821181831017156115cb576115cb61152c565b816040528281528860208487010111156115e457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60408082528351828201819052600091906020906060850190828801855b828110156116495781516001600160a01b031684529284019290840190600101611624565b50505084810382860152855180825282820190600581901b8301840188850160005b838110156116bb57858303601f190185528151805189855261168f8a8601826114d2565b91890151858303868b01529190506116a781836114d2565b96890196945050509086019060010161166b565b50909a9950505050505050505050565b60008083601f8401126116dd57600080fd5b50813567ffffffffffffffff8111156116f557600080fd5b60208301915083602082850101111561170d57600080fd5b9250929050565b60008060008060006060868803121561172c57600080fd5b853561173781611475565b9450602086013567ffffffffffffffff8082111561175457600080fd5b61176089838a016116cb565b9096509450604088013591508082111561177957600080fd5b50611786888289016116cb565b969995985093965092949392505050565b6000602082840312156117a957600080fd5b5035919050565b600181811c908216806117c457607f821691505b6020821081036117e457634e487b7160e01b600052602260045260246000fd5b50919050565b600081546117f7816117b0565b808552602060018381168015611814576001811461182e5761185c565b60ff1985168884015283151560051b88018301955061185c565b866000528260002060005b858110156118545781548a8201860152908301908401611839565b890184019650505b505050505092915050565b6001600160a01b038416815260606020820181905260009061188b908301856117ea565b828103604084015261137281856117ea565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016119735761197361194b565b5060010190565b601f82111561045857600081815260208120601f850160051c810160208610156119a15750805b601f850160051c820191505b818110156119c0578281556001016119ad565b505050505050565b815167ffffffffffffffff8111156119e2576119e261152c565b6119f6816119f084546117b0565b8461197a565b602080601f831160018114611a2b5760008415611a135750858301515b600019600386901b1c1916600185901b1785556119c0565b600085815260208120601f198616915b82811015611a5a57888601518255948401946001909101908401611a3b565b5085821015611a785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080600060608486031215611a9d57600080fd5b8351611aa881611475565b6020850151909350611ab981611475565b6040850151909250611aca81611475565b809150509250925092565b818103818111156112fe576112fe61194b565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611b1057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611b748184602087016114ae565b9190910192915050565b6020815260006112fb60208301846114d256fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122073ea4af54d3ffdbc93826462adf4b55a449fceb20536bcce5ec19edfa2b5128c64736f6c63430008130033`
  8195  
  8196  // KIP113MockFuncSigs maps the 4-byte function signature to its string representation.
  8197  // Deprecated: Use KIP113MockMetaData.Sigs instead.
  8198  var KIP113MockFuncSigs = KIP113MockMetaData.Sigs
  8199  
  8200  // KIP113MockBin is the compiled bytecode used for deploying new contracts.
  8201  // Deprecated: Use KIP113MockMetaData.Bin instead.
  8202  var KIP113MockBin = KIP113MockMetaData.Bin
  8203  
  8204  // DeployKIP113Mock deploys a new Klaytn contract, binding an instance of KIP113Mock to it.
  8205  func DeployKIP113Mock(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KIP113Mock, error) {
  8206  	parsed, err := KIP113MockMetaData.GetAbi()
  8207  	if err != nil {
  8208  		return common.Address{}, nil, nil, err
  8209  	}
  8210  	if parsed == nil {
  8211  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  8212  	}
  8213  
  8214  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(KIP113MockBin), backend)
  8215  	if err != nil {
  8216  		return common.Address{}, nil, nil, err
  8217  	}
  8218  	return address, tx, &KIP113Mock{KIP113MockCaller: KIP113MockCaller{contract: contract}, KIP113MockTransactor: KIP113MockTransactor{contract: contract}, KIP113MockFilterer: KIP113MockFilterer{contract: contract}}, nil
  8219  }
  8220  
  8221  // KIP113Mock is an auto generated Go binding around a Klaytn contract.
  8222  type KIP113Mock struct {
  8223  	KIP113MockCaller     // Read-only binding to the contract
  8224  	KIP113MockTransactor // Write-only binding to the contract
  8225  	KIP113MockFilterer   // Log filterer for contract events
  8226  }
  8227  
  8228  // KIP113MockCaller is an auto generated read-only Go binding around a Klaytn contract.
  8229  type KIP113MockCaller struct {
  8230  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8231  }
  8232  
  8233  // KIP113MockTransactor is an auto generated write-only Go binding around a Klaytn contract.
  8234  type KIP113MockTransactor struct {
  8235  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8236  }
  8237  
  8238  // KIP113MockFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  8239  type KIP113MockFilterer struct {
  8240  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8241  }
  8242  
  8243  // KIP113MockSession is an auto generated Go binding around a Klaytn contract,
  8244  // with pre-set call and transact options.
  8245  type KIP113MockSession struct {
  8246  	Contract     *KIP113Mock       // Generic contract binding to set the session for
  8247  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  8248  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  8249  }
  8250  
  8251  // KIP113MockCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  8252  // with pre-set call options.
  8253  type KIP113MockCallerSession struct {
  8254  	Contract *KIP113MockCaller // Generic contract caller binding to set the session for
  8255  	CallOpts bind.CallOpts     // Call options to use throughout this session
  8256  }
  8257  
  8258  // KIP113MockTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  8259  // with pre-set transact options.
  8260  type KIP113MockTransactorSession struct {
  8261  	Contract     *KIP113MockTransactor // Generic contract transactor binding to set the session for
  8262  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  8263  }
  8264  
  8265  // KIP113MockRaw is an auto generated low-level Go binding around a Klaytn contract.
  8266  type KIP113MockRaw struct {
  8267  	Contract *KIP113Mock // Generic contract binding to access the raw methods on
  8268  }
  8269  
  8270  // KIP113MockCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  8271  type KIP113MockCallerRaw struct {
  8272  	Contract *KIP113MockCaller // Generic read-only contract binding to access the raw methods on
  8273  }
  8274  
  8275  // KIP113MockTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  8276  type KIP113MockTransactorRaw struct {
  8277  	Contract *KIP113MockTransactor // Generic write-only contract binding to access the raw methods on
  8278  }
  8279  
  8280  // NewKIP113Mock creates a new instance of KIP113Mock, bound to a specific deployed contract.
  8281  func NewKIP113Mock(address common.Address, backend bind.ContractBackend) (*KIP113Mock, error) {
  8282  	contract, err := bindKIP113Mock(address, backend, backend, backend)
  8283  	if err != nil {
  8284  		return nil, err
  8285  	}
  8286  	return &KIP113Mock{KIP113MockCaller: KIP113MockCaller{contract: contract}, KIP113MockTransactor: KIP113MockTransactor{contract: contract}, KIP113MockFilterer: KIP113MockFilterer{contract: contract}}, nil
  8287  }
  8288  
  8289  // NewKIP113MockCaller creates a new read-only instance of KIP113Mock, bound to a specific deployed contract.
  8290  func NewKIP113MockCaller(address common.Address, caller bind.ContractCaller) (*KIP113MockCaller, error) {
  8291  	contract, err := bindKIP113Mock(address, caller, nil, nil)
  8292  	if err != nil {
  8293  		return nil, err
  8294  	}
  8295  	return &KIP113MockCaller{contract: contract}, nil
  8296  }
  8297  
  8298  // NewKIP113MockTransactor creates a new write-only instance of KIP113Mock, bound to a specific deployed contract.
  8299  func NewKIP113MockTransactor(address common.Address, transactor bind.ContractTransactor) (*KIP113MockTransactor, error) {
  8300  	contract, err := bindKIP113Mock(address, nil, transactor, nil)
  8301  	if err != nil {
  8302  		return nil, err
  8303  	}
  8304  	return &KIP113MockTransactor{contract: contract}, nil
  8305  }
  8306  
  8307  // NewKIP113MockFilterer creates a new log filterer instance of KIP113Mock, bound to a specific deployed contract.
  8308  func NewKIP113MockFilterer(address common.Address, filterer bind.ContractFilterer) (*KIP113MockFilterer, error) {
  8309  	contract, err := bindKIP113Mock(address, nil, nil, filterer)
  8310  	if err != nil {
  8311  		return nil, err
  8312  	}
  8313  	return &KIP113MockFilterer{contract: contract}, nil
  8314  }
  8315  
  8316  // bindKIP113Mock binds a generic wrapper to an already deployed contract.
  8317  func bindKIP113Mock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  8318  	parsed, err := KIP113MockMetaData.GetAbi()
  8319  	if err != nil {
  8320  		return nil, err
  8321  	}
  8322  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  8323  }
  8324  
  8325  // Call invokes the (constant) contract method with params as input values and
  8326  // sets the output to result. The result type might be a single field for simple
  8327  // returns, a slice of interfaces for anonymous returns and a struct for named
  8328  // returns.
  8329  func (_KIP113Mock *KIP113MockRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  8330  	return _KIP113Mock.Contract.KIP113MockCaller.contract.Call(opts, result, method, params...)
  8331  }
  8332  
  8333  // Transfer initiates a plain transaction to move funds to the contract, calling
  8334  // its default method if one is available.
  8335  func (_KIP113Mock *KIP113MockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8336  	return _KIP113Mock.Contract.KIP113MockTransactor.contract.Transfer(opts)
  8337  }
  8338  
  8339  // Transact invokes the (paid) contract method with params as input values.
  8340  func (_KIP113Mock *KIP113MockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8341  	return _KIP113Mock.Contract.KIP113MockTransactor.contract.Transact(opts, method, params...)
  8342  }
  8343  
  8344  // Call invokes the (constant) contract method with params as input values and
  8345  // sets the output to result. The result type might be a single field for simple
  8346  // returns, a slice of interfaces for anonymous returns and a struct for named
  8347  // returns.
  8348  func (_KIP113Mock *KIP113MockCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  8349  	return _KIP113Mock.Contract.contract.Call(opts, result, method, params...)
  8350  }
  8351  
  8352  // Transfer initiates a plain transaction to move funds to the contract, calling
  8353  // its default method if one is available.
  8354  func (_KIP113Mock *KIP113MockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8355  	return _KIP113Mock.Contract.contract.Transfer(opts)
  8356  }
  8357  
  8358  // Transact invokes the (paid) contract method with params as input values.
  8359  func (_KIP113Mock *KIP113MockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8360  	return _KIP113Mock.Contract.contract.Transact(opts, method, params...)
  8361  }
  8362  
  8363  // ZERO48HASH is a free data retrieval call binding the contract method 0x6fc522c6.
  8364  //
  8365  // Solidity: function ZERO48HASH() view returns(bytes32)
  8366  func (_KIP113Mock *KIP113MockCaller) ZERO48HASH(opts *bind.CallOpts) ([32]byte, error) {
  8367  	var out []interface{}
  8368  	err := _KIP113Mock.contract.Call(opts, &out, "ZERO48HASH")
  8369  	if err != nil {
  8370  		return *new([32]byte), err
  8371  	}
  8372  
  8373  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  8374  
  8375  	return out0, err
  8376  }
  8377  
  8378  // ZERO48HASH is a free data retrieval call binding the contract method 0x6fc522c6.
  8379  //
  8380  // Solidity: function ZERO48HASH() view returns(bytes32)
  8381  func (_KIP113Mock *KIP113MockSession) ZERO48HASH() ([32]byte, error) {
  8382  	return _KIP113Mock.Contract.ZERO48HASH(&_KIP113Mock.CallOpts)
  8383  }
  8384  
  8385  // ZERO48HASH is a free data retrieval call binding the contract method 0x6fc522c6.
  8386  //
  8387  // Solidity: function ZERO48HASH() view returns(bytes32)
  8388  func (_KIP113Mock *KIP113MockCallerSession) ZERO48HASH() ([32]byte, error) {
  8389  	return _KIP113Mock.Contract.ZERO48HASH(&_KIP113Mock.CallOpts)
  8390  }
  8391  
  8392  // ZERO96HASH is a free data retrieval call binding the contract method 0x20abd458.
  8393  //
  8394  // Solidity: function ZERO96HASH() view returns(bytes32)
  8395  func (_KIP113Mock *KIP113MockCaller) ZERO96HASH(opts *bind.CallOpts) ([32]byte, error) {
  8396  	var out []interface{}
  8397  	err := _KIP113Mock.contract.Call(opts, &out, "ZERO96HASH")
  8398  	if err != nil {
  8399  		return *new([32]byte), err
  8400  	}
  8401  
  8402  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  8403  
  8404  	return out0, err
  8405  }
  8406  
  8407  // ZERO96HASH is a free data retrieval call binding the contract method 0x20abd458.
  8408  //
  8409  // Solidity: function ZERO96HASH() view returns(bytes32)
  8410  func (_KIP113Mock *KIP113MockSession) ZERO96HASH() ([32]byte, error) {
  8411  	return _KIP113Mock.Contract.ZERO96HASH(&_KIP113Mock.CallOpts)
  8412  }
  8413  
  8414  // ZERO96HASH is a free data retrieval call binding the contract method 0x20abd458.
  8415  //
  8416  // Solidity: function ZERO96HASH() view returns(bytes32)
  8417  func (_KIP113Mock *KIP113MockCallerSession) ZERO96HASH() ([32]byte, error) {
  8418  	return _KIP113Mock.Contract.ZERO96HASH(&_KIP113Mock.CallOpts)
  8419  }
  8420  
  8421  // Abook is a free data retrieval call binding the contract method 0x829d639d.
  8422  //
  8423  // Solidity: function abook() view returns(address)
  8424  func (_KIP113Mock *KIP113MockCaller) Abook(opts *bind.CallOpts) (common.Address, error) {
  8425  	var out []interface{}
  8426  	err := _KIP113Mock.contract.Call(opts, &out, "abook")
  8427  	if err != nil {
  8428  		return *new(common.Address), err
  8429  	}
  8430  
  8431  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8432  
  8433  	return out0, err
  8434  }
  8435  
  8436  // Abook is a free data retrieval call binding the contract method 0x829d639d.
  8437  //
  8438  // Solidity: function abook() view returns(address)
  8439  func (_KIP113Mock *KIP113MockSession) Abook() (common.Address, error) {
  8440  	return _KIP113Mock.Contract.Abook(&_KIP113Mock.CallOpts)
  8441  }
  8442  
  8443  // Abook is a free data retrieval call binding the contract method 0x829d639d.
  8444  //
  8445  // Solidity: function abook() view returns(address)
  8446  func (_KIP113Mock *KIP113MockCallerSession) Abook() (common.Address, error) {
  8447  	return _KIP113Mock.Contract.Abook(&_KIP113Mock.CallOpts)
  8448  }
  8449  
  8450  // AllNodeIds is a free data retrieval call binding the contract method 0xa5834971.
  8451  //
  8452  // Solidity: function allNodeIds(uint256 ) view returns(address)
  8453  func (_KIP113Mock *KIP113MockCaller) AllNodeIds(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  8454  	var out []interface{}
  8455  	err := _KIP113Mock.contract.Call(opts, &out, "allNodeIds", arg0)
  8456  	if err != nil {
  8457  		return *new(common.Address), err
  8458  	}
  8459  
  8460  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8461  
  8462  	return out0, err
  8463  }
  8464  
  8465  // AllNodeIds is a free data retrieval call binding the contract method 0xa5834971.
  8466  //
  8467  // Solidity: function allNodeIds(uint256 ) view returns(address)
  8468  func (_KIP113Mock *KIP113MockSession) AllNodeIds(arg0 *big.Int) (common.Address, error) {
  8469  	return _KIP113Mock.Contract.AllNodeIds(&_KIP113Mock.CallOpts, arg0)
  8470  }
  8471  
  8472  // AllNodeIds is a free data retrieval call binding the contract method 0xa5834971.
  8473  //
  8474  // Solidity: function allNodeIds(uint256 ) view returns(address)
  8475  func (_KIP113Mock *KIP113MockCallerSession) AllNodeIds(arg0 *big.Int) (common.Address, error) {
  8476  	return _KIP113Mock.Contract.AllNodeIds(&_KIP113Mock.CallOpts, arg0)
  8477  }
  8478  
  8479  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  8480  //
  8481  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  8482  func (_KIP113Mock *KIP113MockCaller) GetAllBlsInfo(opts *bind.CallOpts) (struct {
  8483  	NodeIdList []common.Address
  8484  	PubkeyList []IKIP113BlsPublicKeyInfo
  8485  }, error,
  8486  ) {
  8487  	var out []interface{}
  8488  	err := _KIP113Mock.contract.Call(opts, &out, "getAllBlsInfo")
  8489  
  8490  	outstruct := new(struct {
  8491  		NodeIdList []common.Address
  8492  		PubkeyList []IKIP113BlsPublicKeyInfo
  8493  	})
  8494  
  8495  	outstruct.NodeIdList = *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  8496  	outstruct.PubkeyList = *abi.ConvertType(out[1], new([]IKIP113BlsPublicKeyInfo)).(*[]IKIP113BlsPublicKeyInfo)
  8497  	return *outstruct, err
  8498  }
  8499  
  8500  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  8501  //
  8502  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  8503  func (_KIP113Mock *KIP113MockSession) GetAllBlsInfo() (struct {
  8504  	NodeIdList []common.Address
  8505  	PubkeyList []IKIP113BlsPublicKeyInfo
  8506  }, error,
  8507  ) {
  8508  	return _KIP113Mock.Contract.GetAllBlsInfo(&_KIP113Mock.CallOpts)
  8509  }
  8510  
  8511  // GetAllBlsInfo is a free data retrieval call binding the contract method 0x6968b53f.
  8512  //
  8513  // Solidity: function getAllBlsInfo() view returns(address[] nodeIdList, (bytes,bytes)[] pubkeyList)
  8514  func (_KIP113Mock *KIP113MockCallerSession) GetAllBlsInfo() (struct {
  8515  	NodeIdList []common.Address
  8516  	PubkeyList []IKIP113BlsPublicKeyInfo
  8517  }, error,
  8518  ) {
  8519  	return _KIP113Mock.Contract.GetAllBlsInfo(&_KIP113Mock.CallOpts)
  8520  }
  8521  
  8522  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8523  //
  8524  // Solidity: function owner() view returns(address)
  8525  func (_KIP113Mock *KIP113MockCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  8526  	var out []interface{}
  8527  	err := _KIP113Mock.contract.Call(opts, &out, "owner")
  8528  	if err != nil {
  8529  		return *new(common.Address), err
  8530  	}
  8531  
  8532  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8533  
  8534  	return out0, err
  8535  }
  8536  
  8537  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8538  //
  8539  // Solidity: function owner() view returns(address)
  8540  func (_KIP113Mock *KIP113MockSession) Owner() (common.Address, error) {
  8541  	return _KIP113Mock.Contract.Owner(&_KIP113Mock.CallOpts)
  8542  }
  8543  
  8544  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8545  //
  8546  // Solidity: function owner() view returns(address)
  8547  func (_KIP113Mock *KIP113MockCallerSession) Owner() (common.Address, error) {
  8548  	return _KIP113Mock.Contract.Owner(&_KIP113Mock.CallOpts)
  8549  }
  8550  
  8551  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  8552  //
  8553  // Solidity: function proxiableUUID() view returns(bytes32)
  8554  func (_KIP113Mock *KIP113MockCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) {
  8555  	var out []interface{}
  8556  	err := _KIP113Mock.contract.Call(opts, &out, "proxiableUUID")
  8557  	if err != nil {
  8558  		return *new([32]byte), err
  8559  	}
  8560  
  8561  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
  8562  
  8563  	return out0, err
  8564  }
  8565  
  8566  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  8567  //
  8568  // Solidity: function proxiableUUID() view returns(bytes32)
  8569  func (_KIP113Mock *KIP113MockSession) ProxiableUUID() ([32]byte, error) {
  8570  	return _KIP113Mock.Contract.ProxiableUUID(&_KIP113Mock.CallOpts)
  8571  }
  8572  
  8573  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
  8574  //
  8575  // Solidity: function proxiableUUID() view returns(bytes32)
  8576  func (_KIP113Mock *KIP113MockCallerSession) ProxiableUUID() ([32]byte, error) {
  8577  	return _KIP113Mock.Contract.ProxiableUUID(&_KIP113Mock.CallOpts)
  8578  }
  8579  
  8580  // Record is a free data retrieval call binding the contract method 0x3465d6d5.
  8581  //
  8582  // Solidity: function record(address ) view returns(bytes publicKey, bytes pop)
  8583  func (_KIP113Mock *KIP113MockCaller) Record(opts *bind.CallOpts, arg0 common.Address) (struct {
  8584  	PublicKey []byte
  8585  	Pop       []byte
  8586  }, error,
  8587  ) {
  8588  	var out []interface{}
  8589  	err := _KIP113Mock.contract.Call(opts, &out, "record", arg0)
  8590  
  8591  	outstruct := new(struct {
  8592  		PublicKey []byte
  8593  		Pop       []byte
  8594  	})
  8595  
  8596  	outstruct.PublicKey = *abi.ConvertType(out[0], new([]byte)).(*[]byte)
  8597  	outstruct.Pop = *abi.ConvertType(out[1], new([]byte)).(*[]byte)
  8598  	return *outstruct, err
  8599  }
  8600  
  8601  // Record is a free data retrieval call binding the contract method 0x3465d6d5.
  8602  //
  8603  // Solidity: function record(address ) view returns(bytes publicKey, bytes pop)
  8604  func (_KIP113Mock *KIP113MockSession) Record(arg0 common.Address) (struct {
  8605  	PublicKey []byte
  8606  	Pop       []byte
  8607  }, error,
  8608  ) {
  8609  	return _KIP113Mock.Contract.Record(&_KIP113Mock.CallOpts, arg0)
  8610  }
  8611  
  8612  // Record is a free data retrieval call binding the contract method 0x3465d6d5.
  8613  //
  8614  // Solidity: function record(address ) view returns(bytes publicKey, bytes pop)
  8615  func (_KIP113Mock *KIP113MockCallerSession) Record(arg0 common.Address) (struct {
  8616  	PublicKey []byte
  8617  	Pop       []byte
  8618  }, error,
  8619  ) {
  8620  	return _KIP113Mock.Contract.Record(&_KIP113Mock.CallOpts, arg0)
  8621  }
  8622  
  8623  // Initialize is a paid mutator transaction binding the contract method 0x8129fc1c.
  8624  //
  8625  // Solidity: function initialize() returns()
  8626  func (_KIP113Mock *KIP113MockTransactor) Initialize(opts *bind.TransactOpts) (*types.Transaction, error) {
  8627  	return _KIP113Mock.contract.Transact(opts, "initialize")
  8628  }
  8629  
  8630  // Initialize is a paid mutator transaction binding the contract method 0x8129fc1c.
  8631  //
  8632  // Solidity: function initialize() returns()
  8633  func (_KIP113Mock *KIP113MockSession) Initialize() (*types.Transaction, error) {
  8634  	return _KIP113Mock.Contract.Initialize(&_KIP113Mock.TransactOpts)
  8635  }
  8636  
  8637  // Initialize is a paid mutator transaction binding the contract method 0x8129fc1c.
  8638  //
  8639  // Solidity: function initialize() returns()
  8640  func (_KIP113Mock *KIP113MockTransactorSession) Initialize() (*types.Transaction, error) {
  8641  	return _KIP113Mock.Contract.Initialize(&_KIP113Mock.TransactOpts)
  8642  }
  8643  
  8644  // Register is a paid mutator transaction binding the contract method 0x786cd4d7.
  8645  //
  8646  // Solidity: function register(address addr, bytes publicKey, bytes pop) returns()
  8647  func (_KIP113Mock *KIP113MockTransactor) Register(opts *bind.TransactOpts, addr common.Address, publicKey []byte, pop []byte) (*types.Transaction, error) {
  8648  	return _KIP113Mock.contract.Transact(opts, "register", addr, publicKey, pop)
  8649  }
  8650  
  8651  // Register is a paid mutator transaction binding the contract method 0x786cd4d7.
  8652  //
  8653  // Solidity: function register(address addr, bytes publicKey, bytes pop) returns()
  8654  func (_KIP113Mock *KIP113MockSession) Register(addr common.Address, publicKey []byte, pop []byte) (*types.Transaction, error) {
  8655  	return _KIP113Mock.Contract.Register(&_KIP113Mock.TransactOpts, addr, publicKey, pop)
  8656  }
  8657  
  8658  // Register is a paid mutator transaction binding the contract method 0x786cd4d7.
  8659  //
  8660  // Solidity: function register(address addr, bytes publicKey, bytes pop) returns()
  8661  func (_KIP113Mock *KIP113MockTransactorSession) Register(addr common.Address, publicKey []byte, pop []byte) (*types.Transaction, error) {
  8662  	return _KIP113Mock.Contract.Register(&_KIP113Mock.TransactOpts, addr, publicKey, pop)
  8663  }
  8664  
  8665  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8666  //
  8667  // Solidity: function renounceOwnership() returns()
  8668  func (_KIP113Mock *KIP113MockTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  8669  	return _KIP113Mock.contract.Transact(opts, "renounceOwnership")
  8670  }
  8671  
  8672  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8673  //
  8674  // Solidity: function renounceOwnership() returns()
  8675  func (_KIP113Mock *KIP113MockSession) RenounceOwnership() (*types.Transaction, error) {
  8676  	return _KIP113Mock.Contract.RenounceOwnership(&_KIP113Mock.TransactOpts)
  8677  }
  8678  
  8679  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8680  //
  8681  // Solidity: function renounceOwnership() returns()
  8682  func (_KIP113Mock *KIP113MockTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  8683  	return _KIP113Mock.Contract.RenounceOwnership(&_KIP113Mock.TransactOpts)
  8684  }
  8685  
  8686  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8687  //
  8688  // Solidity: function transferOwnership(address newOwner) returns()
  8689  func (_KIP113Mock *KIP113MockTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  8690  	return _KIP113Mock.contract.Transact(opts, "transferOwnership", newOwner)
  8691  }
  8692  
  8693  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8694  //
  8695  // Solidity: function transferOwnership(address newOwner) returns()
  8696  func (_KIP113Mock *KIP113MockSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8697  	return _KIP113Mock.Contract.TransferOwnership(&_KIP113Mock.TransactOpts, newOwner)
  8698  }
  8699  
  8700  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8701  //
  8702  // Solidity: function transferOwnership(address newOwner) returns()
  8703  func (_KIP113Mock *KIP113MockTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8704  	return _KIP113Mock.Contract.TransferOwnership(&_KIP113Mock.TransactOpts, newOwner)
  8705  }
  8706  
  8707  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
  8708  //
  8709  // Solidity: function unregister(address cnNodeId) returns()
  8710  func (_KIP113Mock *KIP113MockTransactor) Unregister(opts *bind.TransactOpts, cnNodeId common.Address) (*types.Transaction, error) {
  8711  	return _KIP113Mock.contract.Transact(opts, "unregister", cnNodeId)
  8712  }
  8713  
  8714  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
  8715  //
  8716  // Solidity: function unregister(address cnNodeId) returns()
  8717  func (_KIP113Mock *KIP113MockSession) Unregister(cnNodeId common.Address) (*types.Transaction, error) {
  8718  	return _KIP113Mock.Contract.Unregister(&_KIP113Mock.TransactOpts, cnNodeId)
  8719  }
  8720  
  8721  // Unregister is a paid mutator transaction binding the contract method 0x2ec2c246.
  8722  //
  8723  // Solidity: function unregister(address cnNodeId) returns()
  8724  func (_KIP113Mock *KIP113MockTransactorSession) Unregister(cnNodeId common.Address) (*types.Transaction, error) {
  8725  	return _KIP113Mock.Contract.Unregister(&_KIP113Mock.TransactOpts, cnNodeId)
  8726  }
  8727  
  8728  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  8729  //
  8730  // Solidity: function upgradeTo(address newImplementation) returns()
  8731  func (_KIP113Mock *KIP113MockTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) {
  8732  	return _KIP113Mock.contract.Transact(opts, "upgradeTo", newImplementation)
  8733  }
  8734  
  8735  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  8736  //
  8737  // Solidity: function upgradeTo(address newImplementation) returns()
  8738  func (_KIP113Mock *KIP113MockSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
  8739  	return _KIP113Mock.Contract.UpgradeTo(&_KIP113Mock.TransactOpts, newImplementation)
  8740  }
  8741  
  8742  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  8743  //
  8744  // Solidity: function upgradeTo(address newImplementation) returns()
  8745  func (_KIP113Mock *KIP113MockTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
  8746  	return _KIP113Mock.Contract.UpgradeTo(&_KIP113Mock.TransactOpts, newImplementation)
  8747  }
  8748  
  8749  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  8750  //
  8751  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  8752  func (_KIP113Mock *KIP113MockTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) {
  8753  	return _KIP113Mock.contract.Transact(opts, "upgradeToAndCall", newImplementation, data)
  8754  }
  8755  
  8756  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  8757  //
  8758  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  8759  func (_KIP113Mock *KIP113MockSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
  8760  	return _KIP113Mock.Contract.UpgradeToAndCall(&_KIP113Mock.TransactOpts, newImplementation, data)
  8761  }
  8762  
  8763  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  8764  //
  8765  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  8766  func (_KIP113Mock *KIP113MockTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
  8767  	return _KIP113Mock.Contract.UpgradeToAndCall(&_KIP113Mock.TransactOpts, newImplementation, data)
  8768  }
  8769  
  8770  // KIP113MockAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the KIP113Mock contract.
  8771  type KIP113MockAdminChangedIterator struct {
  8772  	Event *KIP113MockAdminChanged // Event containing the contract specifics and raw log
  8773  
  8774  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8775  	event    string              // Event name to use for unpacking event data
  8776  
  8777  	logs chan types.Log      // Log channel receiving the found contract events
  8778  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8779  	done bool                // Whether the subscription completed delivering logs
  8780  	fail error               // Occurred error to stop iteration
  8781  }
  8782  
  8783  // Next advances the iterator to the subsequent event, returning whether there
  8784  // are any more events found. In case of a retrieval or parsing error, false is
  8785  // returned and Error() can be queried for the exact failure.
  8786  func (it *KIP113MockAdminChangedIterator) Next() bool {
  8787  	// If the iterator failed, stop iterating
  8788  	if it.fail != nil {
  8789  		return false
  8790  	}
  8791  	// If the iterator completed, deliver directly whatever's available
  8792  	if it.done {
  8793  		select {
  8794  		case log := <-it.logs:
  8795  			it.Event = new(KIP113MockAdminChanged)
  8796  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8797  				it.fail = err
  8798  				return false
  8799  			}
  8800  			it.Event.Raw = log
  8801  			return true
  8802  
  8803  		default:
  8804  			return false
  8805  		}
  8806  	}
  8807  	// Iterator still in progress, wait for either a data or an error event
  8808  	select {
  8809  	case log := <-it.logs:
  8810  		it.Event = new(KIP113MockAdminChanged)
  8811  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8812  			it.fail = err
  8813  			return false
  8814  		}
  8815  		it.Event.Raw = log
  8816  		return true
  8817  
  8818  	case err := <-it.sub.Err():
  8819  		it.done = true
  8820  		it.fail = err
  8821  		return it.Next()
  8822  	}
  8823  }
  8824  
  8825  // Error returns any retrieval or parsing error occurred during filtering.
  8826  func (it *KIP113MockAdminChangedIterator) Error() error {
  8827  	return it.fail
  8828  }
  8829  
  8830  // Close terminates the iteration process, releasing any pending underlying
  8831  // resources.
  8832  func (it *KIP113MockAdminChangedIterator) Close() error {
  8833  	it.sub.Unsubscribe()
  8834  	return nil
  8835  }
  8836  
  8837  // KIP113MockAdminChanged represents a AdminChanged event raised by the KIP113Mock contract.
  8838  type KIP113MockAdminChanged struct {
  8839  	PreviousAdmin common.Address
  8840  	NewAdmin      common.Address
  8841  	Raw           types.Log // Blockchain specific contextual infos
  8842  }
  8843  
  8844  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  8845  //
  8846  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  8847  func (_KIP113Mock *KIP113MockFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*KIP113MockAdminChangedIterator, error) {
  8848  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "AdminChanged")
  8849  	if err != nil {
  8850  		return nil, err
  8851  	}
  8852  	return &KIP113MockAdminChangedIterator{contract: _KIP113Mock.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  8853  }
  8854  
  8855  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  8856  //
  8857  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  8858  func (_KIP113Mock *KIP113MockFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *KIP113MockAdminChanged) (event.Subscription, error) {
  8859  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "AdminChanged")
  8860  	if err != nil {
  8861  		return nil, err
  8862  	}
  8863  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8864  		defer sub.Unsubscribe()
  8865  		for {
  8866  			select {
  8867  			case log := <-logs:
  8868  				// New log arrived, parse the event and forward to the user
  8869  				event := new(KIP113MockAdminChanged)
  8870  				if err := _KIP113Mock.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  8871  					return err
  8872  				}
  8873  				event.Raw = log
  8874  
  8875  				select {
  8876  				case sink <- event:
  8877  				case err := <-sub.Err():
  8878  					return err
  8879  				case <-quit:
  8880  					return nil
  8881  				}
  8882  			case err := <-sub.Err():
  8883  				return err
  8884  			case <-quit:
  8885  				return nil
  8886  			}
  8887  		}
  8888  	}), nil
  8889  }
  8890  
  8891  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  8892  //
  8893  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  8894  func (_KIP113Mock *KIP113MockFilterer) ParseAdminChanged(log types.Log) (*KIP113MockAdminChanged, error) {
  8895  	event := new(KIP113MockAdminChanged)
  8896  	if err := _KIP113Mock.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  8897  		return nil, err
  8898  	}
  8899  	return event, nil
  8900  }
  8901  
  8902  // KIP113MockBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the KIP113Mock contract.
  8903  type KIP113MockBeaconUpgradedIterator struct {
  8904  	Event *KIP113MockBeaconUpgraded // Event containing the contract specifics and raw log
  8905  
  8906  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8907  	event    string              // Event name to use for unpacking event data
  8908  
  8909  	logs chan types.Log      // Log channel receiving the found contract events
  8910  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8911  	done bool                // Whether the subscription completed delivering logs
  8912  	fail error               // Occurred error to stop iteration
  8913  }
  8914  
  8915  // Next advances the iterator to the subsequent event, returning whether there
  8916  // are any more events found. In case of a retrieval or parsing error, false is
  8917  // returned and Error() can be queried for the exact failure.
  8918  func (it *KIP113MockBeaconUpgradedIterator) Next() bool {
  8919  	// If the iterator failed, stop iterating
  8920  	if it.fail != nil {
  8921  		return false
  8922  	}
  8923  	// If the iterator completed, deliver directly whatever's available
  8924  	if it.done {
  8925  		select {
  8926  		case log := <-it.logs:
  8927  			it.Event = new(KIP113MockBeaconUpgraded)
  8928  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8929  				it.fail = err
  8930  				return false
  8931  			}
  8932  			it.Event.Raw = log
  8933  			return true
  8934  
  8935  		default:
  8936  			return false
  8937  		}
  8938  	}
  8939  	// Iterator still in progress, wait for either a data or an error event
  8940  	select {
  8941  	case log := <-it.logs:
  8942  		it.Event = new(KIP113MockBeaconUpgraded)
  8943  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8944  			it.fail = err
  8945  			return false
  8946  		}
  8947  		it.Event.Raw = log
  8948  		return true
  8949  
  8950  	case err := <-it.sub.Err():
  8951  		it.done = true
  8952  		it.fail = err
  8953  		return it.Next()
  8954  	}
  8955  }
  8956  
  8957  // Error returns any retrieval or parsing error occurred during filtering.
  8958  func (it *KIP113MockBeaconUpgradedIterator) Error() error {
  8959  	return it.fail
  8960  }
  8961  
  8962  // Close terminates the iteration process, releasing any pending underlying
  8963  // resources.
  8964  func (it *KIP113MockBeaconUpgradedIterator) Close() error {
  8965  	it.sub.Unsubscribe()
  8966  	return nil
  8967  }
  8968  
  8969  // KIP113MockBeaconUpgraded represents a BeaconUpgraded event raised by the KIP113Mock contract.
  8970  type KIP113MockBeaconUpgraded struct {
  8971  	Beacon common.Address
  8972  	Raw    types.Log // Blockchain specific contextual infos
  8973  }
  8974  
  8975  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  8976  //
  8977  // Solidity: event BeaconUpgraded(address indexed beacon)
  8978  func (_KIP113Mock *KIP113MockFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*KIP113MockBeaconUpgradedIterator, error) {
  8979  	var beaconRule []interface{}
  8980  	for _, beaconItem := range beacon {
  8981  		beaconRule = append(beaconRule, beaconItem)
  8982  	}
  8983  
  8984  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  8985  	if err != nil {
  8986  		return nil, err
  8987  	}
  8988  	return &KIP113MockBeaconUpgradedIterator{contract: _KIP113Mock.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  8989  }
  8990  
  8991  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  8992  //
  8993  // Solidity: event BeaconUpgraded(address indexed beacon)
  8994  func (_KIP113Mock *KIP113MockFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *KIP113MockBeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  8995  	var beaconRule []interface{}
  8996  	for _, beaconItem := range beacon {
  8997  		beaconRule = append(beaconRule, beaconItem)
  8998  	}
  8999  
  9000  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  9001  	if err != nil {
  9002  		return nil, err
  9003  	}
  9004  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9005  		defer sub.Unsubscribe()
  9006  		for {
  9007  			select {
  9008  			case log := <-logs:
  9009  				// New log arrived, parse the event and forward to the user
  9010  				event := new(KIP113MockBeaconUpgraded)
  9011  				if err := _KIP113Mock.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  9012  					return err
  9013  				}
  9014  				event.Raw = log
  9015  
  9016  				select {
  9017  				case sink <- event:
  9018  				case err := <-sub.Err():
  9019  					return err
  9020  				case <-quit:
  9021  					return nil
  9022  				}
  9023  			case err := <-sub.Err():
  9024  				return err
  9025  			case <-quit:
  9026  				return nil
  9027  			}
  9028  		}
  9029  	}), nil
  9030  }
  9031  
  9032  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  9033  //
  9034  // Solidity: event BeaconUpgraded(address indexed beacon)
  9035  func (_KIP113Mock *KIP113MockFilterer) ParseBeaconUpgraded(log types.Log) (*KIP113MockBeaconUpgraded, error) {
  9036  	event := new(KIP113MockBeaconUpgraded)
  9037  	if err := _KIP113Mock.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  9038  		return nil, err
  9039  	}
  9040  	return event, nil
  9041  }
  9042  
  9043  // KIP113MockInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the KIP113Mock contract.
  9044  type KIP113MockInitializedIterator struct {
  9045  	Event *KIP113MockInitialized // Event containing the contract specifics and raw log
  9046  
  9047  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9048  	event    string              // Event name to use for unpacking event data
  9049  
  9050  	logs chan types.Log      // Log channel receiving the found contract events
  9051  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9052  	done bool                // Whether the subscription completed delivering logs
  9053  	fail error               // Occurred error to stop iteration
  9054  }
  9055  
  9056  // Next advances the iterator to the subsequent event, returning whether there
  9057  // are any more events found. In case of a retrieval or parsing error, false is
  9058  // returned and Error() can be queried for the exact failure.
  9059  func (it *KIP113MockInitializedIterator) Next() bool {
  9060  	// If the iterator failed, stop iterating
  9061  	if it.fail != nil {
  9062  		return false
  9063  	}
  9064  	// If the iterator completed, deliver directly whatever's available
  9065  	if it.done {
  9066  		select {
  9067  		case log := <-it.logs:
  9068  			it.Event = new(KIP113MockInitialized)
  9069  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9070  				it.fail = err
  9071  				return false
  9072  			}
  9073  			it.Event.Raw = log
  9074  			return true
  9075  
  9076  		default:
  9077  			return false
  9078  		}
  9079  	}
  9080  	// Iterator still in progress, wait for either a data or an error event
  9081  	select {
  9082  	case log := <-it.logs:
  9083  		it.Event = new(KIP113MockInitialized)
  9084  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9085  			it.fail = err
  9086  			return false
  9087  		}
  9088  		it.Event.Raw = log
  9089  		return true
  9090  
  9091  	case err := <-it.sub.Err():
  9092  		it.done = true
  9093  		it.fail = err
  9094  		return it.Next()
  9095  	}
  9096  }
  9097  
  9098  // Error returns any retrieval or parsing error occurred during filtering.
  9099  func (it *KIP113MockInitializedIterator) Error() error {
  9100  	return it.fail
  9101  }
  9102  
  9103  // Close terminates the iteration process, releasing any pending underlying
  9104  // resources.
  9105  func (it *KIP113MockInitializedIterator) Close() error {
  9106  	it.sub.Unsubscribe()
  9107  	return nil
  9108  }
  9109  
  9110  // KIP113MockInitialized represents a Initialized event raised by the KIP113Mock contract.
  9111  type KIP113MockInitialized struct {
  9112  	Version uint8
  9113  	Raw     types.Log // Blockchain specific contextual infos
  9114  }
  9115  
  9116  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  9117  //
  9118  // Solidity: event Initialized(uint8 version)
  9119  func (_KIP113Mock *KIP113MockFilterer) FilterInitialized(opts *bind.FilterOpts) (*KIP113MockInitializedIterator, error) {
  9120  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "Initialized")
  9121  	if err != nil {
  9122  		return nil, err
  9123  	}
  9124  	return &KIP113MockInitializedIterator{contract: _KIP113Mock.contract, event: "Initialized", logs: logs, sub: sub}, nil
  9125  }
  9126  
  9127  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  9128  //
  9129  // Solidity: event Initialized(uint8 version)
  9130  func (_KIP113Mock *KIP113MockFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *KIP113MockInitialized) (event.Subscription, error) {
  9131  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "Initialized")
  9132  	if err != nil {
  9133  		return nil, err
  9134  	}
  9135  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9136  		defer sub.Unsubscribe()
  9137  		for {
  9138  			select {
  9139  			case log := <-logs:
  9140  				// New log arrived, parse the event and forward to the user
  9141  				event := new(KIP113MockInitialized)
  9142  				if err := _KIP113Mock.contract.UnpackLog(event, "Initialized", log); err != nil {
  9143  					return err
  9144  				}
  9145  				event.Raw = log
  9146  
  9147  				select {
  9148  				case sink <- event:
  9149  				case err := <-sub.Err():
  9150  					return err
  9151  				case <-quit:
  9152  					return nil
  9153  				}
  9154  			case err := <-sub.Err():
  9155  				return err
  9156  			case <-quit:
  9157  				return nil
  9158  			}
  9159  		}
  9160  	}), nil
  9161  }
  9162  
  9163  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  9164  //
  9165  // Solidity: event Initialized(uint8 version)
  9166  func (_KIP113Mock *KIP113MockFilterer) ParseInitialized(log types.Log) (*KIP113MockInitialized, error) {
  9167  	event := new(KIP113MockInitialized)
  9168  	if err := _KIP113Mock.contract.UnpackLog(event, "Initialized", log); err != nil {
  9169  		return nil, err
  9170  	}
  9171  	return event, nil
  9172  }
  9173  
  9174  // KIP113MockOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the KIP113Mock contract.
  9175  type KIP113MockOwnershipTransferredIterator struct {
  9176  	Event *KIP113MockOwnershipTransferred // Event containing the contract specifics and raw log
  9177  
  9178  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9179  	event    string              // Event name to use for unpacking event data
  9180  
  9181  	logs chan types.Log      // Log channel receiving the found contract events
  9182  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9183  	done bool                // Whether the subscription completed delivering logs
  9184  	fail error               // Occurred error to stop iteration
  9185  }
  9186  
  9187  // Next advances the iterator to the subsequent event, returning whether there
  9188  // are any more events found. In case of a retrieval or parsing error, false is
  9189  // returned and Error() can be queried for the exact failure.
  9190  func (it *KIP113MockOwnershipTransferredIterator) Next() bool {
  9191  	// If the iterator failed, stop iterating
  9192  	if it.fail != nil {
  9193  		return false
  9194  	}
  9195  	// If the iterator completed, deliver directly whatever's available
  9196  	if it.done {
  9197  		select {
  9198  		case log := <-it.logs:
  9199  			it.Event = new(KIP113MockOwnershipTransferred)
  9200  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9201  				it.fail = err
  9202  				return false
  9203  			}
  9204  			it.Event.Raw = log
  9205  			return true
  9206  
  9207  		default:
  9208  			return false
  9209  		}
  9210  	}
  9211  	// Iterator still in progress, wait for either a data or an error event
  9212  	select {
  9213  	case log := <-it.logs:
  9214  		it.Event = new(KIP113MockOwnershipTransferred)
  9215  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9216  			it.fail = err
  9217  			return false
  9218  		}
  9219  		it.Event.Raw = log
  9220  		return true
  9221  
  9222  	case err := <-it.sub.Err():
  9223  		it.done = true
  9224  		it.fail = err
  9225  		return it.Next()
  9226  	}
  9227  }
  9228  
  9229  // Error returns any retrieval or parsing error occurred during filtering.
  9230  func (it *KIP113MockOwnershipTransferredIterator) Error() error {
  9231  	return it.fail
  9232  }
  9233  
  9234  // Close terminates the iteration process, releasing any pending underlying
  9235  // resources.
  9236  func (it *KIP113MockOwnershipTransferredIterator) Close() error {
  9237  	it.sub.Unsubscribe()
  9238  	return nil
  9239  }
  9240  
  9241  // KIP113MockOwnershipTransferred represents a OwnershipTransferred event raised by the KIP113Mock contract.
  9242  type KIP113MockOwnershipTransferred struct {
  9243  	PreviousOwner common.Address
  9244  	NewOwner      common.Address
  9245  	Raw           types.Log // Blockchain specific contextual infos
  9246  }
  9247  
  9248  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9249  //
  9250  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9251  func (_KIP113Mock *KIP113MockFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*KIP113MockOwnershipTransferredIterator, error) {
  9252  	var previousOwnerRule []interface{}
  9253  	for _, previousOwnerItem := range previousOwner {
  9254  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  9255  	}
  9256  	var newOwnerRule []interface{}
  9257  	for _, newOwnerItem := range newOwner {
  9258  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  9259  	}
  9260  
  9261  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  9262  	if err != nil {
  9263  		return nil, err
  9264  	}
  9265  	return &KIP113MockOwnershipTransferredIterator{contract: _KIP113Mock.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  9266  }
  9267  
  9268  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9269  //
  9270  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9271  func (_KIP113Mock *KIP113MockFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *KIP113MockOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  9272  	var previousOwnerRule []interface{}
  9273  	for _, previousOwnerItem := range previousOwner {
  9274  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  9275  	}
  9276  	var newOwnerRule []interface{}
  9277  	for _, newOwnerItem := range newOwner {
  9278  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  9279  	}
  9280  
  9281  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  9282  	if err != nil {
  9283  		return nil, err
  9284  	}
  9285  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9286  		defer sub.Unsubscribe()
  9287  		for {
  9288  			select {
  9289  			case log := <-logs:
  9290  				// New log arrived, parse the event and forward to the user
  9291  				event := new(KIP113MockOwnershipTransferred)
  9292  				if err := _KIP113Mock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  9293  					return err
  9294  				}
  9295  				event.Raw = log
  9296  
  9297  				select {
  9298  				case sink <- event:
  9299  				case err := <-sub.Err():
  9300  					return err
  9301  				case <-quit:
  9302  					return nil
  9303  				}
  9304  			case err := <-sub.Err():
  9305  				return err
  9306  			case <-quit:
  9307  				return nil
  9308  			}
  9309  		}
  9310  	}), nil
  9311  }
  9312  
  9313  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9314  //
  9315  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9316  func (_KIP113Mock *KIP113MockFilterer) ParseOwnershipTransferred(log types.Log) (*KIP113MockOwnershipTransferred, error) {
  9317  	event := new(KIP113MockOwnershipTransferred)
  9318  	if err := _KIP113Mock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  9319  		return nil, err
  9320  	}
  9321  	return event, nil
  9322  }
  9323  
  9324  // KIP113MockRegisteredIterator is returned from FilterRegistered and is used to iterate over the raw logs and unpacked data for Registered events raised by the KIP113Mock contract.
  9325  type KIP113MockRegisteredIterator struct {
  9326  	Event *KIP113MockRegistered // Event containing the contract specifics and raw log
  9327  
  9328  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9329  	event    string              // Event name to use for unpacking event data
  9330  
  9331  	logs chan types.Log      // Log channel receiving the found contract events
  9332  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9333  	done bool                // Whether the subscription completed delivering logs
  9334  	fail error               // Occurred error to stop iteration
  9335  }
  9336  
  9337  // Next advances the iterator to the subsequent event, returning whether there
  9338  // are any more events found. In case of a retrieval or parsing error, false is
  9339  // returned and Error() can be queried for the exact failure.
  9340  func (it *KIP113MockRegisteredIterator) Next() bool {
  9341  	// If the iterator failed, stop iterating
  9342  	if it.fail != nil {
  9343  		return false
  9344  	}
  9345  	// If the iterator completed, deliver directly whatever's available
  9346  	if it.done {
  9347  		select {
  9348  		case log := <-it.logs:
  9349  			it.Event = new(KIP113MockRegistered)
  9350  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9351  				it.fail = err
  9352  				return false
  9353  			}
  9354  			it.Event.Raw = log
  9355  			return true
  9356  
  9357  		default:
  9358  			return false
  9359  		}
  9360  	}
  9361  	// Iterator still in progress, wait for either a data or an error event
  9362  	select {
  9363  	case log := <-it.logs:
  9364  		it.Event = new(KIP113MockRegistered)
  9365  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9366  			it.fail = err
  9367  			return false
  9368  		}
  9369  		it.Event.Raw = log
  9370  		return true
  9371  
  9372  	case err := <-it.sub.Err():
  9373  		it.done = true
  9374  		it.fail = err
  9375  		return it.Next()
  9376  	}
  9377  }
  9378  
  9379  // Error returns any retrieval or parsing error occurred during filtering.
  9380  func (it *KIP113MockRegisteredIterator) Error() error {
  9381  	return it.fail
  9382  }
  9383  
  9384  // Close terminates the iteration process, releasing any pending underlying
  9385  // resources.
  9386  func (it *KIP113MockRegisteredIterator) Close() error {
  9387  	it.sub.Unsubscribe()
  9388  	return nil
  9389  }
  9390  
  9391  // KIP113MockRegistered represents a Registered event raised by the KIP113Mock contract.
  9392  type KIP113MockRegistered struct {
  9393  	CnNodeId  common.Address
  9394  	PublicKey []byte
  9395  	Pop       []byte
  9396  	Raw       types.Log // Blockchain specific contextual infos
  9397  }
  9398  
  9399  // FilterRegistered is a free log retrieval operation binding the contract event 0x79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f.
  9400  //
  9401  // Solidity: event Registered(address cnNodeId, bytes publicKey, bytes pop)
  9402  func (_KIP113Mock *KIP113MockFilterer) FilterRegistered(opts *bind.FilterOpts) (*KIP113MockRegisteredIterator, error) {
  9403  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "Registered")
  9404  	if err != nil {
  9405  		return nil, err
  9406  	}
  9407  	return &KIP113MockRegisteredIterator{contract: _KIP113Mock.contract, event: "Registered", logs: logs, sub: sub}, nil
  9408  }
  9409  
  9410  // WatchRegistered is a free log subscription operation binding the contract event 0x79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f.
  9411  //
  9412  // Solidity: event Registered(address cnNodeId, bytes publicKey, bytes pop)
  9413  func (_KIP113Mock *KIP113MockFilterer) WatchRegistered(opts *bind.WatchOpts, sink chan<- *KIP113MockRegistered) (event.Subscription, error) {
  9414  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "Registered")
  9415  	if err != nil {
  9416  		return nil, err
  9417  	}
  9418  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9419  		defer sub.Unsubscribe()
  9420  		for {
  9421  			select {
  9422  			case log := <-logs:
  9423  				// New log arrived, parse the event and forward to the user
  9424  				event := new(KIP113MockRegistered)
  9425  				if err := _KIP113Mock.contract.UnpackLog(event, "Registered", log); err != nil {
  9426  					return err
  9427  				}
  9428  				event.Raw = log
  9429  
  9430  				select {
  9431  				case sink <- event:
  9432  				case err := <-sub.Err():
  9433  					return err
  9434  				case <-quit:
  9435  					return nil
  9436  				}
  9437  			case err := <-sub.Err():
  9438  				return err
  9439  			case <-quit:
  9440  				return nil
  9441  			}
  9442  		}
  9443  	}), nil
  9444  }
  9445  
  9446  // ParseRegistered is a log parse operation binding the contract event 0x79c75399e89a1f580d9a6252cb8bdcf4cd80f73b3597c94d845eb52174ad930f.
  9447  //
  9448  // Solidity: event Registered(address cnNodeId, bytes publicKey, bytes pop)
  9449  func (_KIP113Mock *KIP113MockFilterer) ParseRegistered(log types.Log) (*KIP113MockRegistered, error) {
  9450  	event := new(KIP113MockRegistered)
  9451  	if err := _KIP113Mock.contract.UnpackLog(event, "Registered", log); err != nil {
  9452  		return nil, err
  9453  	}
  9454  	return event, nil
  9455  }
  9456  
  9457  // KIP113MockUnregisteredIterator is returned from FilterUnregistered and is used to iterate over the raw logs and unpacked data for Unregistered events raised by the KIP113Mock contract.
  9458  type KIP113MockUnregisteredIterator struct {
  9459  	Event *KIP113MockUnregistered // Event containing the contract specifics and raw log
  9460  
  9461  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9462  	event    string              // Event name to use for unpacking event data
  9463  
  9464  	logs chan types.Log      // Log channel receiving the found contract events
  9465  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9466  	done bool                // Whether the subscription completed delivering logs
  9467  	fail error               // Occurred error to stop iteration
  9468  }
  9469  
  9470  // Next advances the iterator to the subsequent event, returning whether there
  9471  // are any more events found. In case of a retrieval or parsing error, false is
  9472  // returned and Error() can be queried for the exact failure.
  9473  func (it *KIP113MockUnregisteredIterator) Next() bool {
  9474  	// If the iterator failed, stop iterating
  9475  	if it.fail != nil {
  9476  		return false
  9477  	}
  9478  	// If the iterator completed, deliver directly whatever's available
  9479  	if it.done {
  9480  		select {
  9481  		case log := <-it.logs:
  9482  			it.Event = new(KIP113MockUnregistered)
  9483  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9484  				it.fail = err
  9485  				return false
  9486  			}
  9487  			it.Event.Raw = log
  9488  			return true
  9489  
  9490  		default:
  9491  			return false
  9492  		}
  9493  	}
  9494  	// Iterator still in progress, wait for either a data or an error event
  9495  	select {
  9496  	case log := <-it.logs:
  9497  		it.Event = new(KIP113MockUnregistered)
  9498  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9499  			it.fail = err
  9500  			return false
  9501  		}
  9502  		it.Event.Raw = log
  9503  		return true
  9504  
  9505  	case err := <-it.sub.Err():
  9506  		it.done = true
  9507  		it.fail = err
  9508  		return it.Next()
  9509  	}
  9510  }
  9511  
  9512  // Error returns any retrieval or parsing error occurred during filtering.
  9513  func (it *KIP113MockUnregisteredIterator) Error() error {
  9514  	return it.fail
  9515  }
  9516  
  9517  // Close terminates the iteration process, releasing any pending underlying
  9518  // resources.
  9519  func (it *KIP113MockUnregisteredIterator) Close() error {
  9520  	it.sub.Unsubscribe()
  9521  	return nil
  9522  }
  9523  
  9524  // KIP113MockUnregistered represents a Unregistered event raised by the KIP113Mock contract.
  9525  type KIP113MockUnregistered struct {
  9526  	CnNodeId  common.Address
  9527  	PublicKey []byte
  9528  	Pop       []byte
  9529  	Raw       types.Log // Blockchain specific contextual infos
  9530  }
  9531  
  9532  // FilterUnregistered is a free log retrieval operation binding the contract event 0xb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d9.
  9533  //
  9534  // Solidity: event Unregistered(address cnNodeId, bytes publicKey, bytes pop)
  9535  func (_KIP113Mock *KIP113MockFilterer) FilterUnregistered(opts *bind.FilterOpts) (*KIP113MockUnregisteredIterator, error) {
  9536  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "Unregistered")
  9537  	if err != nil {
  9538  		return nil, err
  9539  	}
  9540  	return &KIP113MockUnregisteredIterator{contract: _KIP113Mock.contract, event: "Unregistered", logs: logs, sub: sub}, nil
  9541  }
  9542  
  9543  // WatchUnregistered is a free log subscription operation binding the contract event 0xb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d9.
  9544  //
  9545  // Solidity: event Unregistered(address cnNodeId, bytes publicKey, bytes pop)
  9546  func (_KIP113Mock *KIP113MockFilterer) WatchUnregistered(opts *bind.WatchOpts, sink chan<- *KIP113MockUnregistered) (event.Subscription, error) {
  9547  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "Unregistered")
  9548  	if err != nil {
  9549  		return nil, err
  9550  	}
  9551  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9552  		defer sub.Unsubscribe()
  9553  		for {
  9554  			select {
  9555  			case log := <-logs:
  9556  				// New log arrived, parse the event and forward to the user
  9557  				event := new(KIP113MockUnregistered)
  9558  				if err := _KIP113Mock.contract.UnpackLog(event, "Unregistered", log); err != nil {
  9559  					return err
  9560  				}
  9561  				event.Raw = log
  9562  
  9563  				select {
  9564  				case sink <- event:
  9565  				case err := <-sub.Err():
  9566  					return err
  9567  				case <-quit:
  9568  					return nil
  9569  				}
  9570  			case err := <-sub.Err():
  9571  				return err
  9572  			case <-quit:
  9573  				return nil
  9574  			}
  9575  		}
  9576  	}), nil
  9577  }
  9578  
  9579  // ParseUnregistered is a log parse operation binding the contract event 0xb98b07c4d52e8d65fa5416810f2746a810eb074b1ac7784e1b07e315c0dfd2d9.
  9580  //
  9581  // Solidity: event Unregistered(address cnNodeId, bytes publicKey, bytes pop)
  9582  func (_KIP113Mock *KIP113MockFilterer) ParseUnregistered(log types.Log) (*KIP113MockUnregistered, error) {
  9583  	event := new(KIP113MockUnregistered)
  9584  	if err := _KIP113Mock.contract.UnpackLog(event, "Unregistered", log); err != nil {
  9585  		return nil, err
  9586  	}
  9587  	return event, nil
  9588  }
  9589  
  9590  // KIP113MockUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the KIP113Mock contract.
  9591  type KIP113MockUpgradedIterator struct {
  9592  	Event *KIP113MockUpgraded // Event containing the contract specifics and raw log
  9593  
  9594  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9595  	event    string              // Event name to use for unpacking event data
  9596  
  9597  	logs chan types.Log      // Log channel receiving the found contract events
  9598  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9599  	done bool                // Whether the subscription completed delivering logs
  9600  	fail error               // Occurred error to stop iteration
  9601  }
  9602  
  9603  // Next advances the iterator to the subsequent event, returning whether there
  9604  // are any more events found. In case of a retrieval or parsing error, false is
  9605  // returned and Error() can be queried for the exact failure.
  9606  func (it *KIP113MockUpgradedIterator) Next() bool {
  9607  	// If the iterator failed, stop iterating
  9608  	if it.fail != nil {
  9609  		return false
  9610  	}
  9611  	// If the iterator completed, deliver directly whatever's available
  9612  	if it.done {
  9613  		select {
  9614  		case log := <-it.logs:
  9615  			it.Event = new(KIP113MockUpgraded)
  9616  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9617  				it.fail = err
  9618  				return false
  9619  			}
  9620  			it.Event.Raw = log
  9621  			return true
  9622  
  9623  		default:
  9624  			return false
  9625  		}
  9626  	}
  9627  	// Iterator still in progress, wait for either a data or an error event
  9628  	select {
  9629  	case log := <-it.logs:
  9630  		it.Event = new(KIP113MockUpgraded)
  9631  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9632  			it.fail = err
  9633  			return false
  9634  		}
  9635  		it.Event.Raw = log
  9636  		return true
  9637  
  9638  	case err := <-it.sub.Err():
  9639  		it.done = true
  9640  		it.fail = err
  9641  		return it.Next()
  9642  	}
  9643  }
  9644  
  9645  // Error returns any retrieval or parsing error occurred during filtering.
  9646  func (it *KIP113MockUpgradedIterator) Error() error {
  9647  	return it.fail
  9648  }
  9649  
  9650  // Close terminates the iteration process, releasing any pending underlying
  9651  // resources.
  9652  func (it *KIP113MockUpgradedIterator) Close() error {
  9653  	it.sub.Unsubscribe()
  9654  	return nil
  9655  }
  9656  
  9657  // KIP113MockUpgraded represents a Upgraded event raised by the KIP113Mock contract.
  9658  type KIP113MockUpgraded struct {
  9659  	Implementation common.Address
  9660  	Raw            types.Log // Blockchain specific contextual infos
  9661  }
  9662  
  9663  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  9664  //
  9665  // Solidity: event Upgraded(address indexed implementation)
  9666  func (_KIP113Mock *KIP113MockFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*KIP113MockUpgradedIterator, error) {
  9667  	var implementationRule []interface{}
  9668  	for _, implementationItem := range implementation {
  9669  		implementationRule = append(implementationRule, implementationItem)
  9670  	}
  9671  
  9672  	logs, sub, err := _KIP113Mock.contract.FilterLogs(opts, "Upgraded", implementationRule)
  9673  	if err != nil {
  9674  		return nil, err
  9675  	}
  9676  	return &KIP113MockUpgradedIterator{contract: _KIP113Mock.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  9677  }
  9678  
  9679  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  9680  //
  9681  // Solidity: event Upgraded(address indexed implementation)
  9682  func (_KIP113Mock *KIP113MockFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *KIP113MockUpgraded, implementation []common.Address) (event.Subscription, error) {
  9683  	var implementationRule []interface{}
  9684  	for _, implementationItem := range implementation {
  9685  		implementationRule = append(implementationRule, implementationItem)
  9686  	}
  9687  
  9688  	logs, sub, err := _KIP113Mock.contract.WatchLogs(opts, "Upgraded", implementationRule)
  9689  	if err != nil {
  9690  		return nil, err
  9691  	}
  9692  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9693  		defer sub.Unsubscribe()
  9694  		for {
  9695  			select {
  9696  			case log := <-logs:
  9697  				// New log arrived, parse the event and forward to the user
  9698  				event := new(KIP113MockUpgraded)
  9699  				if err := _KIP113Mock.contract.UnpackLog(event, "Upgraded", log); err != nil {
  9700  					return err
  9701  				}
  9702  				event.Raw = log
  9703  
  9704  				select {
  9705  				case sink <- event:
  9706  				case err := <-sub.Err():
  9707  					return err
  9708  				case <-quit:
  9709  					return nil
  9710  				}
  9711  			case err := <-sub.Err():
  9712  				return err
  9713  			case <-quit:
  9714  				return nil
  9715  			}
  9716  		}
  9717  	}), nil
  9718  }
  9719  
  9720  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  9721  //
  9722  // Solidity: event Upgraded(address indexed implementation)
  9723  func (_KIP113Mock *KIP113MockFilterer) ParseUpgraded(log types.Log) (*KIP113MockUpgraded, error) {
  9724  	event := new(KIP113MockUpgraded)
  9725  	if err := _KIP113Mock.contract.UnpackLog(event, "Upgraded", log); err != nil {
  9726  		return nil, err
  9727  	}
  9728  	return event, nil
  9729  }
  9730  
  9731  // OwnableUpgradeableMetaData contains all meta data concerning the OwnableUpgradeable contract.
  9732  var OwnableUpgradeableMetaData = &bind.MetaData{
  9733  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  9734  	Sigs: map[string]string{
  9735  		"8da5cb5b": "owner()",
  9736  		"715018a6": "renounceOwnership()",
  9737  		"f2fde38b": "transferOwnership(address)",
  9738  	},
  9739  }
  9740  
  9741  // OwnableUpgradeableABI is the input ABI used to generate the binding from.
  9742  // Deprecated: Use OwnableUpgradeableMetaData.ABI instead.
  9743  var OwnableUpgradeableABI = OwnableUpgradeableMetaData.ABI
  9744  
  9745  // OwnableUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  9746  const OwnableUpgradeableBinRuntime = ``
  9747  
  9748  // OwnableUpgradeableFuncSigs maps the 4-byte function signature to its string representation.
  9749  // Deprecated: Use OwnableUpgradeableMetaData.Sigs instead.
  9750  var OwnableUpgradeableFuncSigs = OwnableUpgradeableMetaData.Sigs
  9751  
  9752  // OwnableUpgradeable is an auto generated Go binding around a Klaytn contract.
  9753  type OwnableUpgradeable struct {
  9754  	OwnableUpgradeableCaller     // Read-only binding to the contract
  9755  	OwnableUpgradeableTransactor // Write-only binding to the contract
  9756  	OwnableUpgradeableFilterer   // Log filterer for contract events
  9757  }
  9758  
  9759  // OwnableUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
  9760  type OwnableUpgradeableCaller struct {
  9761  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9762  }
  9763  
  9764  // OwnableUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  9765  type OwnableUpgradeableTransactor struct {
  9766  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9767  }
  9768  
  9769  // OwnableUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  9770  type OwnableUpgradeableFilterer struct {
  9771  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9772  }
  9773  
  9774  // OwnableUpgradeableSession is an auto generated Go binding around a Klaytn contract,
  9775  // with pre-set call and transact options.
  9776  type OwnableUpgradeableSession struct {
  9777  	Contract     *OwnableUpgradeable // Generic contract binding to set the session for
  9778  	CallOpts     bind.CallOpts       // Call options to use throughout this session
  9779  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  9780  }
  9781  
  9782  // OwnableUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  9783  // with pre-set call options.
  9784  type OwnableUpgradeableCallerSession struct {
  9785  	Contract *OwnableUpgradeableCaller // Generic contract caller binding to set the session for
  9786  	CallOpts bind.CallOpts             // Call options to use throughout this session
  9787  }
  9788  
  9789  // OwnableUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  9790  // with pre-set transact options.
  9791  type OwnableUpgradeableTransactorSession struct {
  9792  	Contract     *OwnableUpgradeableTransactor // Generic contract transactor binding to set the session for
  9793  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  9794  }
  9795  
  9796  // OwnableUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
  9797  type OwnableUpgradeableRaw struct {
  9798  	Contract *OwnableUpgradeable // Generic contract binding to access the raw methods on
  9799  }
  9800  
  9801  // OwnableUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  9802  type OwnableUpgradeableCallerRaw struct {
  9803  	Contract *OwnableUpgradeableCaller // Generic read-only contract binding to access the raw methods on
  9804  }
  9805  
  9806  // OwnableUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  9807  type OwnableUpgradeableTransactorRaw struct {
  9808  	Contract *OwnableUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
  9809  }
  9810  
  9811  // NewOwnableUpgradeable creates a new instance of OwnableUpgradeable, bound to a specific deployed contract.
  9812  func NewOwnableUpgradeable(address common.Address, backend bind.ContractBackend) (*OwnableUpgradeable, error) {
  9813  	contract, err := bindOwnableUpgradeable(address, backend, backend, backend)
  9814  	if err != nil {
  9815  		return nil, err
  9816  	}
  9817  	return &OwnableUpgradeable{OwnableUpgradeableCaller: OwnableUpgradeableCaller{contract: contract}, OwnableUpgradeableTransactor: OwnableUpgradeableTransactor{contract: contract}, OwnableUpgradeableFilterer: OwnableUpgradeableFilterer{contract: contract}}, nil
  9818  }
  9819  
  9820  // NewOwnableUpgradeableCaller creates a new read-only instance of OwnableUpgradeable, bound to a specific deployed contract.
  9821  func NewOwnableUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*OwnableUpgradeableCaller, error) {
  9822  	contract, err := bindOwnableUpgradeable(address, caller, nil, nil)
  9823  	if err != nil {
  9824  		return nil, err
  9825  	}
  9826  	return &OwnableUpgradeableCaller{contract: contract}, nil
  9827  }
  9828  
  9829  // NewOwnableUpgradeableTransactor creates a new write-only instance of OwnableUpgradeable, bound to a specific deployed contract.
  9830  func NewOwnableUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableUpgradeableTransactor, error) {
  9831  	contract, err := bindOwnableUpgradeable(address, nil, transactor, nil)
  9832  	if err != nil {
  9833  		return nil, err
  9834  	}
  9835  	return &OwnableUpgradeableTransactor{contract: contract}, nil
  9836  }
  9837  
  9838  // NewOwnableUpgradeableFilterer creates a new log filterer instance of OwnableUpgradeable, bound to a specific deployed contract.
  9839  func NewOwnableUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableUpgradeableFilterer, error) {
  9840  	contract, err := bindOwnableUpgradeable(address, nil, nil, filterer)
  9841  	if err != nil {
  9842  		return nil, err
  9843  	}
  9844  	return &OwnableUpgradeableFilterer{contract: contract}, nil
  9845  }
  9846  
  9847  // bindOwnableUpgradeable binds a generic wrapper to an already deployed contract.
  9848  func bindOwnableUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  9849  	parsed, err := OwnableUpgradeableMetaData.GetAbi()
  9850  	if err != nil {
  9851  		return nil, err
  9852  	}
  9853  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  9854  }
  9855  
  9856  // Call invokes the (constant) contract method with params as input values and
  9857  // sets the output to result. The result type might be a single field for simple
  9858  // returns, a slice of interfaces for anonymous returns and a struct for named
  9859  // returns.
  9860  func (_OwnableUpgradeable *OwnableUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  9861  	return _OwnableUpgradeable.Contract.OwnableUpgradeableCaller.contract.Call(opts, result, method, params...)
  9862  }
  9863  
  9864  // Transfer initiates a plain transaction to move funds to the contract, calling
  9865  // its default method if one is available.
  9866  func (_OwnableUpgradeable *OwnableUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9867  	return _OwnableUpgradeable.Contract.OwnableUpgradeableTransactor.contract.Transfer(opts)
  9868  }
  9869  
  9870  // Transact invokes the (paid) contract method with params as input values.
  9871  func (_OwnableUpgradeable *OwnableUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9872  	return _OwnableUpgradeable.Contract.OwnableUpgradeableTransactor.contract.Transact(opts, method, params...)
  9873  }
  9874  
  9875  // Call invokes the (constant) contract method with params as input values and
  9876  // sets the output to result. The result type might be a single field for simple
  9877  // returns, a slice of interfaces for anonymous returns and a struct for named
  9878  // returns.
  9879  func (_OwnableUpgradeable *OwnableUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  9880  	return _OwnableUpgradeable.Contract.contract.Call(opts, result, method, params...)
  9881  }
  9882  
  9883  // Transfer initiates a plain transaction to move funds to the contract, calling
  9884  // its default method if one is available.
  9885  func (_OwnableUpgradeable *OwnableUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9886  	return _OwnableUpgradeable.Contract.contract.Transfer(opts)
  9887  }
  9888  
  9889  // Transact invokes the (paid) contract method with params as input values.
  9890  func (_OwnableUpgradeable *OwnableUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9891  	return _OwnableUpgradeable.Contract.contract.Transact(opts, method, params...)
  9892  }
  9893  
  9894  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  9895  //
  9896  // Solidity: function owner() view returns(address)
  9897  func (_OwnableUpgradeable *OwnableUpgradeableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  9898  	var out []interface{}
  9899  	err := _OwnableUpgradeable.contract.Call(opts, &out, "owner")
  9900  	if err != nil {
  9901  		return *new(common.Address), err
  9902  	}
  9903  
  9904  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9905  
  9906  	return out0, err
  9907  }
  9908  
  9909  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  9910  //
  9911  // Solidity: function owner() view returns(address)
  9912  func (_OwnableUpgradeable *OwnableUpgradeableSession) Owner() (common.Address, error) {
  9913  	return _OwnableUpgradeable.Contract.Owner(&_OwnableUpgradeable.CallOpts)
  9914  }
  9915  
  9916  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  9917  //
  9918  // Solidity: function owner() view returns(address)
  9919  func (_OwnableUpgradeable *OwnableUpgradeableCallerSession) Owner() (common.Address, error) {
  9920  	return _OwnableUpgradeable.Contract.Owner(&_OwnableUpgradeable.CallOpts)
  9921  }
  9922  
  9923  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  9924  //
  9925  // Solidity: function renounceOwnership() returns()
  9926  func (_OwnableUpgradeable *OwnableUpgradeableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  9927  	return _OwnableUpgradeable.contract.Transact(opts, "renounceOwnership")
  9928  }
  9929  
  9930  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  9931  //
  9932  // Solidity: function renounceOwnership() returns()
  9933  func (_OwnableUpgradeable *OwnableUpgradeableSession) RenounceOwnership() (*types.Transaction, error) {
  9934  	return _OwnableUpgradeable.Contract.RenounceOwnership(&_OwnableUpgradeable.TransactOpts)
  9935  }
  9936  
  9937  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  9938  //
  9939  // Solidity: function renounceOwnership() returns()
  9940  func (_OwnableUpgradeable *OwnableUpgradeableTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  9941  	return _OwnableUpgradeable.Contract.RenounceOwnership(&_OwnableUpgradeable.TransactOpts)
  9942  }
  9943  
  9944  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  9945  //
  9946  // Solidity: function transferOwnership(address newOwner) returns()
  9947  func (_OwnableUpgradeable *OwnableUpgradeableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  9948  	return _OwnableUpgradeable.contract.Transact(opts, "transferOwnership", newOwner)
  9949  }
  9950  
  9951  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  9952  //
  9953  // Solidity: function transferOwnership(address newOwner) returns()
  9954  func (_OwnableUpgradeable *OwnableUpgradeableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  9955  	return _OwnableUpgradeable.Contract.TransferOwnership(&_OwnableUpgradeable.TransactOpts, newOwner)
  9956  }
  9957  
  9958  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  9959  //
  9960  // Solidity: function transferOwnership(address newOwner) returns()
  9961  func (_OwnableUpgradeable *OwnableUpgradeableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  9962  	return _OwnableUpgradeable.Contract.TransferOwnership(&_OwnableUpgradeable.TransactOpts, newOwner)
  9963  }
  9964  
  9965  // OwnableUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the OwnableUpgradeable contract.
  9966  type OwnableUpgradeableInitializedIterator struct {
  9967  	Event *OwnableUpgradeableInitialized // Event containing the contract specifics and raw log
  9968  
  9969  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9970  	event    string              // Event name to use for unpacking event data
  9971  
  9972  	logs chan types.Log      // Log channel receiving the found contract events
  9973  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9974  	done bool                // Whether the subscription completed delivering logs
  9975  	fail error               // Occurred error to stop iteration
  9976  }
  9977  
  9978  // Next advances the iterator to the subsequent event, returning whether there
  9979  // are any more events found. In case of a retrieval or parsing error, false is
  9980  // returned and Error() can be queried for the exact failure.
  9981  func (it *OwnableUpgradeableInitializedIterator) Next() bool {
  9982  	// If the iterator failed, stop iterating
  9983  	if it.fail != nil {
  9984  		return false
  9985  	}
  9986  	// If the iterator completed, deliver directly whatever's available
  9987  	if it.done {
  9988  		select {
  9989  		case log := <-it.logs:
  9990  			it.Event = new(OwnableUpgradeableInitialized)
  9991  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9992  				it.fail = err
  9993  				return false
  9994  			}
  9995  			it.Event.Raw = log
  9996  			return true
  9997  
  9998  		default:
  9999  			return false
 10000  		}
 10001  	}
 10002  	// Iterator still in progress, wait for either a data or an error event
 10003  	select {
 10004  	case log := <-it.logs:
 10005  		it.Event = new(OwnableUpgradeableInitialized)
 10006  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10007  			it.fail = err
 10008  			return false
 10009  		}
 10010  		it.Event.Raw = log
 10011  		return true
 10012  
 10013  	case err := <-it.sub.Err():
 10014  		it.done = true
 10015  		it.fail = err
 10016  		return it.Next()
 10017  	}
 10018  }
 10019  
 10020  // Error returns any retrieval or parsing error occurred during filtering.
 10021  func (it *OwnableUpgradeableInitializedIterator) Error() error {
 10022  	return it.fail
 10023  }
 10024  
 10025  // Close terminates the iteration process, releasing any pending underlying
 10026  // resources.
 10027  func (it *OwnableUpgradeableInitializedIterator) Close() error {
 10028  	it.sub.Unsubscribe()
 10029  	return nil
 10030  }
 10031  
 10032  // OwnableUpgradeableInitialized represents a Initialized event raised by the OwnableUpgradeable contract.
 10033  type OwnableUpgradeableInitialized struct {
 10034  	Version uint8
 10035  	Raw     types.Log // Blockchain specific contextual infos
 10036  }
 10037  
 10038  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
 10039  //
 10040  // Solidity: event Initialized(uint8 version)
 10041  func (_OwnableUpgradeable *OwnableUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*OwnableUpgradeableInitializedIterator, error) {
 10042  	logs, sub, err := _OwnableUpgradeable.contract.FilterLogs(opts, "Initialized")
 10043  	if err != nil {
 10044  		return nil, err
 10045  	}
 10046  	return &OwnableUpgradeableInitializedIterator{contract: _OwnableUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil
 10047  }
 10048  
 10049  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
 10050  //
 10051  // Solidity: event Initialized(uint8 version)
 10052  func (_OwnableUpgradeable *OwnableUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *OwnableUpgradeableInitialized) (event.Subscription, error) {
 10053  	logs, sub, err := _OwnableUpgradeable.contract.WatchLogs(opts, "Initialized")
 10054  	if err != nil {
 10055  		return nil, err
 10056  	}
 10057  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10058  		defer sub.Unsubscribe()
 10059  		for {
 10060  			select {
 10061  			case log := <-logs:
 10062  				// New log arrived, parse the event and forward to the user
 10063  				event := new(OwnableUpgradeableInitialized)
 10064  				if err := _OwnableUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
 10065  					return err
 10066  				}
 10067  				event.Raw = log
 10068  
 10069  				select {
 10070  				case sink <- event:
 10071  				case err := <-sub.Err():
 10072  					return err
 10073  				case <-quit:
 10074  					return nil
 10075  				}
 10076  			case err := <-sub.Err():
 10077  				return err
 10078  			case <-quit:
 10079  				return nil
 10080  			}
 10081  		}
 10082  	}), nil
 10083  }
 10084  
 10085  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
 10086  //
 10087  // Solidity: event Initialized(uint8 version)
 10088  func (_OwnableUpgradeable *OwnableUpgradeableFilterer) ParseInitialized(log types.Log) (*OwnableUpgradeableInitialized, error) {
 10089  	event := new(OwnableUpgradeableInitialized)
 10090  	if err := _OwnableUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
 10091  		return nil, err
 10092  	}
 10093  	return event, nil
 10094  }
 10095  
 10096  // OwnableUpgradeableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the OwnableUpgradeable contract.
 10097  type OwnableUpgradeableOwnershipTransferredIterator struct {
 10098  	Event *OwnableUpgradeableOwnershipTransferred // Event containing the contract specifics and raw log
 10099  
 10100  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10101  	event    string              // Event name to use for unpacking event data
 10102  
 10103  	logs chan types.Log      // Log channel receiving the found contract events
 10104  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10105  	done bool                // Whether the subscription completed delivering logs
 10106  	fail error               // Occurred error to stop iteration
 10107  }
 10108  
 10109  // Next advances the iterator to the subsequent event, returning whether there
 10110  // are any more events found. In case of a retrieval or parsing error, false is
 10111  // returned and Error() can be queried for the exact failure.
 10112  func (it *OwnableUpgradeableOwnershipTransferredIterator) Next() bool {
 10113  	// If the iterator failed, stop iterating
 10114  	if it.fail != nil {
 10115  		return false
 10116  	}
 10117  	// If the iterator completed, deliver directly whatever's available
 10118  	if it.done {
 10119  		select {
 10120  		case log := <-it.logs:
 10121  			it.Event = new(OwnableUpgradeableOwnershipTransferred)
 10122  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10123  				it.fail = err
 10124  				return false
 10125  			}
 10126  			it.Event.Raw = log
 10127  			return true
 10128  
 10129  		default:
 10130  			return false
 10131  		}
 10132  	}
 10133  	// Iterator still in progress, wait for either a data or an error event
 10134  	select {
 10135  	case log := <-it.logs:
 10136  		it.Event = new(OwnableUpgradeableOwnershipTransferred)
 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  	case err := <-it.sub.Err():
 10145  		it.done = true
 10146  		it.fail = err
 10147  		return it.Next()
 10148  	}
 10149  }
 10150  
 10151  // Error returns any retrieval or parsing error occurred during filtering.
 10152  func (it *OwnableUpgradeableOwnershipTransferredIterator) Error() error {
 10153  	return it.fail
 10154  }
 10155  
 10156  // Close terminates the iteration process, releasing any pending underlying
 10157  // resources.
 10158  func (it *OwnableUpgradeableOwnershipTransferredIterator) Close() error {
 10159  	it.sub.Unsubscribe()
 10160  	return nil
 10161  }
 10162  
 10163  // OwnableUpgradeableOwnershipTransferred represents a OwnershipTransferred event raised by the OwnableUpgradeable contract.
 10164  type OwnableUpgradeableOwnershipTransferred struct {
 10165  	PreviousOwner common.Address
 10166  	NewOwner      common.Address
 10167  	Raw           types.Log // Blockchain specific contextual infos
 10168  }
 10169  
 10170  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10171  //
 10172  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10173  func (_OwnableUpgradeable *OwnableUpgradeableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableUpgradeableOwnershipTransferredIterator, error) {
 10174  	var previousOwnerRule []interface{}
 10175  	for _, previousOwnerItem := range previousOwner {
 10176  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 10177  	}
 10178  	var newOwnerRule []interface{}
 10179  	for _, newOwnerItem := range newOwner {
 10180  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 10181  	}
 10182  
 10183  	logs, sub, err := _OwnableUpgradeable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 10184  	if err != nil {
 10185  		return nil, err
 10186  	}
 10187  	return &OwnableUpgradeableOwnershipTransferredIterator{contract: _OwnableUpgradeable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 10188  }
 10189  
 10190  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10191  //
 10192  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10193  func (_OwnableUpgradeable *OwnableUpgradeableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableUpgradeableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 10194  	var previousOwnerRule []interface{}
 10195  	for _, previousOwnerItem := range previousOwner {
 10196  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 10197  	}
 10198  	var newOwnerRule []interface{}
 10199  	for _, newOwnerItem := range newOwner {
 10200  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 10201  	}
 10202  
 10203  	logs, sub, err := _OwnableUpgradeable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 10204  	if err != nil {
 10205  		return nil, err
 10206  	}
 10207  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10208  		defer sub.Unsubscribe()
 10209  		for {
 10210  			select {
 10211  			case log := <-logs:
 10212  				// New log arrived, parse the event and forward to the user
 10213  				event := new(OwnableUpgradeableOwnershipTransferred)
 10214  				if err := _OwnableUpgradeable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 10215  					return err
 10216  				}
 10217  				event.Raw = log
 10218  
 10219  				select {
 10220  				case sink <- event:
 10221  				case err := <-sub.Err():
 10222  					return err
 10223  				case <-quit:
 10224  					return nil
 10225  				}
 10226  			case err := <-sub.Err():
 10227  				return err
 10228  			case <-quit:
 10229  				return nil
 10230  			}
 10231  		}
 10232  	}), nil
 10233  }
 10234  
 10235  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10236  //
 10237  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10238  func (_OwnableUpgradeable *OwnableUpgradeableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableUpgradeableOwnershipTransferred, error) {
 10239  	event := new(OwnableUpgradeableOwnershipTransferred)
 10240  	if err := _OwnableUpgradeable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 10241  		return nil, err
 10242  	}
 10243  	return event, nil
 10244  }
 10245  
 10246  // ProxyMetaData contains all meta data concerning the Proxy contract.
 10247  var ProxyMetaData = &bind.MetaData{
 10248  	ABI: "[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]",
 10249  }
 10250  
 10251  // ProxyABI is the input ABI used to generate the binding from.
 10252  // Deprecated: Use ProxyMetaData.ABI instead.
 10253  var ProxyABI = ProxyMetaData.ABI
 10254  
 10255  // ProxyBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 10256  const ProxyBinRuntime = ``
 10257  
 10258  // Proxy is an auto generated Go binding around a Klaytn contract.
 10259  type Proxy struct {
 10260  	ProxyCaller     // Read-only binding to the contract
 10261  	ProxyTransactor // Write-only binding to the contract
 10262  	ProxyFilterer   // Log filterer for contract events
 10263  }
 10264  
 10265  // ProxyCaller is an auto generated read-only Go binding around a Klaytn contract.
 10266  type ProxyCaller struct {
 10267  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10268  }
 10269  
 10270  // ProxyTransactor is an auto generated write-only Go binding around a Klaytn contract.
 10271  type ProxyTransactor struct {
 10272  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10273  }
 10274  
 10275  // ProxyFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 10276  type ProxyFilterer struct {
 10277  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10278  }
 10279  
 10280  // ProxySession is an auto generated Go binding around a Klaytn contract,
 10281  // with pre-set call and transact options.
 10282  type ProxySession struct {
 10283  	Contract     *Proxy            // Generic contract binding to set the session for
 10284  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 10285  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 10286  }
 10287  
 10288  // ProxyCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 10289  // with pre-set call options.
 10290  type ProxyCallerSession struct {
 10291  	Contract *ProxyCaller  // Generic contract caller binding to set the session for
 10292  	CallOpts bind.CallOpts // Call options to use throughout this session
 10293  }
 10294  
 10295  // ProxyTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 10296  // with pre-set transact options.
 10297  type ProxyTransactorSession struct {
 10298  	Contract     *ProxyTransactor  // Generic contract transactor binding to set the session for
 10299  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 10300  }
 10301  
 10302  // ProxyRaw is an auto generated low-level Go binding around a Klaytn contract.
 10303  type ProxyRaw struct {
 10304  	Contract *Proxy // Generic contract binding to access the raw methods on
 10305  }
 10306  
 10307  // ProxyCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 10308  type ProxyCallerRaw struct {
 10309  	Contract *ProxyCaller // Generic read-only contract binding to access the raw methods on
 10310  }
 10311  
 10312  // ProxyTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 10313  type ProxyTransactorRaw struct {
 10314  	Contract *ProxyTransactor // Generic write-only contract binding to access the raw methods on
 10315  }
 10316  
 10317  // NewProxy creates a new instance of Proxy, bound to a specific deployed contract.
 10318  func NewProxy(address common.Address, backend bind.ContractBackend) (*Proxy, error) {
 10319  	contract, err := bindProxy(address, backend, backend, backend)
 10320  	if err != nil {
 10321  		return nil, err
 10322  	}
 10323  	return &Proxy{ProxyCaller: ProxyCaller{contract: contract}, ProxyTransactor: ProxyTransactor{contract: contract}, ProxyFilterer: ProxyFilterer{contract: contract}}, nil
 10324  }
 10325  
 10326  // NewProxyCaller creates a new read-only instance of Proxy, bound to a specific deployed contract.
 10327  func NewProxyCaller(address common.Address, caller bind.ContractCaller) (*ProxyCaller, error) {
 10328  	contract, err := bindProxy(address, caller, nil, nil)
 10329  	if err != nil {
 10330  		return nil, err
 10331  	}
 10332  	return &ProxyCaller{contract: contract}, nil
 10333  }
 10334  
 10335  // NewProxyTransactor creates a new write-only instance of Proxy, bound to a specific deployed contract.
 10336  func NewProxyTransactor(address common.Address, transactor bind.ContractTransactor) (*ProxyTransactor, error) {
 10337  	contract, err := bindProxy(address, nil, transactor, nil)
 10338  	if err != nil {
 10339  		return nil, err
 10340  	}
 10341  	return &ProxyTransactor{contract: contract}, nil
 10342  }
 10343  
 10344  // NewProxyFilterer creates a new log filterer instance of Proxy, bound to a specific deployed contract.
 10345  func NewProxyFilterer(address common.Address, filterer bind.ContractFilterer) (*ProxyFilterer, error) {
 10346  	contract, err := bindProxy(address, nil, nil, filterer)
 10347  	if err != nil {
 10348  		return nil, err
 10349  	}
 10350  	return &ProxyFilterer{contract: contract}, nil
 10351  }
 10352  
 10353  // bindProxy binds a generic wrapper to an already deployed contract.
 10354  func bindProxy(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 10355  	parsed, err := ProxyMetaData.GetAbi()
 10356  	if err != nil {
 10357  		return nil, err
 10358  	}
 10359  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 10360  }
 10361  
 10362  // Call invokes the (constant) contract method with params as input values and
 10363  // sets the output to result. The result type might be a single field for simple
 10364  // returns, a slice of interfaces for anonymous returns and a struct for named
 10365  // returns.
 10366  func (_Proxy *ProxyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 10367  	return _Proxy.Contract.ProxyCaller.contract.Call(opts, result, method, params...)
 10368  }
 10369  
 10370  // Transfer initiates a plain transaction to move funds to the contract, calling
 10371  // its default method if one is available.
 10372  func (_Proxy *ProxyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 10373  	return _Proxy.Contract.ProxyTransactor.contract.Transfer(opts)
 10374  }
 10375  
 10376  // Transact invokes the (paid) contract method with params as input values.
 10377  func (_Proxy *ProxyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 10378  	return _Proxy.Contract.ProxyTransactor.contract.Transact(opts, method, params...)
 10379  }
 10380  
 10381  // Call invokes the (constant) contract method with params as input values and
 10382  // sets the output to result. The result type might be a single field for simple
 10383  // returns, a slice of interfaces for anonymous returns and a struct for named
 10384  // returns.
 10385  func (_Proxy *ProxyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 10386  	return _Proxy.Contract.contract.Call(opts, result, method, params...)
 10387  }
 10388  
 10389  // Transfer initiates a plain transaction to move funds to the contract, calling
 10390  // its default method if one is available.
 10391  func (_Proxy *ProxyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 10392  	return _Proxy.Contract.contract.Transfer(opts)
 10393  }
 10394  
 10395  // Transact invokes the (paid) contract method with params as input values.
 10396  func (_Proxy *ProxyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 10397  	return _Proxy.Contract.contract.Transact(opts, method, params...)
 10398  }
 10399  
 10400  // Fallback is a paid mutator transaction binding the contract fallback function.
 10401  //
 10402  // Solidity: fallback() payable returns()
 10403  func (_Proxy *ProxyTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) {
 10404  	return _Proxy.contract.RawTransact(opts, calldata)
 10405  }
 10406  
 10407  // Fallback is a paid mutator transaction binding the contract fallback function.
 10408  //
 10409  // Solidity: fallback() payable returns()
 10410  func (_Proxy *ProxySession) Fallback(calldata []byte) (*types.Transaction, error) {
 10411  	return _Proxy.Contract.Fallback(&_Proxy.TransactOpts, calldata)
 10412  }
 10413  
 10414  // Fallback is a paid mutator transaction binding the contract fallback function.
 10415  //
 10416  // Solidity: fallback() payable returns()
 10417  func (_Proxy *ProxyTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) {
 10418  	return _Proxy.Contract.Fallback(&_Proxy.TransactOpts, calldata)
 10419  }
 10420  
 10421  // Receive is a paid mutator transaction binding the contract receive function.
 10422  //
 10423  // Solidity: receive() payable returns()
 10424  func (_Proxy *ProxyTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) {
 10425  	return _Proxy.contract.RawTransact(opts, nil) // calldata is disallowed for receive function
 10426  }
 10427  
 10428  // Receive is a paid mutator transaction binding the contract receive function.
 10429  //
 10430  // Solidity: receive() payable returns()
 10431  func (_Proxy *ProxySession) Receive() (*types.Transaction, error) {
 10432  	return _Proxy.Contract.Receive(&_Proxy.TransactOpts)
 10433  }
 10434  
 10435  // Receive is a paid mutator transaction binding the contract receive function.
 10436  //
 10437  // Solidity: receive() payable returns()
 10438  func (_Proxy *ProxyTransactorSession) Receive() (*types.Transaction, error) {
 10439  	return _Proxy.Contract.Receive(&_Proxy.TransactOpts)
 10440  }
 10441  
 10442  // RegistryMetaData contains all meta data concerning the Registry contract.
 10443  var RegistryMetaData = &bind.MetaData{
 10444  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getActiveAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNames\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getAllRecords\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"internalType\":\"structIRegistry.Record[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"names\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"records\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 10445  	Sigs: map[string]string{
 10446  		"e2693e3f": "getActiveAddr(string)",
 10447  		"fb825e5f": "getAllNames()",
 10448  		"78d573a2": "getAllRecords(string)",
 10449  		"4622ab03": "names(uint256)",
 10450  		"8da5cb5b": "owner()",
 10451  		"3b51650d": "records(string,uint256)",
 10452  		"d393c871": "register(string,address,uint256)",
 10453  		"f2fde38b": "transferOwnership(address)",
 10454  	},
 10455  	Bin: "0x608060405234801561001057600080fd5b50610db9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063d393c8711161005b578063d393c87114610129578063e2693e3f1461013e578063f2fde38b14610151578063fb825e5f1461016457600080fd5b80633b51650d1461008d5780634622ab03146100c457806378d573a2146100e45780638da5cb5b14610104575b600080fd5b6100a061009b366004610975565b610179565b604080516001600160a01b0390931683526020830191909152015b60405180910390f35b6100d76100d23660046109ba565b6101ce565b6040516100bb9190610a23565b6100f76100f2366004610a3d565b61027a565b6040516100bb9190610a7a565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016100bb565b61013c610137366004610aee565b61030d565b005b61011161014c366004610a3d565b61062b565b61013c61015f366004610b45565b610722565b61016c6107f9565b6040516100bb9190610b60565b815160208184018101805160008252928201918501919091209190528054829081106101a457600080fd5b6000918252602090912060029091020180546001909101546001600160a01b039091169250905082565b600181815481106101de57600080fd5b9060005260206000200160009150905080546101f990610bc2565b80601f016020809104026020016040519081016040528092919081815260200182805461022590610bc2565b80156102725780601f1061024757610100808354040283529160200191610272565b820191906000526020600020905b81548152906001019060200180831161025557829003601f168201915b505050505081565b606060008260405161028c9190610bfc565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610302576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016102ba565b505050509050919050565b6002546001600160a01b031633146103585760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b8260008160405160200161036c9190610bfc565b604051602081830303815290604052905080516000036103bd5760405162461bcd60e51b815260206004820152600c60248201526b456d70747920737472696e6760a01b604482015260640161034f565b4383116104165760405162461bcd60e51b815260206004820152602160248201527f43616e277420726567697374657220636f6e74726163742066726f6d207061736044820152601d60fa1b606482015260840161034f565b600080866040516104279190610bfc565b90815260405190819003602001902054905060008190036104f3576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60161047d8782610c67565b5060008660405161048e9190610bfc565b90815260408051602092819003830181208183019092526001600160a01b0388811682528382018881528354600180820186556000958652959094209251600290940290920180546001600160a01b03191693909116929092178255519101556105e1565b600080876040516105049190610bfc565b90815260405190819003602001902061051e600184610d3d565b8154811061052e5761052e610d56565b90600052602060002090600202019050438160010154116105be576000876040516105599190610bfc565b90815260408051602092819003830181208183019092526001600160a01b0389811682528382018981528354600180820186556000958652959094209251600290940290920180546001600160a01b03191693909116929092178255519101556105df565b80546001600160a01b0319166001600160a01b038716178155600181018590555b505b83856001600160a01b03167f142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f308860405161061b9190610a23565b60405180910390a3505050505050565b60008060008360405161063e9190610bfc565b908152604051908190036020019020549050805b801561071857436000856040516106699190610bfc565b908152604051908190036020019020610683600184610d3d565b8154811061069357610693610d56565b90600052602060002090600202016001015411610706576000846040516106ba9190610bfc565b9081526040519081900360200190206106d4600183610d3d565b815481106106e4576106e4610d56565b60009182526020909120600290910201546001600160a01b0316949350505050565b8061071081610d6c565b915050610652565b5060009392505050565b6002546001600160a01b031633146107685760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b604482015260640161034f565b6001600160a01b0381166107ad5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015260640161034f565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156108c957838290600052602060002001805461083c90610bc2565b80601f016020809104026020016040519081016040528092919081815260200182805461086890610bc2565b80156108b55780601f1061088a576101008083540402835291602001916108b5565b820191906000526020600020905b81548152906001019060200180831161089857829003601f168201915b50505050508152602001906001019061081d565b50505050905090565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126108f957600080fd5b813567ffffffffffffffff80821115610914576109146108d2565b604051601f8301601f19908116603f0116810190828211818310171561093c5761093c6108d2565b8160405283815286602085880101111561095557600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561098857600080fd5b823567ffffffffffffffff81111561099f57600080fd5b6109ab858286016108e8565b95602094909401359450505050565b6000602082840312156109cc57600080fd5b5035919050565b60005b838110156109ee5781810151838201526020016109d6565b50506000910152565b60008151808452610a0f8160208601602086016109d3565b601f01601f19169290920160200192915050565b602081526000610a3660208301846109f7565b9392505050565b600060208284031215610a4f57600080fd5b813567ffffffffffffffff811115610a6657600080fd5b610a72848285016108e8565b949350505050565b602080825282518282018190526000919060409081850190868401855b82811015610ac557815180516001600160a01b03168552860151868501529284019290850190600101610a97565b5091979650505050505050565b80356001600160a01b0381168114610ae957600080fd5b919050565b600080600060608486031215610b0357600080fd5b833567ffffffffffffffff811115610b1a57600080fd5b610b26868287016108e8565b935050610b3560208501610ad2565b9150604084013590509250925092565b600060208284031215610b5757600080fd5b610a3682610ad2565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610bb557603f19888603018452610ba38583516109f7565b94509285019290850190600101610b87565b5092979650505050505050565b600181811c90821680610bd657607f821691505b602082108103610bf657634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c0e8184602087016109d3565b9190910192915050565b601f821115610c6257600081815260208120601f850160051c81016020861015610c3f5750805b601f850160051c820191505b81811015610c5e57828155600101610c4b565b5050505b505050565b815167ffffffffffffffff811115610c8157610c816108d2565b610c9581610c8f8454610bc2565b84610c18565b602080601f831160018114610cca5760008415610cb25750858301515b600019600386901b1c1916600185901b178555610c5e565b600085815260208120601f198616915b82811015610cf957888601518255948401946001909101908401610cda565b5085821015610d175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d5057610d50610d27565b92915050565b634e487b7160e01b600052603260045260246000fd5b600081610d7b57610d7b610d27565b50600019019056fea2646970667358221220a3f6e37a5b67f7bb6210f0cfef969cb855bda4c8699bb46ed4a49ee814b7765864736f6c63430008130033",
 10456  }
 10457  
 10458  // RegistryABI is the input ABI used to generate the binding from.
 10459  // Deprecated: Use RegistryMetaData.ABI instead.
 10460  var RegistryABI = RegistryMetaData.ABI
 10461  
 10462  // RegistryBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 10463  const RegistryBinRuntime = `608060405234801561001057600080fd5b50600436106100885760003560e01c8063d393c8711161005b578063d393c87114610129578063e2693e3f1461013e578063f2fde38b14610151578063fb825e5f1461016457600080fd5b80633b51650d1461008d5780634622ab03146100c457806378d573a2146100e45780638da5cb5b14610104575b600080fd5b6100a061009b366004610975565b610179565b604080516001600160a01b0390931683526020830191909152015b60405180910390f35b6100d76100d23660046109ba565b6101ce565b6040516100bb9190610a23565b6100f76100f2366004610a3d565b61027a565b6040516100bb9190610a7a565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016100bb565b61013c610137366004610aee565b61030d565b005b61011161014c366004610a3d565b61062b565b61013c61015f366004610b45565b610722565b61016c6107f9565b6040516100bb9190610b60565b815160208184018101805160008252928201918501919091209190528054829081106101a457600080fd5b6000918252602090912060029091020180546001909101546001600160a01b039091169250905082565b600181815481106101de57600080fd5b9060005260206000200160009150905080546101f990610bc2565b80601f016020809104026020016040519081016040528092919081815260200182805461022590610bc2565b80156102725780601f1061024757610100808354040283529160200191610272565b820191906000526020600020905b81548152906001019060200180831161025557829003601f168201915b505050505081565b606060008260405161028c9190610bfc565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610302576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016102ba565b505050509050919050565b6002546001600160a01b031633146103585760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b8260008160405160200161036c9190610bfc565b604051602081830303815290604052905080516000036103bd5760405162461bcd60e51b815260206004820152600c60248201526b456d70747920737472696e6760a01b604482015260640161034f565b4383116104165760405162461bcd60e51b815260206004820152602160248201527f43616e277420726567697374657220636f6e74726163742066726f6d207061736044820152601d60fa1b606482015260840161034f565b600080866040516104279190610bfc565b90815260405190819003602001902054905060008190036104f3576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60161047d8782610c67565b5060008660405161048e9190610bfc565b90815260408051602092819003830181208183019092526001600160a01b0388811682528382018881528354600180820186556000958652959094209251600290940290920180546001600160a01b03191693909116929092178255519101556105e1565b600080876040516105049190610bfc565b90815260405190819003602001902061051e600184610d3d565b8154811061052e5761052e610d56565b90600052602060002090600202019050438160010154116105be576000876040516105599190610bfc565b90815260408051602092819003830181208183019092526001600160a01b0389811682528382018981528354600180820186556000958652959094209251600290940290920180546001600160a01b03191693909116929092178255519101556105df565b80546001600160a01b0319166001600160a01b038716178155600181018590555b505b83856001600160a01b03167f142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f308860405161061b9190610a23565b60405180910390a3505050505050565b60008060008360405161063e9190610bfc565b908152604051908190036020019020549050805b801561071857436000856040516106699190610bfc565b908152604051908190036020019020610683600184610d3d565b8154811061069357610693610d56565b90600052602060002090600202016001015411610706576000846040516106ba9190610bfc565b9081526040519081900360200190206106d4600183610d3d565b815481106106e4576106e4610d56565b60009182526020909120600290910201546001600160a01b0316949350505050565b8061071081610d6c565b915050610652565b5060009392505050565b6002546001600160a01b031633146107685760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b604482015260640161034f565b6001600160a01b0381166107ad5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015260640161034f565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156108c957838290600052602060002001805461083c90610bc2565b80601f016020809104026020016040519081016040528092919081815260200182805461086890610bc2565b80156108b55780601f1061088a576101008083540402835291602001916108b5565b820191906000526020600020905b81548152906001019060200180831161089857829003601f168201915b50505050508152602001906001019061081d565b50505050905090565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126108f957600080fd5b813567ffffffffffffffff80821115610914576109146108d2565b604051601f8301601f19908116603f0116810190828211818310171561093c5761093c6108d2565b8160405283815286602085880101111561095557600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561098857600080fd5b823567ffffffffffffffff81111561099f57600080fd5b6109ab858286016108e8565b95602094909401359450505050565b6000602082840312156109cc57600080fd5b5035919050565b60005b838110156109ee5781810151838201526020016109d6565b50506000910152565b60008151808452610a0f8160208601602086016109d3565b601f01601f19169290920160200192915050565b602081526000610a3660208301846109f7565b9392505050565b600060208284031215610a4f57600080fd5b813567ffffffffffffffff811115610a6657600080fd5b610a72848285016108e8565b949350505050565b602080825282518282018190526000919060409081850190868401855b82811015610ac557815180516001600160a01b03168552860151868501529284019290850190600101610a97565b5091979650505050505050565b80356001600160a01b0381168114610ae957600080fd5b919050565b600080600060608486031215610b0357600080fd5b833567ffffffffffffffff811115610b1a57600080fd5b610b26868287016108e8565b935050610b3560208501610ad2565b9150604084013590509250925092565b600060208284031215610b5757600080fd5b610a3682610ad2565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610bb557603f19888603018452610ba38583516109f7565b94509285019290850190600101610b87565b5092979650505050505050565b600181811c90821680610bd657607f821691505b602082108103610bf657634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c0e8184602087016109d3565b9190910192915050565b601f821115610c6257600081815260208120601f850160051c81016020861015610c3f5750805b601f850160051c820191505b81811015610c5e57828155600101610c4b565b5050505b505050565b815167ffffffffffffffff811115610c8157610c816108d2565b610c9581610c8f8454610bc2565b84610c18565b602080601f831160018114610cca5760008415610cb25750858301515b600019600386901b1c1916600185901b178555610c5e565b600085815260208120601f198616915b82811015610cf957888601518255948401946001909101908401610cda565b5085821015610d175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d5057610d50610d27565b92915050565b634e487b7160e01b600052603260045260246000fd5b600081610d7b57610d7b610d27565b50600019019056fea2646970667358221220a3f6e37a5b67f7bb6210f0cfef969cb855bda4c8699bb46ed4a49ee814b7765864736f6c63430008130033`
 10464  
 10465  // RegistryFuncSigs maps the 4-byte function signature to its string representation.
 10466  // Deprecated: Use RegistryMetaData.Sigs instead.
 10467  var RegistryFuncSigs = RegistryMetaData.Sigs
 10468  
 10469  // RegistryBin is the compiled bytecode used for deploying new contracts.
 10470  // Deprecated: Use RegistryMetaData.Bin instead.
 10471  var RegistryBin = RegistryMetaData.Bin
 10472  
 10473  // DeployRegistry deploys a new Klaytn contract, binding an instance of Registry to it.
 10474  func DeployRegistry(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Registry, error) {
 10475  	parsed, err := RegistryMetaData.GetAbi()
 10476  	if err != nil {
 10477  		return common.Address{}, nil, nil, err
 10478  	}
 10479  	if parsed == nil {
 10480  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 10481  	}
 10482  
 10483  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RegistryBin), backend)
 10484  	if err != nil {
 10485  		return common.Address{}, nil, nil, err
 10486  	}
 10487  	return address, tx, &Registry{RegistryCaller: RegistryCaller{contract: contract}, RegistryTransactor: RegistryTransactor{contract: contract}, RegistryFilterer: RegistryFilterer{contract: contract}}, nil
 10488  }
 10489  
 10490  // Registry is an auto generated Go binding around a Klaytn contract.
 10491  type Registry struct {
 10492  	RegistryCaller     // Read-only binding to the contract
 10493  	RegistryTransactor // Write-only binding to the contract
 10494  	RegistryFilterer   // Log filterer for contract events
 10495  }
 10496  
 10497  // RegistryCaller is an auto generated read-only Go binding around a Klaytn contract.
 10498  type RegistryCaller struct {
 10499  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10500  }
 10501  
 10502  // RegistryTransactor is an auto generated write-only Go binding around a Klaytn contract.
 10503  type RegistryTransactor struct {
 10504  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10505  }
 10506  
 10507  // RegistryFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 10508  type RegistryFilterer struct {
 10509  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 10510  }
 10511  
 10512  // RegistrySession is an auto generated Go binding around a Klaytn contract,
 10513  // with pre-set call and transact options.
 10514  type RegistrySession struct {
 10515  	Contract     *Registry         // Generic contract binding to set the session for
 10516  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 10517  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 10518  }
 10519  
 10520  // RegistryCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 10521  // with pre-set call options.
 10522  type RegistryCallerSession struct {
 10523  	Contract *RegistryCaller // Generic contract caller binding to set the session for
 10524  	CallOpts bind.CallOpts   // Call options to use throughout this session
 10525  }
 10526  
 10527  // RegistryTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 10528  // with pre-set transact options.
 10529  type RegistryTransactorSession struct {
 10530  	Contract     *RegistryTransactor // Generic contract transactor binding to set the session for
 10531  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 10532  }
 10533  
 10534  // RegistryRaw is an auto generated low-level Go binding around a Klaytn contract.
 10535  type RegistryRaw struct {
 10536  	Contract *Registry // Generic contract binding to access the raw methods on
 10537  }
 10538  
 10539  // RegistryCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 10540  type RegistryCallerRaw struct {
 10541  	Contract *RegistryCaller // Generic read-only contract binding to access the raw methods on
 10542  }
 10543  
 10544  // RegistryTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 10545  type RegistryTransactorRaw struct {
 10546  	Contract *RegistryTransactor // Generic write-only contract binding to access the raw methods on
 10547  }
 10548  
 10549  // NewRegistry creates a new instance of Registry, bound to a specific deployed contract.
 10550  func NewRegistry(address common.Address, backend bind.ContractBackend) (*Registry, error) {
 10551  	contract, err := bindRegistry(address, backend, backend, backend)
 10552  	if err != nil {
 10553  		return nil, err
 10554  	}
 10555  	return &Registry{RegistryCaller: RegistryCaller{contract: contract}, RegistryTransactor: RegistryTransactor{contract: contract}, RegistryFilterer: RegistryFilterer{contract: contract}}, nil
 10556  }
 10557  
 10558  // NewRegistryCaller creates a new read-only instance of Registry, bound to a specific deployed contract.
 10559  func NewRegistryCaller(address common.Address, caller bind.ContractCaller) (*RegistryCaller, error) {
 10560  	contract, err := bindRegistry(address, caller, nil, nil)
 10561  	if err != nil {
 10562  		return nil, err
 10563  	}
 10564  	return &RegistryCaller{contract: contract}, nil
 10565  }
 10566  
 10567  // NewRegistryTransactor creates a new write-only instance of Registry, bound to a specific deployed contract.
 10568  func NewRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*RegistryTransactor, error) {
 10569  	contract, err := bindRegistry(address, nil, transactor, nil)
 10570  	if err != nil {
 10571  		return nil, err
 10572  	}
 10573  	return &RegistryTransactor{contract: contract}, nil
 10574  }
 10575  
 10576  // NewRegistryFilterer creates a new log filterer instance of Registry, bound to a specific deployed contract.
 10577  func NewRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*RegistryFilterer, error) {
 10578  	contract, err := bindRegistry(address, nil, nil, filterer)
 10579  	if err != nil {
 10580  		return nil, err
 10581  	}
 10582  	return &RegistryFilterer{contract: contract}, nil
 10583  }
 10584  
 10585  // bindRegistry binds a generic wrapper to an already deployed contract.
 10586  func bindRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 10587  	parsed, err := RegistryMetaData.GetAbi()
 10588  	if err != nil {
 10589  		return nil, err
 10590  	}
 10591  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 10592  }
 10593  
 10594  // Call invokes the (constant) contract method with params as input values and
 10595  // sets the output to result. The result type might be a single field for simple
 10596  // returns, a slice of interfaces for anonymous returns and a struct for named
 10597  // returns.
 10598  func (_Registry *RegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 10599  	return _Registry.Contract.RegistryCaller.contract.Call(opts, result, method, params...)
 10600  }
 10601  
 10602  // Transfer initiates a plain transaction to move funds to the contract, calling
 10603  // its default method if one is available.
 10604  func (_Registry *RegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 10605  	return _Registry.Contract.RegistryTransactor.contract.Transfer(opts)
 10606  }
 10607  
 10608  // Transact invokes the (paid) contract method with params as input values.
 10609  func (_Registry *RegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 10610  	return _Registry.Contract.RegistryTransactor.contract.Transact(opts, method, params...)
 10611  }
 10612  
 10613  // Call invokes the (constant) contract method with params as input values and
 10614  // sets the output to result. The result type might be a single field for simple
 10615  // returns, a slice of interfaces for anonymous returns and a struct for named
 10616  // returns.
 10617  func (_Registry *RegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 10618  	return _Registry.Contract.contract.Call(opts, result, method, params...)
 10619  }
 10620  
 10621  // Transfer initiates a plain transaction to move funds to the contract, calling
 10622  // its default method if one is available.
 10623  func (_Registry *RegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 10624  	return _Registry.Contract.contract.Transfer(opts)
 10625  }
 10626  
 10627  // Transact invokes the (paid) contract method with params as input values.
 10628  func (_Registry *RegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 10629  	return _Registry.Contract.contract.Transact(opts, method, params...)
 10630  }
 10631  
 10632  // GetActiveAddr is a free data retrieval call binding the contract method 0xe2693e3f.
 10633  //
 10634  // Solidity: function getActiveAddr(string name) view returns(address)
 10635  func (_Registry *RegistryCaller) GetActiveAddr(opts *bind.CallOpts, name string) (common.Address, error) {
 10636  	var out []interface{}
 10637  	err := _Registry.contract.Call(opts, &out, "getActiveAddr", name)
 10638  	if err != nil {
 10639  		return *new(common.Address), err
 10640  	}
 10641  
 10642  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 10643  
 10644  	return out0, err
 10645  }
 10646  
 10647  // GetActiveAddr is a free data retrieval call binding the contract method 0xe2693e3f.
 10648  //
 10649  // Solidity: function getActiveAddr(string name) view returns(address)
 10650  func (_Registry *RegistrySession) GetActiveAddr(name string) (common.Address, error) {
 10651  	return _Registry.Contract.GetActiveAddr(&_Registry.CallOpts, name)
 10652  }
 10653  
 10654  // GetActiveAddr is a free data retrieval call binding the contract method 0xe2693e3f.
 10655  //
 10656  // Solidity: function getActiveAddr(string name) view returns(address)
 10657  func (_Registry *RegistryCallerSession) GetActiveAddr(name string) (common.Address, error) {
 10658  	return _Registry.Contract.GetActiveAddr(&_Registry.CallOpts, name)
 10659  }
 10660  
 10661  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
 10662  //
 10663  // Solidity: function getAllNames() view returns(string[])
 10664  func (_Registry *RegistryCaller) GetAllNames(opts *bind.CallOpts) ([]string, error) {
 10665  	var out []interface{}
 10666  	err := _Registry.contract.Call(opts, &out, "getAllNames")
 10667  	if err != nil {
 10668  		return *new([]string), err
 10669  	}
 10670  
 10671  	out0 := *abi.ConvertType(out[0], new([]string)).(*[]string)
 10672  
 10673  	return out0, err
 10674  }
 10675  
 10676  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
 10677  //
 10678  // Solidity: function getAllNames() view returns(string[])
 10679  func (_Registry *RegistrySession) GetAllNames() ([]string, error) {
 10680  	return _Registry.Contract.GetAllNames(&_Registry.CallOpts)
 10681  }
 10682  
 10683  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
 10684  //
 10685  // Solidity: function getAllNames() view returns(string[])
 10686  func (_Registry *RegistryCallerSession) GetAllNames() ([]string, error) {
 10687  	return _Registry.Contract.GetAllNames(&_Registry.CallOpts)
 10688  }
 10689  
 10690  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
 10691  //
 10692  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
 10693  func (_Registry *RegistryCaller) GetAllRecords(opts *bind.CallOpts, name string) ([]IRegistryRecord, error) {
 10694  	var out []interface{}
 10695  	err := _Registry.contract.Call(opts, &out, "getAllRecords", name)
 10696  	if err != nil {
 10697  		return *new([]IRegistryRecord), err
 10698  	}
 10699  
 10700  	out0 := *abi.ConvertType(out[0], new([]IRegistryRecord)).(*[]IRegistryRecord)
 10701  
 10702  	return out0, err
 10703  }
 10704  
 10705  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
 10706  //
 10707  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
 10708  func (_Registry *RegistrySession) GetAllRecords(name string) ([]IRegistryRecord, error) {
 10709  	return _Registry.Contract.GetAllRecords(&_Registry.CallOpts, name)
 10710  }
 10711  
 10712  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
 10713  //
 10714  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
 10715  func (_Registry *RegistryCallerSession) GetAllRecords(name string) ([]IRegistryRecord, error) {
 10716  	return _Registry.Contract.GetAllRecords(&_Registry.CallOpts, name)
 10717  }
 10718  
 10719  // Names is a free data retrieval call binding the contract method 0x4622ab03.
 10720  //
 10721  // Solidity: function names(uint256 ) view returns(string)
 10722  func (_Registry *RegistryCaller) Names(opts *bind.CallOpts, arg0 *big.Int) (string, error) {
 10723  	var out []interface{}
 10724  	err := _Registry.contract.Call(opts, &out, "names", arg0)
 10725  	if err != nil {
 10726  		return *new(string), err
 10727  	}
 10728  
 10729  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 10730  
 10731  	return out0, err
 10732  }
 10733  
 10734  // Names is a free data retrieval call binding the contract method 0x4622ab03.
 10735  //
 10736  // Solidity: function names(uint256 ) view returns(string)
 10737  func (_Registry *RegistrySession) Names(arg0 *big.Int) (string, error) {
 10738  	return _Registry.Contract.Names(&_Registry.CallOpts, arg0)
 10739  }
 10740  
 10741  // Names is a free data retrieval call binding the contract method 0x4622ab03.
 10742  //
 10743  // Solidity: function names(uint256 ) view returns(string)
 10744  func (_Registry *RegistryCallerSession) Names(arg0 *big.Int) (string, error) {
 10745  	return _Registry.Contract.Names(&_Registry.CallOpts, arg0)
 10746  }
 10747  
 10748  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10749  //
 10750  // Solidity: function owner() view returns(address)
 10751  func (_Registry *RegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 10752  	var out []interface{}
 10753  	err := _Registry.contract.Call(opts, &out, "owner")
 10754  	if err != nil {
 10755  		return *new(common.Address), err
 10756  	}
 10757  
 10758  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 10759  
 10760  	return out0, err
 10761  }
 10762  
 10763  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10764  //
 10765  // Solidity: function owner() view returns(address)
 10766  func (_Registry *RegistrySession) Owner() (common.Address, error) {
 10767  	return _Registry.Contract.Owner(&_Registry.CallOpts)
 10768  }
 10769  
 10770  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10771  //
 10772  // Solidity: function owner() view returns(address)
 10773  func (_Registry *RegistryCallerSession) Owner() (common.Address, error) {
 10774  	return _Registry.Contract.Owner(&_Registry.CallOpts)
 10775  }
 10776  
 10777  // Records is a free data retrieval call binding the contract method 0x3b51650d.
 10778  //
 10779  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
 10780  func (_Registry *RegistryCaller) Records(opts *bind.CallOpts, arg0 string, arg1 *big.Int) (struct {
 10781  	Addr       common.Address
 10782  	Activation *big.Int
 10783  }, error,
 10784  ) {
 10785  	var out []interface{}
 10786  	err := _Registry.contract.Call(opts, &out, "records", arg0, arg1)
 10787  
 10788  	outstruct := new(struct {
 10789  		Addr       common.Address
 10790  		Activation *big.Int
 10791  	})
 10792  
 10793  	outstruct.Addr = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 10794  	outstruct.Activation = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
 10795  	return *outstruct, err
 10796  }
 10797  
 10798  // Records is a free data retrieval call binding the contract method 0x3b51650d.
 10799  //
 10800  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
 10801  func (_Registry *RegistrySession) Records(arg0 string, arg1 *big.Int) (struct {
 10802  	Addr       common.Address
 10803  	Activation *big.Int
 10804  }, error,
 10805  ) {
 10806  	return _Registry.Contract.Records(&_Registry.CallOpts, arg0, arg1)
 10807  }
 10808  
 10809  // Records is a free data retrieval call binding the contract method 0x3b51650d.
 10810  //
 10811  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
 10812  func (_Registry *RegistryCallerSession) Records(arg0 string, arg1 *big.Int) (struct {
 10813  	Addr       common.Address
 10814  	Activation *big.Int
 10815  }, error,
 10816  ) {
 10817  	return _Registry.Contract.Records(&_Registry.CallOpts, arg0, arg1)
 10818  }
 10819  
 10820  // Register is a paid mutator transaction binding the contract method 0xd393c871.
 10821  //
 10822  // Solidity: function register(string name, address addr, uint256 activation) returns()
 10823  func (_Registry *RegistryTransactor) Register(opts *bind.TransactOpts, name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
 10824  	return _Registry.contract.Transact(opts, "register", name, addr, activation)
 10825  }
 10826  
 10827  // Register is a paid mutator transaction binding the contract method 0xd393c871.
 10828  //
 10829  // Solidity: function register(string name, address addr, uint256 activation) returns()
 10830  func (_Registry *RegistrySession) Register(name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
 10831  	return _Registry.Contract.Register(&_Registry.TransactOpts, name, addr, activation)
 10832  }
 10833  
 10834  // Register is a paid mutator transaction binding the contract method 0xd393c871.
 10835  //
 10836  // Solidity: function register(string name, address addr, uint256 activation) returns()
 10837  func (_Registry *RegistryTransactorSession) Register(name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
 10838  	return _Registry.Contract.Register(&_Registry.TransactOpts, name, addr, activation)
 10839  }
 10840  
 10841  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 10842  //
 10843  // Solidity: function transferOwnership(address newOwner) returns()
 10844  func (_Registry *RegistryTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 10845  	return _Registry.contract.Transact(opts, "transferOwnership", newOwner)
 10846  }
 10847  
 10848  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 10849  //
 10850  // Solidity: function transferOwnership(address newOwner) returns()
 10851  func (_Registry *RegistrySession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 10852  	return _Registry.Contract.TransferOwnership(&_Registry.TransactOpts, newOwner)
 10853  }
 10854  
 10855  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 10856  //
 10857  // Solidity: function transferOwnership(address newOwner) returns()
 10858  func (_Registry *RegistryTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 10859  	return _Registry.Contract.TransferOwnership(&_Registry.TransactOpts, newOwner)
 10860  }
 10861  
 10862  // RegistryOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Registry contract.
 10863  type RegistryOwnershipTransferredIterator struct {
 10864  	Event *RegistryOwnershipTransferred // Event containing the contract specifics and raw log
 10865  
 10866  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10867  	event    string              // Event name to use for unpacking event data
 10868  
 10869  	logs chan types.Log      // Log channel receiving the found contract events
 10870  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10871  	done bool                // Whether the subscription completed delivering logs
 10872  	fail error               // Occurred error to stop iteration
 10873  }
 10874  
 10875  // Next advances the iterator to the subsequent event, returning whether there
 10876  // are any more events found. In case of a retrieval or parsing error, false is
 10877  // returned and Error() can be queried for the exact failure.
 10878  func (it *RegistryOwnershipTransferredIterator) Next() bool {
 10879  	// If the iterator failed, stop iterating
 10880  	if it.fail != nil {
 10881  		return false
 10882  	}
 10883  	// If the iterator completed, deliver directly whatever's available
 10884  	if it.done {
 10885  		select {
 10886  		case log := <-it.logs:
 10887  			it.Event = new(RegistryOwnershipTransferred)
 10888  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10889  				it.fail = err
 10890  				return false
 10891  			}
 10892  			it.Event.Raw = log
 10893  			return true
 10894  
 10895  		default:
 10896  			return false
 10897  		}
 10898  	}
 10899  	// Iterator still in progress, wait for either a data or an error event
 10900  	select {
 10901  	case log := <-it.logs:
 10902  		it.Event = new(RegistryOwnershipTransferred)
 10903  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10904  			it.fail = err
 10905  			return false
 10906  		}
 10907  		it.Event.Raw = log
 10908  		return true
 10909  
 10910  	case err := <-it.sub.Err():
 10911  		it.done = true
 10912  		it.fail = err
 10913  		return it.Next()
 10914  	}
 10915  }
 10916  
 10917  // Error returns any retrieval or parsing error occurred during filtering.
 10918  func (it *RegistryOwnershipTransferredIterator) Error() error {
 10919  	return it.fail
 10920  }
 10921  
 10922  // Close terminates the iteration process, releasing any pending underlying
 10923  // resources.
 10924  func (it *RegistryOwnershipTransferredIterator) Close() error {
 10925  	it.sub.Unsubscribe()
 10926  	return nil
 10927  }
 10928  
 10929  // RegistryOwnershipTransferred represents a OwnershipTransferred event raised by the Registry contract.
 10930  type RegistryOwnershipTransferred struct {
 10931  	PreviousOwner common.Address
 10932  	NewOwner      common.Address
 10933  	Raw           types.Log // Blockchain specific contextual infos
 10934  }
 10935  
 10936  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10937  //
 10938  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10939  func (_Registry *RegistryFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*RegistryOwnershipTransferredIterator, error) {
 10940  	var previousOwnerRule []interface{}
 10941  	for _, previousOwnerItem := range previousOwner {
 10942  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 10943  	}
 10944  	var newOwnerRule []interface{}
 10945  	for _, newOwnerItem := range newOwner {
 10946  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 10947  	}
 10948  
 10949  	logs, sub, err := _Registry.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 10950  	if err != nil {
 10951  		return nil, err
 10952  	}
 10953  	return &RegistryOwnershipTransferredIterator{contract: _Registry.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 10954  }
 10955  
 10956  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 10957  //
 10958  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 10959  func (_Registry *RegistryFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *RegistryOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 10960  	var previousOwnerRule []interface{}
 10961  	for _, previousOwnerItem := range previousOwner {
 10962  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 10963  	}
 10964  	var newOwnerRule []interface{}
 10965  	for _, newOwnerItem := range newOwner {
 10966  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 10967  	}
 10968  
 10969  	logs, sub, err := _Registry.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 10970  	if err != nil {
 10971  		return nil, err
 10972  	}
 10973  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10974  		defer sub.Unsubscribe()
 10975  		for {
 10976  			select {
 10977  			case log := <-logs:
 10978  				// New log arrived, parse the event and forward to the user
 10979  				event := new(RegistryOwnershipTransferred)
 10980  				if err := _Registry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 10981  					return err
 10982  				}
 10983  				event.Raw = log
 10984  
 10985  				select {
 10986  				case sink <- event:
 10987  				case err := <-sub.Err():
 10988  					return err
 10989  				case <-quit:
 10990  					return nil
 10991  				}
 10992  			case err := <-sub.Err():
 10993  				return err
 10994  			case <-quit:
 10995  				return nil
 10996  			}
 10997  		}
 10998  	}), nil
 10999  }
 11000  
 11001  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11002  //
 11003  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11004  func (_Registry *RegistryFilterer) ParseOwnershipTransferred(log types.Log) (*RegistryOwnershipTransferred, error) {
 11005  	event := new(RegistryOwnershipTransferred)
 11006  	if err := _Registry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 11007  		return nil, err
 11008  	}
 11009  	return event, nil
 11010  }
 11011  
 11012  // RegistryRegisteredIterator is returned from FilterRegistered and is used to iterate over the raw logs and unpacked data for Registered events raised by the Registry contract.
 11013  type RegistryRegisteredIterator struct {
 11014  	Event *RegistryRegistered // Event containing the contract specifics and raw log
 11015  
 11016  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11017  	event    string              // Event name to use for unpacking event data
 11018  
 11019  	logs chan types.Log      // Log channel receiving the found contract events
 11020  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11021  	done bool                // Whether the subscription completed delivering logs
 11022  	fail error               // Occurred error to stop iteration
 11023  }
 11024  
 11025  // Next advances the iterator to the subsequent event, returning whether there
 11026  // are any more events found. In case of a retrieval or parsing error, false is
 11027  // returned and Error() can be queried for the exact failure.
 11028  func (it *RegistryRegisteredIterator) Next() bool {
 11029  	// If the iterator failed, stop iterating
 11030  	if it.fail != nil {
 11031  		return false
 11032  	}
 11033  	// If the iterator completed, deliver directly whatever's available
 11034  	if it.done {
 11035  		select {
 11036  		case log := <-it.logs:
 11037  			it.Event = new(RegistryRegistered)
 11038  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11039  				it.fail = err
 11040  				return false
 11041  			}
 11042  			it.Event.Raw = log
 11043  			return true
 11044  
 11045  		default:
 11046  			return false
 11047  		}
 11048  	}
 11049  	// Iterator still in progress, wait for either a data or an error event
 11050  	select {
 11051  	case log := <-it.logs:
 11052  		it.Event = new(RegistryRegistered)
 11053  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11054  			it.fail = err
 11055  			return false
 11056  		}
 11057  		it.Event.Raw = log
 11058  		return true
 11059  
 11060  	case err := <-it.sub.Err():
 11061  		it.done = true
 11062  		it.fail = err
 11063  		return it.Next()
 11064  	}
 11065  }
 11066  
 11067  // Error returns any retrieval or parsing error occurred during filtering.
 11068  func (it *RegistryRegisteredIterator) Error() error {
 11069  	return it.fail
 11070  }
 11071  
 11072  // Close terminates the iteration process, releasing any pending underlying
 11073  // resources.
 11074  func (it *RegistryRegisteredIterator) Close() error {
 11075  	it.sub.Unsubscribe()
 11076  	return nil
 11077  }
 11078  
 11079  // RegistryRegistered represents a Registered event raised by the Registry contract.
 11080  type RegistryRegistered struct {
 11081  	Name       string
 11082  	Addr       common.Address
 11083  	Activation *big.Int
 11084  	Raw        types.Log // Blockchain specific contextual infos
 11085  }
 11086  
 11087  // FilterRegistered is a free log retrieval operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
 11088  //
 11089  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
 11090  func (_Registry *RegistryFilterer) FilterRegistered(opts *bind.FilterOpts, addr []common.Address, activation []*big.Int) (*RegistryRegisteredIterator, error) {
 11091  	var addrRule []interface{}
 11092  	for _, addrItem := range addr {
 11093  		addrRule = append(addrRule, addrItem)
 11094  	}
 11095  	var activationRule []interface{}
 11096  	for _, activationItem := range activation {
 11097  		activationRule = append(activationRule, activationItem)
 11098  	}
 11099  
 11100  	logs, sub, err := _Registry.contract.FilterLogs(opts, "Registered", addrRule, activationRule)
 11101  	if err != nil {
 11102  		return nil, err
 11103  	}
 11104  	return &RegistryRegisteredIterator{contract: _Registry.contract, event: "Registered", logs: logs, sub: sub}, nil
 11105  }
 11106  
 11107  // WatchRegistered is a free log subscription operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
 11108  //
 11109  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
 11110  func (_Registry *RegistryFilterer) WatchRegistered(opts *bind.WatchOpts, sink chan<- *RegistryRegistered, addr []common.Address, activation []*big.Int) (event.Subscription, error) {
 11111  	var addrRule []interface{}
 11112  	for _, addrItem := range addr {
 11113  		addrRule = append(addrRule, addrItem)
 11114  	}
 11115  	var activationRule []interface{}
 11116  	for _, activationItem := range activation {
 11117  		activationRule = append(activationRule, activationItem)
 11118  	}
 11119  
 11120  	logs, sub, err := _Registry.contract.WatchLogs(opts, "Registered", addrRule, activationRule)
 11121  	if err != nil {
 11122  		return nil, err
 11123  	}
 11124  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11125  		defer sub.Unsubscribe()
 11126  		for {
 11127  			select {
 11128  			case log := <-logs:
 11129  				// New log arrived, parse the event and forward to the user
 11130  				event := new(RegistryRegistered)
 11131  				if err := _Registry.contract.UnpackLog(event, "Registered", log); err != nil {
 11132  					return err
 11133  				}
 11134  				event.Raw = log
 11135  
 11136  				select {
 11137  				case sink <- event:
 11138  				case err := <-sub.Err():
 11139  					return err
 11140  				case <-quit:
 11141  					return nil
 11142  				}
 11143  			case err := <-sub.Err():
 11144  				return err
 11145  			case <-quit:
 11146  				return nil
 11147  			}
 11148  		}
 11149  	}), nil
 11150  }
 11151  
 11152  // ParseRegistered is a log parse operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
 11153  //
 11154  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
 11155  func (_Registry *RegistryFilterer) ParseRegistered(log types.Log) (*RegistryRegistered, error) {
 11156  	event := new(RegistryRegistered)
 11157  	if err := _Registry.contract.UnpackLog(event, "Registered", log); err != nil {
 11158  		return nil, err
 11159  	}
 11160  	return event, nil
 11161  }
 11162  
 11163  // RegistryMockMetaData contains all meta data concerning the RegistryMock contract.
 11164  var RegistryMockMetaData = &bind.MetaData{
 11165  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getActiveAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNames\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getAllRecords\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"internalType\":\"structIRegistry.Record[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"names\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"records\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 11166  	Sigs: map[string]string{
 11167  		"e2693e3f": "getActiveAddr(string)",
 11168  		"fb825e5f": "getAllNames()",
 11169  		"78d573a2": "getAllRecords(string)",
 11170  		"4622ab03": "names(uint256)",
 11171  		"8da5cb5b": "owner()",
 11172  		"3b51650d": "records(string,uint256)",
 11173  		"d393c871": "register(string,address,uint256)",
 11174  		"f2fde38b": "transferOwnership(address)",
 11175  	},
 11176  	Bin: "0x608060405234801561001057600080fd5b50610a30806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063d393c8711161005b578063d393c87114610129578063e2693e3f1461013e578063f2fde38b14610151578063fb825e5f1461018157600080fd5b80633b51650d1461008d5780634622ab03146100c457806378d573a2146100e45780638da5cb5b14610104575b600080fd5b6100a061009b366004610611565b610196565b604080516001600160a01b0390931683526020830191909152015b60405180910390f35b6100d76100d2366004610656565b6101eb565b6040516100bb91906106bf565b6100f76100f23660046106d9565b610297565b6040516100bb9190610716565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016100bb565b61013c61013736600461078a565b61032a565b005b61011161014c3660046106d9565b6103fd565b61013c61015f3660046107e1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610189610495565b6040516100bb91906107fc565b815160208184018101805160008252928201918501919091209190528054829081106101c157600080fd5b6000918252602090912060029091020180546001909101546001600160a01b039091169250905082565b600181815481106101fb57600080fd5b9060005260206000200160009150905080546102169061085e565b80601f01602080910402602001604051908101604052809291908181526020018280546102429061085e565b801561028f5780601f106102645761010080835404028352916020019161028f565b820191906000526020600020905b81548152906001019060200180831161027257829003601f168201915b505050505081565b60606000826040516102a99190610892565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b8282101561031f576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016102d7565b505050509050919050565b60008360405161033a9190610892565b9081526040519081900360200190205460000361038e576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60161038c84826108fd565b505b60008360405161039e9190610892565b90815260408051602092819003830181208183019092526001600160a01b039485168152828101938452815460018082018455600093845293909220905160029092020180546001600160a01b03191691909416178355905191015550565b6000806000836040516104109190610892565b90815260405190819003602001902054905060008190036104345750600092915050565b6000836040516104449190610892565b90815260405190819003602001902061045e6001836109bd565b8154811061046e5761046e6109e4565b60009182526020909120600290910201546001600160a01b03169392505050565b50919050565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156105655783829060005260206000200180546104d89061085e565b80601f01602080910402602001604051908101604052809291908181526020018280546105049061085e565b80156105515780601f1061052657610100808354040283529160200191610551565b820191906000526020600020905b81548152906001019060200180831161053457829003601f168201915b5050505050815260200190600101906104b9565b50505050905090565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261059557600080fd5b813567ffffffffffffffff808211156105b0576105b061056e565b604051601f8301601f19908116603f011681019082821181831017156105d8576105d861056e565b816040528381528660208588010111156105f157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561062457600080fd5b823567ffffffffffffffff81111561063b57600080fd5b61064785828601610584565b95602094909401359450505050565b60006020828403121561066857600080fd5b5035919050565b60005b8381101561068a578181015183820152602001610672565b50506000910152565b600081518084526106ab81602086016020860161066f565b601f01601f19169290920160200192915050565b6020815260006106d26020830184610693565b9392505050565b6000602082840312156106eb57600080fd5b813567ffffffffffffffff81111561070257600080fd5b61070e84828501610584565b949350505050565b602080825282518282018190526000919060409081850190868401855b8281101561076157815180516001600160a01b03168552860151868501529284019290850190600101610733565b5091979650505050505050565b80356001600160a01b038116811461078557600080fd5b919050565b60008060006060848603121561079f57600080fd5b833567ffffffffffffffff8111156107b657600080fd5b6107c286828701610584565b9350506107d16020850161076e565b9150604084013590509250925092565b6000602082840312156107f357600080fd5b6106d28261076e565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561085157603f1988860301845261083f858351610693565b94509285019290850190600101610823565b5092979650505050505050565b600181811c9082168061087257607f821691505b60208210810361048f57634e487b7160e01b600052602260045260246000fd5b600082516108a481846020870161066f565b9190910192915050565b601f8211156108f857600081815260208120601f850160051c810160208610156108d55750805b601f850160051c820191505b818110156108f4578281556001016108e1565b5050505b505050565b815167ffffffffffffffff8111156109175761091761056e565b61092b81610925845461085e565b846108ae565b602080601f83116001811461096057600084156109485750858301515b600019600386901b1c1916600185901b1785556108f4565b600085815260208120601f198616915b8281101561098f57888601518255948401946001909101908401610970565b50858210156109ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156109de57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220055dcb65f93dbbcf001a6a6f0c053ff5f256e00e0debe154e666efbf0caa626364736f6c63430008130033",
 11177  }
 11178  
 11179  // RegistryMockABI is the input ABI used to generate the binding from.
 11180  // Deprecated: Use RegistryMockMetaData.ABI instead.
 11181  var RegistryMockABI = RegistryMockMetaData.ABI
 11182  
 11183  // RegistryMockBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 11184  const RegistryMockBinRuntime = `608060405234801561001057600080fd5b50600436106100885760003560e01c8063d393c8711161005b578063d393c87114610129578063e2693e3f1461013e578063f2fde38b14610151578063fb825e5f1461018157600080fd5b80633b51650d1461008d5780634622ab03146100c457806378d573a2146100e45780638da5cb5b14610104575b600080fd5b6100a061009b366004610611565b610196565b604080516001600160a01b0390931683526020830191909152015b60405180910390f35b6100d76100d2366004610656565b6101eb565b6040516100bb91906106bf565b6100f76100f23660046106d9565b610297565b6040516100bb9190610716565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016100bb565b61013c61013736600461078a565b61032a565b005b61011161014c3660046106d9565b6103fd565b61013c61015f3660046107e1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610189610495565b6040516100bb91906107fc565b815160208184018101805160008252928201918501919091209190528054829081106101c157600080fd5b6000918252602090912060029091020180546001909101546001600160a01b039091169250905082565b600181815481106101fb57600080fd5b9060005260206000200160009150905080546102169061085e565b80601f01602080910402602001604051908101604052809291908181526020018280546102429061085e565b801561028f5780601f106102645761010080835404028352916020019161028f565b820191906000526020600020905b81548152906001019060200180831161027257829003601f168201915b505050505081565b60606000826040516102a99190610892565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b8282101561031f576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016102d7565b505050509050919050565b60008360405161033a9190610892565b9081526040519081900360200190205460000361038e576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60161038c84826108fd565b505b60008360405161039e9190610892565b90815260408051602092819003830181208183019092526001600160a01b039485168152828101938452815460018082018455600093845293909220905160029092020180546001600160a01b03191691909416178355905191015550565b6000806000836040516104109190610892565b90815260405190819003602001902054905060008190036104345750600092915050565b6000836040516104449190610892565b90815260405190819003602001902061045e6001836109bd565b8154811061046e5761046e6109e4565b60009182526020909120600290910201546001600160a01b03169392505050565b50919050565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156105655783829060005260206000200180546104d89061085e565b80601f01602080910402602001604051908101604052809291908181526020018280546105049061085e565b80156105515780601f1061052657610100808354040283529160200191610551565b820191906000526020600020905b81548152906001019060200180831161053457829003601f168201915b5050505050815260200190600101906104b9565b50505050905090565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261059557600080fd5b813567ffffffffffffffff808211156105b0576105b061056e565b604051601f8301601f19908116603f011681019082821181831017156105d8576105d861056e565b816040528381528660208588010111156105f157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561062457600080fd5b823567ffffffffffffffff81111561063b57600080fd5b61064785828601610584565b95602094909401359450505050565b60006020828403121561066857600080fd5b5035919050565b60005b8381101561068a578181015183820152602001610672565b50506000910152565b600081518084526106ab81602086016020860161066f565b601f01601f19169290920160200192915050565b6020815260006106d26020830184610693565b9392505050565b6000602082840312156106eb57600080fd5b813567ffffffffffffffff81111561070257600080fd5b61070e84828501610584565b949350505050565b602080825282518282018190526000919060409081850190868401855b8281101561076157815180516001600160a01b03168552860151868501529284019290850190600101610733565b5091979650505050505050565b80356001600160a01b038116811461078557600080fd5b919050565b60008060006060848603121561079f57600080fd5b833567ffffffffffffffff8111156107b657600080fd5b6107c286828701610584565b9350506107d16020850161076e565b9150604084013590509250925092565b6000602082840312156107f357600080fd5b6106d28261076e565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561085157603f1988860301845261083f858351610693565b94509285019290850190600101610823565b5092979650505050505050565b600181811c9082168061087257607f821691505b60208210810361048f57634e487b7160e01b600052602260045260246000fd5b600082516108a481846020870161066f565b9190910192915050565b601f8211156108f857600081815260208120601f850160051c810160208610156108d55750805b601f850160051c820191505b818110156108f4578281556001016108e1565b5050505b505050565b815167ffffffffffffffff8111156109175761091761056e565b61092b81610925845461085e565b846108ae565b602080601f83116001811461096057600084156109485750858301515b600019600386901b1c1916600185901b1785556108f4565b600085815260208120601f198616915b8281101561098f57888601518255948401946001909101908401610970565b50858210156109ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156109de57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220055dcb65f93dbbcf001a6a6f0c053ff5f256e00e0debe154e666efbf0caa626364736f6c63430008130033`
 11185  
 11186  // RegistryMockFuncSigs maps the 4-byte function signature to its string representation.
 11187  // Deprecated: Use RegistryMockMetaData.Sigs instead.
 11188  var RegistryMockFuncSigs = RegistryMockMetaData.Sigs
 11189  
 11190  // RegistryMockBin is the compiled bytecode used for deploying new contracts.
 11191  // Deprecated: Use RegistryMockMetaData.Bin instead.
 11192  var RegistryMockBin = RegistryMockMetaData.Bin
 11193  
 11194  // DeployRegistryMock deploys a new Klaytn contract, binding an instance of RegistryMock to it.
 11195  func DeployRegistryMock(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RegistryMock, error) {
 11196  	parsed, err := RegistryMockMetaData.GetAbi()
 11197  	if err != nil {
 11198  		return common.Address{}, nil, nil, err
 11199  	}
 11200  	if parsed == nil {
 11201  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 11202  	}
 11203  
 11204  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RegistryMockBin), backend)
 11205  	if err != nil {
 11206  		return common.Address{}, nil, nil, err
 11207  	}
 11208  	return address, tx, &RegistryMock{RegistryMockCaller: RegistryMockCaller{contract: contract}, RegistryMockTransactor: RegistryMockTransactor{contract: contract}, RegistryMockFilterer: RegistryMockFilterer{contract: contract}}, nil
 11209  }
 11210  
 11211  // RegistryMock is an auto generated Go binding around a Klaytn contract.
 11212  type RegistryMock struct {
 11213  	RegistryMockCaller     // Read-only binding to the contract
 11214  	RegistryMockTransactor // Write-only binding to the contract
 11215  	RegistryMockFilterer   // Log filterer for contract events
 11216  }
 11217  
 11218  // RegistryMockCaller is an auto generated read-only Go binding around a Klaytn contract.
 11219  type RegistryMockCaller struct {
 11220  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11221  }
 11222  
 11223  // RegistryMockTransactor is an auto generated write-only Go binding around a Klaytn contract.
 11224  type RegistryMockTransactor struct {
 11225  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11226  }
 11227  
 11228  // RegistryMockFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 11229  type RegistryMockFilterer struct {
 11230  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11231  }
 11232  
 11233  // RegistryMockSession is an auto generated Go binding around a Klaytn contract,
 11234  // with pre-set call and transact options.
 11235  type RegistryMockSession struct {
 11236  	Contract     *RegistryMock     // Generic contract binding to set the session for
 11237  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11238  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11239  }
 11240  
 11241  // RegistryMockCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 11242  // with pre-set call options.
 11243  type RegistryMockCallerSession struct {
 11244  	Contract *RegistryMockCaller // Generic contract caller binding to set the session for
 11245  	CallOpts bind.CallOpts       // Call options to use throughout this session
 11246  }
 11247  
 11248  // RegistryMockTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 11249  // with pre-set transact options.
 11250  type RegistryMockTransactorSession struct {
 11251  	Contract     *RegistryMockTransactor // Generic contract transactor binding to set the session for
 11252  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
 11253  }
 11254  
 11255  // RegistryMockRaw is an auto generated low-level Go binding around a Klaytn contract.
 11256  type RegistryMockRaw struct {
 11257  	Contract *RegistryMock // Generic contract binding to access the raw methods on
 11258  }
 11259  
 11260  // RegistryMockCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 11261  type RegistryMockCallerRaw struct {
 11262  	Contract *RegistryMockCaller // Generic read-only contract binding to access the raw methods on
 11263  }
 11264  
 11265  // RegistryMockTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 11266  type RegistryMockTransactorRaw struct {
 11267  	Contract *RegistryMockTransactor // Generic write-only contract binding to access the raw methods on
 11268  }
 11269  
 11270  // NewRegistryMock creates a new instance of RegistryMock, bound to a specific deployed contract.
 11271  func NewRegistryMock(address common.Address, backend bind.ContractBackend) (*RegistryMock, error) {
 11272  	contract, err := bindRegistryMock(address, backend, backend, backend)
 11273  	if err != nil {
 11274  		return nil, err
 11275  	}
 11276  	return &RegistryMock{RegistryMockCaller: RegistryMockCaller{contract: contract}, RegistryMockTransactor: RegistryMockTransactor{contract: contract}, RegistryMockFilterer: RegistryMockFilterer{contract: contract}}, nil
 11277  }
 11278  
 11279  // NewRegistryMockCaller creates a new read-only instance of RegistryMock, bound to a specific deployed contract.
 11280  func NewRegistryMockCaller(address common.Address, caller bind.ContractCaller) (*RegistryMockCaller, error) {
 11281  	contract, err := bindRegistryMock(address, caller, nil, nil)
 11282  	if err != nil {
 11283  		return nil, err
 11284  	}
 11285  	return &RegistryMockCaller{contract: contract}, nil
 11286  }
 11287  
 11288  // NewRegistryMockTransactor creates a new write-only instance of RegistryMock, bound to a specific deployed contract.
 11289  func NewRegistryMockTransactor(address common.Address, transactor bind.ContractTransactor) (*RegistryMockTransactor, error) {
 11290  	contract, err := bindRegistryMock(address, nil, transactor, nil)
 11291  	if err != nil {
 11292  		return nil, err
 11293  	}
 11294  	return &RegistryMockTransactor{contract: contract}, nil
 11295  }
 11296  
 11297  // NewRegistryMockFilterer creates a new log filterer instance of RegistryMock, bound to a specific deployed contract.
 11298  func NewRegistryMockFilterer(address common.Address, filterer bind.ContractFilterer) (*RegistryMockFilterer, error) {
 11299  	contract, err := bindRegistryMock(address, nil, nil, filterer)
 11300  	if err != nil {
 11301  		return nil, err
 11302  	}
 11303  	return &RegistryMockFilterer{contract: contract}, nil
 11304  }
 11305  
 11306  // bindRegistryMock binds a generic wrapper to an already deployed contract.
 11307  func bindRegistryMock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11308  	parsed, err := RegistryMockMetaData.GetAbi()
 11309  	if err != nil {
 11310  		return nil, err
 11311  	}
 11312  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 11313  }
 11314  
 11315  // Call invokes the (constant) contract method with params as input values and
 11316  // sets the output to result. The result type might be a single field for simple
 11317  // returns, a slice of interfaces for anonymous returns and a struct for named
 11318  // returns.
 11319  func (_RegistryMock *RegistryMockRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11320  	return _RegistryMock.Contract.RegistryMockCaller.contract.Call(opts, result, method, params...)
 11321  }
 11322  
 11323  // Transfer initiates a plain transaction to move funds to the contract, calling
 11324  // its default method if one is available.
 11325  func (_RegistryMock *RegistryMockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11326  	return _RegistryMock.Contract.RegistryMockTransactor.contract.Transfer(opts)
 11327  }
 11328  
 11329  // Transact invokes the (paid) contract method with params as input values.
 11330  func (_RegistryMock *RegistryMockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11331  	return _RegistryMock.Contract.RegistryMockTransactor.contract.Transact(opts, method, params...)
 11332  }
 11333  
 11334  // Call invokes the (constant) contract method with params as input values and
 11335  // sets the output to result. The result type might be a single field for simple
 11336  // returns, a slice of interfaces for anonymous returns and a struct for named
 11337  // returns.
 11338  func (_RegistryMock *RegistryMockCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11339  	return _RegistryMock.Contract.contract.Call(opts, result, method, params...)
 11340  }
 11341  
 11342  // Transfer initiates a plain transaction to move funds to the contract, calling
 11343  // its default method if one is available.
 11344  func (_RegistryMock *RegistryMockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11345  	return _RegistryMock.Contract.contract.Transfer(opts)
 11346  }
 11347  
 11348  // Transact invokes the (paid) contract method with params as input values.
 11349  func (_RegistryMock *RegistryMockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11350  	return _RegistryMock.Contract.contract.Transact(opts, method, params...)
 11351  }
 11352  
 11353  // GetActiveAddr is a free data retrieval call binding the contract method 0xe2693e3f.
 11354  //
 11355  // Solidity: function getActiveAddr(string name) view returns(address)
 11356  func (_RegistryMock *RegistryMockCaller) GetActiveAddr(opts *bind.CallOpts, name string) (common.Address, error) {
 11357  	var out []interface{}
 11358  	err := _RegistryMock.contract.Call(opts, &out, "getActiveAddr", name)
 11359  	if err != nil {
 11360  		return *new(common.Address), err
 11361  	}
 11362  
 11363  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11364  
 11365  	return out0, err
 11366  }
 11367  
 11368  // GetActiveAddr is a free data retrieval call binding the contract method 0xe2693e3f.
 11369  //
 11370  // Solidity: function getActiveAddr(string name) view returns(address)
 11371  func (_RegistryMock *RegistryMockSession) GetActiveAddr(name string) (common.Address, error) {
 11372  	return _RegistryMock.Contract.GetActiveAddr(&_RegistryMock.CallOpts, name)
 11373  }
 11374  
 11375  // GetActiveAddr is a free data retrieval call binding the contract method 0xe2693e3f.
 11376  //
 11377  // Solidity: function getActiveAddr(string name) view returns(address)
 11378  func (_RegistryMock *RegistryMockCallerSession) GetActiveAddr(name string) (common.Address, error) {
 11379  	return _RegistryMock.Contract.GetActiveAddr(&_RegistryMock.CallOpts, name)
 11380  }
 11381  
 11382  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
 11383  //
 11384  // Solidity: function getAllNames() view returns(string[])
 11385  func (_RegistryMock *RegistryMockCaller) GetAllNames(opts *bind.CallOpts) ([]string, error) {
 11386  	var out []interface{}
 11387  	err := _RegistryMock.contract.Call(opts, &out, "getAllNames")
 11388  	if err != nil {
 11389  		return *new([]string), err
 11390  	}
 11391  
 11392  	out0 := *abi.ConvertType(out[0], new([]string)).(*[]string)
 11393  
 11394  	return out0, err
 11395  }
 11396  
 11397  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
 11398  //
 11399  // Solidity: function getAllNames() view returns(string[])
 11400  func (_RegistryMock *RegistryMockSession) GetAllNames() ([]string, error) {
 11401  	return _RegistryMock.Contract.GetAllNames(&_RegistryMock.CallOpts)
 11402  }
 11403  
 11404  // GetAllNames is a free data retrieval call binding the contract method 0xfb825e5f.
 11405  //
 11406  // Solidity: function getAllNames() view returns(string[])
 11407  func (_RegistryMock *RegistryMockCallerSession) GetAllNames() ([]string, error) {
 11408  	return _RegistryMock.Contract.GetAllNames(&_RegistryMock.CallOpts)
 11409  }
 11410  
 11411  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
 11412  //
 11413  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
 11414  func (_RegistryMock *RegistryMockCaller) GetAllRecords(opts *bind.CallOpts, name string) ([]IRegistryRecord, error) {
 11415  	var out []interface{}
 11416  	err := _RegistryMock.contract.Call(opts, &out, "getAllRecords", name)
 11417  	if err != nil {
 11418  		return *new([]IRegistryRecord), err
 11419  	}
 11420  
 11421  	out0 := *abi.ConvertType(out[0], new([]IRegistryRecord)).(*[]IRegistryRecord)
 11422  
 11423  	return out0, err
 11424  }
 11425  
 11426  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
 11427  //
 11428  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
 11429  func (_RegistryMock *RegistryMockSession) GetAllRecords(name string) ([]IRegistryRecord, error) {
 11430  	return _RegistryMock.Contract.GetAllRecords(&_RegistryMock.CallOpts, name)
 11431  }
 11432  
 11433  // GetAllRecords is a free data retrieval call binding the contract method 0x78d573a2.
 11434  //
 11435  // Solidity: function getAllRecords(string name) view returns((address,uint256)[])
 11436  func (_RegistryMock *RegistryMockCallerSession) GetAllRecords(name string) ([]IRegistryRecord, error) {
 11437  	return _RegistryMock.Contract.GetAllRecords(&_RegistryMock.CallOpts, name)
 11438  }
 11439  
 11440  // Names is a free data retrieval call binding the contract method 0x4622ab03.
 11441  //
 11442  // Solidity: function names(uint256 ) view returns(string)
 11443  func (_RegistryMock *RegistryMockCaller) Names(opts *bind.CallOpts, arg0 *big.Int) (string, error) {
 11444  	var out []interface{}
 11445  	err := _RegistryMock.contract.Call(opts, &out, "names", arg0)
 11446  	if err != nil {
 11447  		return *new(string), err
 11448  	}
 11449  
 11450  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 11451  
 11452  	return out0, err
 11453  }
 11454  
 11455  // Names is a free data retrieval call binding the contract method 0x4622ab03.
 11456  //
 11457  // Solidity: function names(uint256 ) view returns(string)
 11458  func (_RegistryMock *RegistryMockSession) Names(arg0 *big.Int) (string, error) {
 11459  	return _RegistryMock.Contract.Names(&_RegistryMock.CallOpts, arg0)
 11460  }
 11461  
 11462  // Names is a free data retrieval call binding the contract method 0x4622ab03.
 11463  //
 11464  // Solidity: function names(uint256 ) view returns(string)
 11465  func (_RegistryMock *RegistryMockCallerSession) Names(arg0 *big.Int) (string, error) {
 11466  	return _RegistryMock.Contract.Names(&_RegistryMock.CallOpts, arg0)
 11467  }
 11468  
 11469  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 11470  //
 11471  // Solidity: function owner() view returns(address)
 11472  func (_RegistryMock *RegistryMockCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 11473  	var out []interface{}
 11474  	err := _RegistryMock.contract.Call(opts, &out, "owner")
 11475  	if err != nil {
 11476  		return *new(common.Address), err
 11477  	}
 11478  
 11479  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11480  
 11481  	return out0, err
 11482  }
 11483  
 11484  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 11485  //
 11486  // Solidity: function owner() view returns(address)
 11487  func (_RegistryMock *RegistryMockSession) Owner() (common.Address, error) {
 11488  	return _RegistryMock.Contract.Owner(&_RegistryMock.CallOpts)
 11489  }
 11490  
 11491  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 11492  //
 11493  // Solidity: function owner() view returns(address)
 11494  func (_RegistryMock *RegistryMockCallerSession) Owner() (common.Address, error) {
 11495  	return _RegistryMock.Contract.Owner(&_RegistryMock.CallOpts)
 11496  }
 11497  
 11498  // Records is a free data retrieval call binding the contract method 0x3b51650d.
 11499  //
 11500  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
 11501  func (_RegistryMock *RegistryMockCaller) Records(opts *bind.CallOpts, arg0 string, arg1 *big.Int) (struct {
 11502  	Addr       common.Address
 11503  	Activation *big.Int
 11504  }, error,
 11505  ) {
 11506  	var out []interface{}
 11507  	err := _RegistryMock.contract.Call(opts, &out, "records", arg0, arg1)
 11508  
 11509  	outstruct := new(struct {
 11510  		Addr       common.Address
 11511  		Activation *big.Int
 11512  	})
 11513  
 11514  	outstruct.Addr = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11515  	outstruct.Activation = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
 11516  	return *outstruct, err
 11517  }
 11518  
 11519  // Records is a free data retrieval call binding the contract method 0x3b51650d.
 11520  //
 11521  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
 11522  func (_RegistryMock *RegistryMockSession) Records(arg0 string, arg1 *big.Int) (struct {
 11523  	Addr       common.Address
 11524  	Activation *big.Int
 11525  }, error,
 11526  ) {
 11527  	return _RegistryMock.Contract.Records(&_RegistryMock.CallOpts, arg0, arg1)
 11528  }
 11529  
 11530  // Records is a free data retrieval call binding the contract method 0x3b51650d.
 11531  //
 11532  // Solidity: function records(string , uint256 ) view returns(address addr, uint256 activation)
 11533  func (_RegistryMock *RegistryMockCallerSession) Records(arg0 string, arg1 *big.Int) (struct {
 11534  	Addr       common.Address
 11535  	Activation *big.Int
 11536  }, error,
 11537  ) {
 11538  	return _RegistryMock.Contract.Records(&_RegistryMock.CallOpts, arg0, arg1)
 11539  }
 11540  
 11541  // Register is a paid mutator transaction binding the contract method 0xd393c871.
 11542  //
 11543  // Solidity: function register(string name, address addr, uint256 activation) returns()
 11544  func (_RegistryMock *RegistryMockTransactor) Register(opts *bind.TransactOpts, name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
 11545  	return _RegistryMock.contract.Transact(opts, "register", name, addr, activation)
 11546  }
 11547  
 11548  // Register is a paid mutator transaction binding the contract method 0xd393c871.
 11549  //
 11550  // Solidity: function register(string name, address addr, uint256 activation) returns()
 11551  func (_RegistryMock *RegistryMockSession) Register(name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
 11552  	return _RegistryMock.Contract.Register(&_RegistryMock.TransactOpts, name, addr, activation)
 11553  }
 11554  
 11555  // Register is a paid mutator transaction binding the contract method 0xd393c871.
 11556  //
 11557  // Solidity: function register(string name, address addr, uint256 activation) returns()
 11558  func (_RegistryMock *RegistryMockTransactorSession) Register(name string, addr common.Address, activation *big.Int) (*types.Transaction, error) {
 11559  	return _RegistryMock.Contract.Register(&_RegistryMock.TransactOpts, name, addr, activation)
 11560  }
 11561  
 11562  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 11563  //
 11564  // Solidity: function transferOwnership(address newOwner) returns()
 11565  func (_RegistryMock *RegistryMockTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 11566  	return _RegistryMock.contract.Transact(opts, "transferOwnership", newOwner)
 11567  }
 11568  
 11569  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 11570  //
 11571  // Solidity: function transferOwnership(address newOwner) returns()
 11572  func (_RegistryMock *RegistryMockSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 11573  	return _RegistryMock.Contract.TransferOwnership(&_RegistryMock.TransactOpts, newOwner)
 11574  }
 11575  
 11576  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 11577  //
 11578  // Solidity: function transferOwnership(address newOwner) returns()
 11579  func (_RegistryMock *RegistryMockTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 11580  	return _RegistryMock.Contract.TransferOwnership(&_RegistryMock.TransactOpts, newOwner)
 11581  }
 11582  
 11583  // RegistryMockOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the RegistryMock contract.
 11584  type RegistryMockOwnershipTransferredIterator struct {
 11585  	Event *RegistryMockOwnershipTransferred // Event containing the contract specifics and raw log
 11586  
 11587  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11588  	event    string              // Event name to use for unpacking event data
 11589  
 11590  	logs chan types.Log      // Log channel receiving the found contract events
 11591  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11592  	done bool                // Whether the subscription completed delivering logs
 11593  	fail error               // Occurred error to stop iteration
 11594  }
 11595  
 11596  // Next advances the iterator to the subsequent event, returning whether there
 11597  // are any more events found. In case of a retrieval or parsing error, false is
 11598  // returned and Error() can be queried for the exact failure.
 11599  func (it *RegistryMockOwnershipTransferredIterator) Next() bool {
 11600  	// If the iterator failed, stop iterating
 11601  	if it.fail != nil {
 11602  		return false
 11603  	}
 11604  	// If the iterator completed, deliver directly whatever's available
 11605  	if it.done {
 11606  		select {
 11607  		case log := <-it.logs:
 11608  			it.Event = new(RegistryMockOwnershipTransferred)
 11609  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11610  				it.fail = err
 11611  				return false
 11612  			}
 11613  			it.Event.Raw = log
 11614  			return true
 11615  
 11616  		default:
 11617  			return false
 11618  		}
 11619  	}
 11620  	// Iterator still in progress, wait for either a data or an error event
 11621  	select {
 11622  	case log := <-it.logs:
 11623  		it.Event = new(RegistryMockOwnershipTransferred)
 11624  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11625  			it.fail = err
 11626  			return false
 11627  		}
 11628  		it.Event.Raw = log
 11629  		return true
 11630  
 11631  	case err := <-it.sub.Err():
 11632  		it.done = true
 11633  		it.fail = err
 11634  		return it.Next()
 11635  	}
 11636  }
 11637  
 11638  // Error returns any retrieval or parsing error occurred during filtering.
 11639  func (it *RegistryMockOwnershipTransferredIterator) Error() error {
 11640  	return it.fail
 11641  }
 11642  
 11643  // Close terminates the iteration process, releasing any pending underlying
 11644  // resources.
 11645  func (it *RegistryMockOwnershipTransferredIterator) Close() error {
 11646  	it.sub.Unsubscribe()
 11647  	return nil
 11648  }
 11649  
 11650  // RegistryMockOwnershipTransferred represents a OwnershipTransferred event raised by the RegistryMock contract.
 11651  type RegistryMockOwnershipTransferred struct {
 11652  	PreviousOwner common.Address
 11653  	NewOwner      common.Address
 11654  	Raw           types.Log // Blockchain specific contextual infos
 11655  }
 11656  
 11657  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11658  //
 11659  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11660  func (_RegistryMock *RegistryMockFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*RegistryMockOwnershipTransferredIterator, error) {
 11661  	var previousOwnerRule []interface{}
 11662  	for _, previousOwnerItem := range previousOwner {
 11663  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 11664  	}
 11665  	var newOwnerRule []interface{}
 11666  	for _, newOwnerItem := range newOwner {
 11667  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 11668  	}
 11669  
 11670  	logs, sub, err := _RegistryMock.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 11671  	if err != nil {
 11672  		return nil, err
 11673  	}
 11674  	return &RegistryMockOwnershipTransferredIterator{contract: _RegistryMock.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 11675  }
 11676  
 11677  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11678  //
 11679  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11680  func (_RegistryMock *RegistryMockFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *RegistryMockOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 11681  	var previousOwnerRule []interface{}
 11682  	for _, previousOwnerItem := range previousOwner {
 11683  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 11684  	}
 11685  	var newOwnerRule []interface{}
 11686  	for _, newOwnerItem := range newOwner {
 11687  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 11688  	}
 11689  
 11690  	logs, sub, err := _RegistryMock.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 11691  	if err != nil {
 11692  		return nil, err
 11693  	}
 11694  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11695  		defer sub.Unsubscribe()
 11696  		for {
 11697  			select {
 11698  			case log := <-logs:
 11699  				// New log arrived, parse the event and forward to the user
 11700  				event := new(RegistryMockOwnershipTransferred)
 11701  				if err := _RegistryMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 11702  					return err
 11703  				}
 11704  				event.Raw = log
 11705  
 11706  				select {
 11707  				case sink <- event:
 11708  				case err := <-sub.Err():
 11709  					return err
 11710  				case <-quit:
 11711  					return nil
 11712  				}
 11713  			case err := <-sub.Err():
 11714  				return err
 11715  			case <-quit:
 11716  				return nil
 11717  			}
 11718  		}
 11719  	}), nil
 11720  }
 11721  
 11722  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11723  //
 11724  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11725  func (_RegistryMock *RegistryMockFilterer) ParseOwnershipTransferred(log types.Log) (*RegistryMockOwnershipTransferred, error) {
 11726  	event := new(RegistryMockOwnershipTransferred)
 11727  	if err := _RegistryMock.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 11728  		return nil, err
 11729  	}
 11730  	return event, nil
 11731  }
 11732  
 11733  // RegistryMockRegisteredIterator is returned from FilterRegistered and is used to iterate over the raw logs and unpacked data for Registered events raised by the RegistryMock contract.
 11734  type RegistryMockRegisteredIterator struct {
 11735  	Event *RegistryMockRegistered // Event containing the contract specifics and raw log
 11736  
 11737  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11738  	event    string              // Event name to use for unpacking event data
 11739  
 11740  	logs chan types.Log      // Log channel receiving the found contract events
 11741  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11742  	done bool                // Whether the subscription completed delivering logs
 11743  	fail error               // Occurred error to stop iteration
 11744  }
 11745  
 11746  // Next advances the iterator to the subsequent event, returning whether there
 11747  // are any more events found. In case of a retrieval or parsing error, false is
 11748  // returned and Error() can be queried for the exact failure.
 11749  func (it *RegistryMockRegisteredIterator) Next() bool {
 11750  	// If the iterator failed, stop iterating
 11751  	if it.fail != nil {
 11752  		return false
 11753  	}
 11754  	// If the iterator completed, deliver directly whatever's available
 11755  	if it.done {
 11756  		select {
 11757  		case log := <-it.logs:
 11758  			it.Event = new(RegistryMockRegistered)
 11759  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11760  				it.fail = err
 11761  				return false
 11762  			}
 11763  			it.Event.Raw = log
 11764  			return true
 11765  
 11766  		default:
 11767  			return false
 11768  		}
 11769  	}
 11770  	// Iterator still in progress, wait for either a data or an error event
 11771  	select {
 11772  	case log := <-it.logs:
 11773  		it.Event = new(RegistryMockRegistered)
 11774  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11775  			it.fail = err
 11776  			return false
 11777  		}
 11778  		it.Event.Raw = log
 11779  		return true
 11780  
 11781  	case err := <-it.sub.Err():
 11782  		it.done = true
 11783  		it.fail = err
 11784  		return it.Next()
 11785  	}
 11786  }
 11787  
 11788  // Error returns any retrieval or parsing error occurred during filtering.
 11789  func (it *RegistryMockRegisteredIterator) Error() error {
 11790  	return it.fail
 11791  }
 11792  
 11793  // Close terminates the iteration process, releasing any pending underlying
 11794  // resources.
 11795  func (it *RegistryMockRegisteredIterator) Close() error {
 11796  	it.sub.Unsubscribe()
 11797  	return nil
 11798  }
 11799  
 11800  // RegistryMockRegistered represents a Registered event raised by the RegistryMock contract.
 11801  type RegistryMockRegistered struct {
 11802  	Name       string
 11803  	Addr       common.Address
 11804  	Activation *big.Int
 11805  	Raw        types.Log // Blockchain specific contextual infos
 11806  }
 11807  
 11808  // FilterRegistered is a free log retrieval operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
 11809  //
 11810  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
 11811  func (_RegistryMock *RegistryMockFilterer) FilterRegistered(opts *bind.FilterOpts, addr []common.Address, activation []*big.Int) (*RegistryMockRegisteredIterator, error) {
 11812  	var addrRule []interface{}
 11813  	for _, addrItem := range addr {
 11814  		addrRule = append(addrRule, addrItem)
 11815  	}
 11816  	var activationRule []interface{}
 11817  	for _, activationItem := range activation {
 11818  		activationRule = append(activationRule, activationItem)
 11819  	}
 11820  
 11821  	logs, sub, err := _RegistryMock.contract.FilterLogs(opts, "Registered", addrRule, activationRule)
 11822  	if err != nil {
 11823  		return nil, err
 11824  	}
 11825  	return &RegistryMockRegisteredIterator{contract: _RegistryMock.contract, event: "Registered", logs: logs, sub: sub}, nil
 11826  }
 11827  
 11828  // WatchRegistered is a free log subscription operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
 11829  //
 11830  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
 11831  func (_RegistryMock *RegistryMockFilterer) WatchRegistered(opts *bind.WatchOpts, sink chan<- *RegistryMockRegistered, addr []common.Address, activation []*big.Int) (event.Subscription, error) {
 11832  	var addrRule []interface{}
 11833  	for _, addrItem := range addr {
 11834  		addrRule = append(addrRule, addrItem)
 11835  	}
 11836  	var activationRule []interface{}
 11837  	for _, activationItem := range activation {
 11838  		activationRule = append(activationRule, activationItem)
 11839  	}
 11840  
 11841  	logs, sub, err := _RegistryMock.contract.WatchLogs(opts, "Registered", addrRule, activationRule)
 11842  	if err != nil {
 11843  		return nil, err
 11844  	}
 11845  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11846  		defer sub.Unsubscribe()
 11847  		for {
 11848  			select {
 11849  			case log := <-logs:
 11850  				// New log arrived, parse the event and forward to the user
 11851  				event := new(RegistryMockRegistered)
 11852  				if err := _RegistryMock.contract.UnpackLog(event, "Registered", log); err != nil {
 11853  					return err
 11854  				}
 11855  				event.Raw = log
 11856  
 11857  				select {
 11858  				case sink <- event:
 11859  				case err := <-sub.Err():
 11860  					return err
 11861  				case <-quit:
 11862  					return nil
 11863  				}
 11864  			case err := <-sub.Err():
 11865  				return err
 11866  			case <-quit:
 11867  				return nil
 11868  			}
 11869  		}
 11870  	}), nil
 11871  }
 11872  
 11873  // ParseRegistered is a log parse operation binding the contract event 0x142e1fdac7ecccbc62af925f0b4039db26847b625602e56b1421dfbc8a0e4f30.
 11874  //
 11875  // Solidity: event Registered(string name, address indexed addr, uint256 indexed activation)
 11876  func (_RegistryMock *RegistryMockFilterer) ParseRegistered(log types.Log) (*RegistryMockRegistered, error) {
 11877  	event := new(RegistryMockRegistered)
 11878  	if err := _RegistryMock.contract.UnpackLog(event, "Registered", log); err != nil {
 11879  		return nil, err
 11880  	}
 11881  	return event, nil
 11882  }
 11883  
 11884  // StorageSlotMetaData contains all meta data concerning the StorageSlot contract.
 11885  var StorageSlotMetaData = &bind.MetaData{
 11886  	ABI: "[]",
 11887  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061ca98bd9a9672bf10c068dcf42a45d13fc17620bb619c26bdf064388a883db964736f6c63430008130033",
 11888  }
 11889  
 11890  // StorageSlotABI is the input ABI used to generate the binding from.
 11891  // Deprecated: Use StorageSlotMetaData.ABI instead.
 11892  var StorageSlotABI = StorageSlotMetaData.ABI
 11893  
 11894  // StorageSlotBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 11895  const StorageSlotBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061ca98bd9a9672bf10c068dcf42a45d13fc17620bb619c26bdf064388a883db964736f6c63430008130033`
 11896  
 11897  // StorageSlotBin is the compiled bytecode used for deploying new contracts.
 11898  // Deprecated: Use StorageSlotMetaData.Bin instead.
 11899  var StorageSlotBin = StorageSlotMetaData.Bin
 11900  
 11901  // DeployStorageSlot deploys a new Klaytn contract, binding an instance of StorageSlot to it.
 11902  func DeployStorageSlot(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StorageSlot, error) {
 11903  	parsed, err := StorageSlotMetaData.GetAbi()
 11904  	if err != nil {
 11905  		return common.Address{}, nil, nil, err
 11906  	}
 11907  	if parsed == nil {
 11908  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 11909  	}
 11910  
 11911  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StorageSlotBin), backend)
 11912  	if err != nil {
 11913  		return common.Address{}, nil, nil, err
 11914  	}
 11915  	return address, tx, &StorageSlot{StorageSlotCaller: StorageSlotCaller{contract: contract}, StorageSlotTransactor: StorageSlotTransactor{contract: contract}, StorageSlotFilterer: StorageSlotFilterer{contract: contract}}, nil
 11916  }
 11917  
 11918  // StorageSlot is an auto generated Go binding around a Klaytn contract.
 11919  type StorageSlot struct {
 11920  	StorageSlotCaller     // Read-only binding to the contract
 11921  	StorageSlotTransactor // Write-only binding to the contract
 11922  	StorageSlotFilterer   // Log filterer for contract events
 11923  }
 11924  
 11925  // StorageSlotCaller is an auto generated read-only Go binding around a Klaytn contract.
 11926  type StorageSlotCaller struct {
 11927  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11928  }
 11929  
 11930  // StorageSlotTransactor is an auto generated write-only Go binding around a Klaytn contract.
 11931  type StorageSlotTransactor struct {
 11932  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11933  }
 11934  
 11935  // StorageSlotFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 11936  type StorageSlotFilterer struct {
 11937  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11938  }
 11939  
 11940  // StorageSlotSession is an auto generated Go binding around a Klaytn contract,
 11941  // with pre-set call and transact options.
 11942  type StorageSlotSession struct {
 11943  	Contract     *StorageSlot      // Generic contract binding to set the session for
 11944  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11945  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11946  }
 11947  
 11948  // StorageSlotCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 11949  // with pre-set call options.
 11950  type StorageSlotCallerSession struct {
 11951  	Contract *StorageSlotCaller // Generic contract caller binding to set the session for
 11952  	CallOpts bind.CallOpts      // Call options to use throughout this session
 11953  }
 11954  
 11955  // StorageSlotTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 11956  // with pre-set transact options.
 11957  type StorageSlotTransactorSession struct {
 11958  	Contract     *StorageSlotTransactor // Generic contract transactor binding to set the session for
 11959  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
 11960  }
 11961  
 11962  // StorageSlotRaw is an auto generated low-level Go binding around a Klaytn contract.
 11963  type StorageSlotRaw struct {
 11964  	Contract *StorageSlot // Generic contract binding to access the raw methods on
 11965  }
 11966  
 11967  // StorageSlotCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 11968  type StorageSlotCallerRaw struct {
 11969  	Contract *StorageSlotCaller // Generic read-only contract binding to access the raw methods on
 11970  }
 11971  
 11972  // StorageSlotTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 11973  type StorageSlotTransactorRaw struct {
 11974  	Contract *StorageSlotTransactor // Generic write-only contract binding to access the raw methods on
 11975  }
 11976  
 11977  // NewStorageSlot creates a new instance of StorageSlot, bound to a specific deployed contract.
 11978  func NewStorageSlot(address common.Address, backend bind.ContractBackend) (*StorageSlot, error) {
 11979  	contract, err := bindStorageSlot(address, backend, backend, backend)
 11980  	if err != nil {
 11981  		return nil, err
 11982  	}
 11983  	return &StorageSlot{StorageSlotCaller: StorageSlotCaller{contract: contract}, StorageSlotTransactor: StorageSlotTransactor{contract: contract}, StorageSlotFilterer: StorageSlotFilterer{contract: contract}}, nil
 11984  }
 11985  
 11986  // NewStorageSlotCaller creates a new read-only instance of StorageSlot, bound to a specific deployed contract.
 11987  func NewStorageSlotCaller(address common.Address, caller bind.ContractCaller) (*StorageSlotCaller, error) {
 11988  	contract, err := bindStorageSlot(address, caller, nil, nil)
 11989  	if err != nil {
 11990  		return nil, err
 11991  	}
 11992  	return &StorageSlotCaller{contract: contract}, nil
 11993  }
 11994  
 11995  // NewStorageSlotTransactor creates a new write-only instance of StorageSlot, bound to a specific deployed contract.
 11996  func NewStorageSlotTransactor(address common.Address, transactor bind.ContractTransactor) (*StorageSlotTransactor, error) {
 11997  	contract, err := bindStorageSlot(address, nil, transactor, nil)
 11998  	if err != nil {
 11999  		return nil, err
 12000  	}
 12001  	return &StorageSlotTransactor{contract: contract}, nil
 12002  }
 12003  
 12004  // NewStorageSlotFilterer creates a new log filterer instance of StorageSlot, bound to a specific deployed contract.
 12005  func NewStorageSlotFilterer(address common.Address, filterer bind.ContractFilterer) (*StorageSlotFilterer, error) {
 12006  	contract, err := bindStorageSlot(address, nil, nil, filterer)
 12007  	if err != nil {
 12008  		return nil, err
 12009  	}
 12010  	return &StorageSlotFilterer{contract: contract}, nil
 12011  }
 12012  
 12013  // bindStorageSlot binds a generic wrapper to an already deployed contract.
 12014  func bindStorageSlot(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 12015  	parsed, err := StorageSlotMetaData.GetAbi()
 12016  	if err != nil {
 12017  		return nil, err
 12018  	}
 12019  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 12020  }
 12021  
 12022  // Call invokes the (constant) contract method with params as input values and
 12023  // sets the output to result. The result type might be a single field for simple
 12024  // returns, a slice of interfaces for anonymous returns and a struct for named
 12025  // returns.
 12026  func (_StorageSlot *StorageSlotRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12027  	return _StorageSlot.Contract.StorageSlotCaller.contract.Call(opts, result, method, params...)
 12028  }
 12029  
 12030  // Transfer initiates a plain transaction to move funds to the contract, calling
 12031  // its default method if one is available.
 12032  func (_StorageSlot *StorageSlotRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12033  	return _StorageSlot.Contract.StorageSlotTransactor.contract.Transfer(opts)
 12034  }
 12035  
 12036  // Transact invokes the (paid) contract method with params as input values.
 12037  func (_StorageSlot *StorageSlotRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12038  	return _StorageSlot.Contract.StorageSlotTransactor.contract.Transact(opts, method, params...)
 12039  }
 12040  
 12041  // Call invokes the (constant) contract method with params as input values and
 12042  // sets the output to result. The result type might be a single field for simple
 12043  // returns, a slice of interfaces for anonymous returns and a struct for named
 12044  // returns.
 12045  func (_StorageSlot *StorageSlotCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12046  	return _StorageSlot.Contract.contract.Call(opts, result, method, params...)
 12047  }
 12048  
 12049  // Transfer initiates a plain transaction to move funds to the contract, calling
 12050  // its default method if one is available.
 12051  func (_StorageSlot *StorageSlotTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12052  	return _StorageSlot.Contract.contract.Transfer(opts)
 12053  }
 12054  
 12055  // Transact invokes the (paid) contract method with params as input values.
 12056  func (_StorageSlot *StorageSlotTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12057  	return _StorageSlot.Contract.contract.Transact(opts, method, params...)
 12058  }
 12059  
 12060  // StorageSlotUpgradeableMetaData contains all meta data concerning the StorageSlotUpgradeable contract.
 12061  var StorageSlotUpgradeableMetaData = &bind.MetaData{
 12062  	ABI: "[]",
 12063  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220591c77dfec17118a2ca0803e321cdaa6629b0a43ce207b858ac44c985568473064736f6c63430008130033",
 12064  }
 12065  
 12066  // StorageSlotUpgradeableABI is the input ABI used to generate the binding from.
 12067  // Deprecated: Use StorageSlotUpgradeableMetaData.ABI instead.
 12068  var StorageSlotUpgradeableABI = StorageSlotUpgradeableMetaData.ABI
 12069  
 12070  // StorageSlotUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 12071  const StorageSlotUpgradeableBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220591c77dfec17118a2ca0803e321cdaa6629b0a43ce207b858ac44c985568473064736f6c63430008130033`
 12072  
 12073  // StorageSlotUpgradeableBin is the compiled bytecode used for deploying new contracts.
 12074  // Deprecated: Use StorageSlotUpgradeableMetaData.Bin instead.
 12075  var StorageSlotUpgradeableBin = StorageSlotUpgradeableMetaData.Bin
 12076  
 12077  // DeployStorageSlotUpgradeable deploys a new Klaytn contract, binding an instance of StorageSlotUpgradeable to it.
 12078  func DeployStorageSlotUpgradeable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StorageSlotUpgradeable, error) {
 12079  	parsed, err := StorageSlotUpgradeableMetaData.GetAbi()
 12080  	if err != nil {
 12081  		return common.Address{}, nil, nil, err
 12082  	}
 12083  	if parsed == nil {
 12084  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 12085  	}
 12086  
 12087  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(StorageSlotUpgradeableBin), backend)
 12088  	if err != nil {
 12089  		return common.Address{}, nil, nil, err
 12090  	}
 12091  	return address, tx, &StorageSlotUpgradeable{StorageSlotUpgradeableCaller: StorageSlotUpgradeableCaller{contract: contract}, StorageSlotUpgradeableTransactor: StorageSlotUpgradeableTransactor{contract: contract}, StorageSlotUpgradeableFilterer: StorageSlotUpgradeableFilterer{contract: contract}}, nil
 12092  }
 12093  
 12094  // StorageSlotUpgradeable is an auto generated Go binding around a Klaytn contract.
 12095  type StorageSlotUpgradeable struct {
 12096  	StorageSlotUpgradeableCaller     // Read-only binding to the contract
 12097  	StorageSlotUpgradeableTransactor // Write-only binding to the contract
 12098  	StorageSlotUpgradeableFilterer   // Log filterer for contract events
 12099  }
 12100  
 12101  // StorageSlotUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
 12102  type StorageSlotUpgradeableCaller struct {
 12103  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12104  }
 12105  
 12106  // StorageSlotUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 12107  type StorageSlotUpgradeableTransactor struct {
 12108  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12109  }
 12110  
 12111  // StorageSlotUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 12112  type StorageSlotUpgradeableFilterer struct {
 12113  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12114  }
 12115  
 12116  // StorageSlotUpgradeableSession is an auto generated Go binding around a Klaytn contract,
 12117  // with pre-set call and transact options.
 12118  type StorageSlotUpgradeableSession struct {
 12119  	Contract     *StorageSlotUpgradeable // Generic contract binding to set the session for
 12120  	CallOpts     bind.CallOpts           // Call options to use throughout this session
 12121  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
 12122  }
 12123  
 12124  // StorageSlotUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 12125  // with pre-set call options.
 12126  type StorageSlotUpgradeableCallerSession struct {
 12127  	Contract *StorageSlotUpgradeableCaller // Generic contract caller binding to set the session for
 12128  	CallOpts bind.CallOpts                 // Call options to use throughout this session
 12129  }
 12130  
 12131  // StorageSlotUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 12132  // with pre-set transact options.
 12133  type StorageSlotUpgradeableTransactorSession struct {
 12134  	Contract     *StorageSlotUpgradeableTransactor // Generic contract transactor binding to set the session for
 12135  	TransactOpts bind.TransactOpts                 // Transaction auth options to use throughout this session
 12136  }
 12137  
 12138  // StorageSlotUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
 12139  type StorageSlotUpgradeableRaw struct {
 12140  	Contract *StorageSlotUpgradeable // Generic contract binding to access the raw methods on
 12141  }
 12142  
 12143  // StorageSlotUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 12144  type StorageSlotUpgradeableCallerRaw struct {
 12145  	Contract *StorageSlotUpgradeableCaller // Generic read-only contract binding to access the raw methods on
 12146  }
 12147  
 12148  // StorageSlotUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 12149  type StorageSlotUpgradeableTransactorRaw struct {
 12150  	Contract *StorageSlotUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
 12151  }
 12152  
 12153  // NewStorageSlotUpgradeable creates a new instance of StorageSlotUpgradeable, bound to a specific deployed contract.
 12154  func NewStorageSlotUpgradeable(address common.Address, backend bind.ContractBackend) (*StorageSlotUpgradeable, error) {
 12155  	contract, err := bindStorageSlotUpgradeable(address, backend, backend, backend)
 12156  	if err != nil {
 12157  		return nil, err
 12158  	}
 12159  	return &StorageSlotUpgradeable{StorageSlotUpgradeableCaller: StorageSlotUpgradeableCaller{contract: contract}, StorageSlotUpgradeableTransactor: StorageSlotUpgradeableTransactor{contract: contract}, StorageSlotUpgradeableFilterer: StorageSlotUpgradeableFilterer{contract: contract}}, nil
 12160  }
 12161  
 12162  // NewStorageSlotUpgradeableCaller creates a new read-only instance of StorageSlotUpgradeable, bound to a specific deployed contract.
 12163  func NewStorageSlotUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*StorageSlotUpgradeableCaller, error) {
 12164  	contract, err := bindStorageSlotUpgradeable(address, caller, nil, nil)
 12165  	if err != nil {
 12166  		return nil, err
 12167  	}
 12168  	return &StorageSlotUpgradeableCaller{contract: contract}, nil
 12169  }
 12170  
 12171  // NewStorageSlotUpgradeableTransactor creates a new write-only instance of StorageSlotUpgradeable, bound to a specific deployed contract.
 12172  func NewStorageSlotUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*StorageSlotUpgradeableTransactor, error) {
 12173  	contract, err := bindStorageSlotUpgradeable(address, nil, transactor, nil)
 12174  	if err != nil {
 12175  		return nil, err
 12176  	}
 12177  	return &StorageSlotUpgradeableTransactor{contract: contract}, nil
 12178  }
 12179  
 12180  // NewStorageSlotUpgradeableFilterer creates a new log filterer instance of StorageSlotUpgradeable, bound to a specific deployed contract.
 12181  func NewStorageSlotUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*StorageSlotUpgradeableFilterer, error) {
 12182  	contract, err := bindStorageSlotUpgradeable(address, nil, nil, filterer)
 12183  	if err != nil {
 12184  		return nil, err
 12185  	}
 12186  	return &StorageSlotUpgradeableFilterer{contract: contract}, nil
 12187  }
 12188  
 12189  // bindStorageSlotUpgradeable binds a generic wrapper to an already deployed contract.
 12190  func bindStorageSlotUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 12191  	parsed, err := StorageSlotUpgradeableMetaData.GetAbi()
 12192  	if err != nil {
 12193  		return nil, err
 12194  	}
 12195  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 12196  }
 12197  
 12198  // Call invokes the (constant) contract method with params as input values and
 12199  // sets the output to result. The result type might be a single field for simple
 12200  // returns, a slice of interfaces for anonymous returns and a struct for named
 12201  // returns.
 12202  func (_StorageSlotUpgradeable *StorageSlotUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12203  	return _StorageSlotUpgradeable.Contract.StorageSlotUpgradeableCaller.contract.Call(opts, result, method, params...)
 12204  }
 12205  
 12206  // Transfer initiates a plain transaction to move funds to the contract, calling
 12207  // its default method if one is available.
 12208  func (_StorageSlotUpgradeable *StorageSlotUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12209  	return _StorageSlotUpgradeable.Contract.StorageSlotUpgradeableTransactor.contract.Transfer(opts)
 12210  }
 12211  
 12212  // Transact invokes the (paid) contract method with params as input values.
 12213  func (_StorageSlotUpgradeable *StorageSlotUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12214  	return _StorageSlotUpgradeable.Contract.StorageSlotUpgradeableTransactor.contract.Transact(opts, method, params...)
 12215  }
 12216  
 12217  // Call invokes the (constant) contract method with params as input values and
 12218  // sets the output to result. The result type might be a single field for simple
 12219  // returns, a slice of interfaces for anonymous returns and a struct for named
 12220  // returns.
 12221  func (_StorageSlotUpgradeable *StorageSlotUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12222  	return _StorageSlotUpgradeable.Contract.contract.Call(opts, result, method, params...)
 12223  }
 12224  
 12225  // Transfer initiates a plain transaction to move funds to the contract, calling
 12226  // its default method if one is available.
 12227  func (_StorageSlotUpgradeable *StorageSlotUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12228  	return _StorageSlotUpgradeable.Contract.contract.Transfer(opts)
 12229  }
 12230  
 12231  // Transact invokes the (paid) contract method with params as input values.
 12232  func (_StorageSlotUpgradeable *StorageSlotUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12233  	return _StorageSlotUpgradeable.Contract.contract.Transact(opts, method, params...)
 12234  }
 12235  
 12236  // UUPSUpgradeableMetaData contains all meta data concerning the UUPSUpgradeable contract.
 12237  var UUPSUpgradeableMetaData = &bind.MetaData{
 12238  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]",
 12239  	Sigs: map[string]string{
 12240  		"52d1902d": "proxiableUUID()",
 12241  		"3659cfe6": "upgradeTo(address)",
 12242  		"4f1ef286": "upgradeToAndCall(address,bytes)",
 12243  	},
 12244  }
 12245  
 12246  // UUPSUpgradeableABI is the input ABI used to generate the binding from.
 12247  // Deprecated: Use UUPSUpgradeableMetaData.ABI instead.
 12248  var UUPSUpgradeableABI = UUPSUpgradeableMetaData.ABI
 12249  
 12250  // UUPSUpgradeableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 12251  const UUPSUpgradeableBinRuntime = ``
 12252  
 12253  // UUPSUpgradeableFuncSigs maps the 4-byte function signature to its string representation.
 12254  // Deprecated: Use UUPSUpgradeableMetaData.Sigs instead.
 12255  var UUPSUpgradeableFuncSigs = UUPSUpgradeableMetaData.Sigs
 12256  
 12257  // UUPSUpgradeable is an auto generated Go binding around a Klaytn contract.
 12258  type UUPSUpgradeable struct {
 12259  	UUPSUpgradeableCaller     // Read-only binding to the contract
 12260  	UUPSUpgradeableTransactor // Write-only binding to the contract
 12261  	UUPSUpgradeableFilterer   // Log filterer for contract events
 12262  }
 12263  
 12264  // UUPSUpgradeableCaller is an auto generated read-only Go binding around a Klaytn contract.
 12265  type UUPSUpgradeableCaller struct {
 12266  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12267  }
 12268  
 12269  // UUPSUpgradeableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 12270  type UUPSUpgradeableTransactor struct {
 12271  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12272  }
 12273  
 12274  // UUPSUpgradeableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 12275  type UUPSUpgradeableFilterer struct {
 12276  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12277  }
 12278  
 12279  // UUPSUpgradeableSession is an auto generated Go binding around a Klaytn contract,
 12280  // with pre-set call and transact options.
 12281  type UUPSUpgradeableSession struct {
 12282  	Contract     *UUPSUpgradeable  // Generic contract binding to set the session for
 12283  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 12284  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 12285  }
 12286  
 12287  // UUPSUpgradeableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 12288  // with pre-set call options.
 12289  type UUPSUpgradeableCallerSession struct {
 12290  	Contract *UUPSUpgradeableCaller // Generic contract caller binding to set the session for
 12291  	CallOpts bind.CallOpts          // Call options to use throughout this session
 12292  }
 12293  
 12294  // UUPSUpgradeableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 12295  // with pre-set transact options.
 12296  type UUPSUpgradeableTransactorSession struct {
 12297  	Contract     *UUPSUpgradeableTransactor // Generic contract transactor binding to set the session for
 12298  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 12299  }
 12300  
 12301  // UUPSUpgradeableRaw is an auto generated low-level Go binding around a Klaytn contract.
 12302  type UUPSUpgradeableRaw struct {
 12303  	Contract *UUPSUpgradeable // Generic contract binding to access the raw methods on
 12304  }
 12305  
 12306  // UUPSUpgradeableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 12307  type UUPSUpgradeableCallerRaw struct {
 12308  	Contract *UUPSUpgradeableCaller // Generic read-only contract binding to access the raw methods on
 12309  }
 12310  
 12311  // UUPSUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 12312  type UUPSUpgradeableTransactorRaw struct {
 12313  	Contract *UUPSUpgradeableTransactor // Generic write-only contract binding to access the raw methods on
 12314  }
 12315  
 12316  // NewUUPSUpgradeable creates a new instance of UUPSUpgradeable, bound to a specific deployed contract.
 12317  func NewUUPSUpgradeable(address common.Address, backend bind.ContractBackend) (*UUPSUpgradeable, error) {
 12318  	contract, err := bindUUPSUpgradeable(address, backend, backend, backend)
 12319  	if err != nil {
 12320  		return nil, err
 12321  	}
 12322  	return &UUPSUpgradeable{UUPSUpgradeableCaller: UUPSUpgradeableCaller{contract: contract}, UUPSUpgradeableTransactor: UUPSUpgradeableTransactor{contract: contract}, UUPSUpgradeableFilterer: UUPSUpgradeableFilterer{contract: contract}}, nil
 12323  }
 12324  
 12325  // NewUUPSUpgradeableCaller creates a new read-only instance of UUPSUpgradeable, bound to a specific deployed contract.
 12326  func NewUUPSUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*UUPSUpgradeableCaller, error) {
 12327  	contract, err := bindUUPSUpgradeable(address, caller, nil, nil)
 12328  	if err != nil {
 12329  		return nil, err
 12330  	}
 12331  	return &UUPSUpgradeableCaller{contract: contract}, nil
 12332  }
 12333  
 12334  // NewUUPSUpgradeableTransactor creates a new write-only instance of UUPSUpgradeable, bound to a specific deployed contract.
 12335  func NewUUPSUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*UUPSUpgradeableTransactor, error) {
 12336  	contract, err := bindUUPSUpgradeable(address, nil, transactor, nil)
 12337  	if err != nil {
 12338  		return nil, err
 12339  	}
 12340  	return &UUPSUpgradeableTransactor{contract: contract}, nil
 12341  }
 12342  
 12343  // NewUUPSUpgradeableFilterer creates a new log filterer instance of UUPSUpgradeable, bound to a specific deployed contract.
 12344  func NewUUPSUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*UUPSUpgradeableFilterer, error) {
 12345  	contract, err := bindUUPSUpgradeable(address, nil, nil, filterer)
 12346  	if err != nil {
 12347  		return nil, err
 12348  	}
 12349  	return &UUPSUpgradeableFilterer{contract: contract}, nil
 12350  }
 12351  
 12352  // bindUUPSUpgradeable binds a generic wrapper to an already deployed contract.
 12353  func bindUUPSUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 12354  	parsed, err := UUPSUpgradeableMetaData.GetAbi()
 12355  	if err != nil {
 12356  		return nil, err
 12357  	}
 12358  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 12359  }
 12360  
 12361  // Call invokes the (constant) contract method with params as input values and
 12362  // sets the output to result. The result type might be a single field for simple
 12363  // returns, a slice of interfaces for anonymous returns and a struct for named
 12364  // returns.
 12365  func (_UUPSUpgradeable *UUPSUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12366  	return _UUPSUpgradeable.Contract.UUPSUpgradeableCaller.contract.Call(opts, result, method, params...)
 12367  }
 12368  
 12369  // Transfer initiates a plain transaction to move funds to the contract, calling
 12370  // its default method if one is available.
 12371  func (_UUPSUpgradeable *UUPSUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12372  	return _UUPSUpgradeable.Contract.UUPSUpgradeableTransactor.contract.Transfer(opts)
 12373  }
 12374  
 12375  // Transact invokes the (paid) contract method with params as input values.
 12376  func (_UUPSUpgradeable *UUPSUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12377  	return _UUPSUpgradeable.Contract.UUPSUpgradeableTransactor.contract.Transact(opts, method, params...)
 12378  }
 12379  
 12380  // Call invokes the (constant) contract method with params as input values and
 12381  // sets the output to result. The result type might be a single field for simple
 12382  // returns, a slice of interfaces for anonymous returns and a struct for named
 12383  // returns.
 12384  func (_UUPSUpgradeable *UUPSUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12385  	return _UUPSUpgradeable.Contract.contract.Call(opts, result, method, params...)
 12386  }
 12387  
 12388  // Transfer initiates a plain transaction to move funds to the contract, calling
 12389  // its default method if one is available.
 12390  func (_UUPSUpgradeable *UUPSUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12391  	return _UUPSUpgradeable.Contract.contract.Transfer(opts)
 12392  }
 12393  
 12394  // Transact invokes the (paid) contract method with params as input values.
 12395  func (_UUPSUpgradeable *UUPSUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12396  	return _UUPSUpgradeable.Contract.contract.Transact(opts, method, params...)
 12397  }
 12398  
 12399  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
 12400  //
 12401  // Solidity: function proxiableUUID() view returns(bytes32)
 12402  func (_UUPSUpgradeable *UUPSUpgradeableCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) {
 12403  	var out []interface{}
 12404  	err := _UUPSUpgradeable.contract.Call(opts, &out, "proxiableUUID")
 12405  	if err != nil {
 12406  		return *new([32]byte), err
 12407  	}
 12408  
 12409  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
 12410  
 12411  	return out0, err
 12412  }
 12413  
 12414  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
 12415  //
 12416  // Solidity: function proxiableUUID() view returns(bytes32)
 12417  func (_UUPSUpgradeable *UUPSUpgradeableSession) ProxiableUUID() ([32]byte, error) {
 12418  	return _UUPSUpgradeable.Contract.ProxiableUUID(&_UUPSUpgradeable.CallOpts)
 12419  }
 12420  
 12421  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
 12422  //
 12423  // Solidity: function proxiableUUID() view returns(bytes32)
 12424  func (_UUPSUpgradeable *UUPSUpgradeableCallerSession) ProxiableUUID() ([32]byte, error) {
 12425  	return _UUPSUpgradeable.Contract.ProxiableUUID(&_UUPSUpgradeable.CallOpts)
 12426  }
 12427  
 12428  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
 12429  //
 12430  // Solidity: function upgradeTo(address newImplementation) returns()
 12431  func (_UUPSUpgradeable *UUPSUpgradeableTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) {
 12432  	return _UUPSUpgradeable.contract.Transact(opts, "upgradeTo", newImplementation)
 12433  }
 12434  
 12435  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
 12436  //
 12437  // Solidity: function upgradeTo(address newImplementation) returns()
 12438  func (_UUPSUpgradeable *UUPSUpgradeableSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
 12439  	return _UUPSUpgradeable.Contract.UpgradeTo(&_UUPSUpgradeable.TransactOpts, newImplementation)
 12440  }
 12441  
 12442  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
 12443  //
 12444  // Solidity: function upgradeTo(address newImplementation) returns()
 12445  func (_UUPSUpgradeable *UUPSUpgradeableTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
 12446  	return _UUPSUpgradeable.Contract.UpgradeTo(&_UUPSUpgradeable.TransactOpts, newImplementation)
 12447  }
 12448  
 12449  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
 12450  //
 12451  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
 12452  func (_UUPSUpgradeable *UUPSUpgradeableTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) {
 12453  	return _UUPSUpgradeable.contract.Transact(opts, "upgradeToAndCall", newImplementation, data)
 12454  }
 12455  
 12456  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
 12457  //
 12458  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
 12459  func (_UUPSUpgradeable *UUPSUpgradeableSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
 12460  	return _UUPSUpgradeable.Contract.UpgradeToAndCall(&_UUPSUpgradeable.TransactOpts, newImplementation, data)
 12461  }
 12462  
 12463  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
 12464  //
 12465  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
 12466  func (_UUPSUpgradeable *UUPSUpgradeableTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
 12467  	return _UUPSUpgradeable.Contract.UpgradeToAndCall(&_UUPSUpgradeable.TransactOpts, newImplementation, data)
 12468  }
 12469  
 12470  // UUPSUpgradeableAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the UUPSUpgradeable contract.
 12471  type UUPSUpgradeableAdminChangedIterator struct {
 12472  	Event *UUPSUpgradeableAdminChanged // Event containing the contract specifics and raw log
 12473  
 12474  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12475  	event    string              // Event name to use for unpacking event data
 12476  
 12477  	logs chan types.Log      // Log channel receiving the found contract events
 12478  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12479  	done bool                // Whether the subscription completed delivering logs
 12480  	fail error               // Occurred error to stop iteration
 12481  }
 12482  
 12483  // Next advances the iterator to the subsequent event, returning whether there
 12484  // are any more events found. In case of a retrieval or parsing error, false is
 12485  // returned and Error() can be queried for the exact failure.
 12486  func (it *UUPSUpgradeableAdminChangedIterator) Next() bool {
 12487  	// If the iterator failed, stop iterating
 12488  	if it.fail != nil {
 12489  		return false
 12490  	}
 12491  	// If the iterator completed, deliver directly whatever's available
 12492  	if it.done {
 12493  		select {
 12494  		case log := <-it.logs:
 12495  			it.Event = new(UUPSUpgradeableAdminChanged)
 12496  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12497  				it.fail = err
 12498  				return false
 12499  			}
 12500  			it.Event.Raw = log
 12501  			return true
 12502  
 12503  		default:
 12504  			return false
 12505  		}
 12506  	}
 12507  	// Iterator still in progress, wait for either a data or an error event
 12508  	select {
 12509  	case log := <-it.logs:
 12510  		it.Event = new(UUPSUpgradeableAdminChanged)
 12511  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12512  			it.fail = err
 12513  			return false
 12514  		}
 12515  		it.Event.Raw = log
 12516  		return true
 12517  
 12518  	case err := <-it.sub.Err():
 12519  		it.done = true
 12520  		it.fail = err
 12521  		return it.Next()
 12522  	}
 12523  }
 12524  
 12525  // Error returns any retrieval or parsing error occurred during filtering.
 12526  func (it *UUPSUpgradeableAdminChangedIterator) Error() error {
 12527  	return it.fail
 12528  }
 12529  
 12530  // Close terminates the iteration process, releasing any pending underlying
 12531  // resources.
 12532  func (it *UUPSUpgradeableAdminChangedIterator) Close() error {
 12533  	it.sub.Unsubscribe()
 12534  	return nil
 12535  }
 12536  
 12537  // UUPSUpgradeableAdminChanged represents a AdminChanged event raised by the UUPSUpgradeable contract.
 12538  type UUPSUpgradeableAdminChanged struct {
 12539  	PreviousAdmin common.Address
 12540  	NewAdmin      common.Address
 12541  	Raw           types.Log // Blockchain specific contextual infos
 12542  }
 12543  
 12544  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
 12545  //
 12546  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
 12547  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*UUPSUpgradeableAdminChangedIterator, error) {
 12548  	logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "AdminChanged")
 12549  	if err != nil {
 12550  		return nil, err
 12551  	}
 12552  	return &UUPSUpgradeableAdminChangedIterator{contract: _UUPSUpgradeable.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
 12553  }
 12554  
 12555  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
 12556  //
 12557  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
 12558  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableAdminChanged) (event.Subscription, error) {
 12559  	logs, sub, err := _UUPSUpgradeable.contract.WatchLogs(opts, "AdminChanged")
 12560  	if err != nil {
 12561  		return nil, err
 12562  	}
 12563  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12564  		defer sub.Unsubscribe()
 12565  		for {
 12566  			select {
 12567  			case log := <-logs:
 12568  				// New log arrived, parse the event and forward to the user
 12569  				event := new(UUPSUpgradeableAdminChanged)
 12570  				if err := _UUPSUpgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil {
 12571  					return err
 12572  				}
 12573  				event.Raw = log
 12574  
 12575  				select {
 12576  				case sink <- event:
 12577  				case err := <-sub.Err():
 12578  					return err
 12579  				case <-quit:
 12580  					return nil
 12581  				}
 12582  			case err := <-sub.Err():
 12583  				return err
 12584  			case <-quit:
 12585  				return nil
 12586  			}
 12587  		}
 12588  	}), nil
 12589  }
 12590  
 12591  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
 12592  //
 12593  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
 12594  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseAdminChanged(log types.Log) (*UUPSUpgradeableAdminChanged, error) {
 12595  	event := new(UUPSUpgradeableAdminChanged)
 12596  	if err := _UUPSUpgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil {
 12597  		return nil, err
 12598  	}
 12599  	return event, nil
 12600  }
 12601  
 12602  // UUPSUpgradeableBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the UUPSUpgradeable contract.
 12603  type UUPSUpgradeableBeaconUpgradedIterator struct {
 12604  	Event *UUPSUpgradeableBeaconUpgraded // Event containing the contract specifics and raw log
 12605  
 12606  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12607  	event    string              // Event name to use for unpacking event data
 12608  
 12609  	logs chan types.Log      // Log channel receiving the found contract events
 12610  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12611  	done bool                // Whether the subscription completed delivering logs
 12612  	fail error               // Occurred error to stop iteration
 12613  }
 12614  
 12615  // Next advances the iterator to the subsequent event, returning whether there
 12616  // are any more events found. In case of a retrieval or parsing error, false is
 12617  // returned and Error() can be queried for the exact failure.
 12618  func (it *UUPSUpgradeableBeaconUpgradedIterator) Next() bool {
 12619  	// If the iterator failed, stop iterating
 12620  	if it.fail != nil {
 12621  		return false
 12622  	}
 12623  	// If the iterator completed, deliver directly whatever's available
 12624  	if it.done {
 12625  		select {
 12626  		case log := <-it.logs:
 12627  			it.Event = new(UUPSUpgradeableBeaconUpgraded)
 12628  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12629  				it.fail = err
 12630  				return false
 12631  			}
 12632  			it.Event.Raw = log
 12633  			return true
 12634  
 12635  		default:
 12636  			return false
 12637  		}
 12638  	}
 12639  	// Iterator still in progress, wait for either a data or an error event
 12640  	select {
 12641  	case log := <-it.logs:
 12642  		it.Event = new(UUPSUpgradeableBeaconUpgraded)
 12643  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12644  			it.fail = err
 12645  			return false
 12646  		}
 12647  		it.Event.Raw = log
 12648  		return true
 12649  
 12650  	case err := <-it.sub.Err():
 12651  		it.done = true
 12652  		it.fail = err
 12653  		return it.Next()
 12654  	}
 12655  }
 12656  
 12657  // Error returns any retrieval or parsing error occurred during filtering.
 12658  func (it *UUPSUpgradeableBeaconUpgradedIterator) Error() error {
 12659  	return it.fail
 12660  }
 12661  
 12662  // Close terminates the iteration process, releasing any pending underlying
 12663  // resources.
 12664  func (it *UUPSUpgradeableBeaconUpgradedIterator) Close() error {
 12665  	it.sub.Unsubscribe()
 12666  	return nil
 12667  }
 12668  
 12669  // UUPSUpgradeableBeaconUpgraded represents a BeaconUpgraded event raised by the UUPSUpgradeable contract.
 12670  type UUPSUpgradeableBeaconUpgraded struct {
 12671  	Beacon common.Address
 12672  	Raw    types.Log // Blockchain specific contextual infos
 12673  }
 12674  
 12675  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
 12676  //
 12677  // Solidity: event BeaconUpgraded(address indexed beacon)
 12678  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*UUPSUpgradeableBeaconUpgradedIterator, error) {
 12679  	var beaconRule []interface{}
 12680  	for _, beaconItem := range beacon {
 12681  		beaconRule = append(beaconRule, beaconItem)
 12682  	}
 12683  
 12684  	logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
 12685  	if err != nil {
 12686  		return nil, err
 12687  	}
 12688  	return &UUPSUpgradeableBeaconUpgradedIterator{contract: _UUPSUpgradeable.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
 12689  }
 12690  
 12691  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
 12692  //
 12693  // Solidity: event BeaconUpgraded(address indexed beacon)
 12694  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableBeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
 12695  	var beaconRule []interface{}
 12696  	for _, beaconItem := range beacon {
 12697  		beaconRule = append(beaconRule, beaconItem)
 12698  	}
 12699  
 12700  	logs, sub, err := _UUPSUpgradeable.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
 12701  	if err != nil {
 12702  		return nil, err
 12703  	}
 12704  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12705  		defer sub.Unsubscribe()
 12706  		for {
 12707  			select {
 12708  			case log := <-logs:
 12709  				// New log arrived, parse the event and forward to the user
 12710  				event := new(UUPSUpgradeableBeaconUpgraded)
 12711  				if err := _UUPSUpgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
 12712  					return err
 12713  				}
 12714  				event.Raw = log
 12715  
 12716  				select {
 12717  				case sink <- event:
 12718  				case err := <-sub.Err():
 12719  					return err
 12720  				case <-quit:
 12721  					return nil
 12722  				}
 12723  			case err := <-sub.Err():
 12724  				return err
 12725  			case <-quit:
 12726  				return nil
 12727  			}
 12728  		}
 12729  	}), nil
 12730  }
 12731  
 12732  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
 12733  //
 12734  // Solidity: event BeaconUpgraded(address indexed beacon)
 12735  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseBeaconUpgraded(log types.Log) (*UUPSUpgradeableBeaconUpgraded, error) {
 12736  	event := new(UUPSUpgradeableBeaconUpgraded)
 12737  	if err := _UUPSUpgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
 12738  		return nil, err
 12739  	}
 12740  	return event, nil
 12741  }
 12742  
 12743  // UUPSUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the UUPSUpgradeable contract.
 12744  type UUPSUpgradeableInitializedIterator struct {
 12745  	Event *UUPSUpgradeableInitialized // Event containing the contract specifics and raw log
 12746  
 12747  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12748  	event    string              // Event name to use for unpacking event data
 12749  
 12750  	logs chan types.Log      // Log channel receiving the found contract events
 12751  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12752  	done bool                // Whether the subscription completed delivering logs
 12753  	fail error               // Occurred error to stop iteration
 12754  }
 12755  
 12756  // Next advances the iterator to the subsequent event, returning whether there
 12757  // are any more events found. In case of a retrieval or parsing error, false is
 12758  // returned and Error() can be queried for the exact failure.
 12759  func (it *UUPSUpgradeableInitializedIterator) Next() bool {
 12760  	// If the iterator failed, stop iterating
 12761  	if it.fail != nil {
 12762  		return false
 12763  	}
 12764  	// If the iterator completed, deliver directly whatever's available
 12765  	if it.done {
 12766  		select {
 12767  		case log := <-it.logs:
 12768  			it.Event = new(UUPSUpgradeableInitialized)
 12769  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12770  				it.fail = err
 12771  				return false
 12772  			}
 12773  			it.Event.Raw = log
 12774  			return true
 12775  
 12776  		default:
 12777  			return false
 12778  		}
 12779  	}
 12780  	// Iterator still in progress, wait for either a data or an error event
 12781  	select {
 12782  	case log := <-it.logs:
 12783  		it.Event = new(UUPSUpgradeableInitialized)
 12784  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12785  			it.fail = err
 12786  			return false
 12787  		}
 12788  		it.Event.Raw = log
 12789  		return true
 12790  
 12791  	case err := <-it.sub.Err():
 12792  		it.done = true
 12793  		it.fail = err
 12794  		return it.Next()
 12795  	}
 12796  }
 12797  
 12798  // Error returns any retrieval or parsing error occurred during filtering.
 12799  func (it *UUPSUpgradeableInitializedIterator) Error() error {
 12800  	return it.fail
 12801  }
 12802  
 12803  // Close terminates the iteration process, releasing any pending underlying
 12804  // resources.
 12805  func (it *UUPSUpgradeableInitializedIterator) Close() error {
 12806  	it.sub.Unsubscribe()
 12807  	return nil
 12808  }
 12809  
 12810  // UUPSUpgradeableInitialized represents a Initialized event raised by the UUPSUpgradeable contract.
 12811  type UUPSUpgradeableInitialized struct {
 12812  	Version uint8
 12813  	Raw     types.Log // Blockchain specific contextual infos
 12814  }
 12815  
 12816  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
 12817  //
 12818  // Solidity: event Initialized(uint8 version)
 12819  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*UUPSUpgradeableInitializedIterator, error) {
 12820  	logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "Initialized")
 12821  	if err != nil {
 12822  		return nil, err
 12823  	}
 12824  	return &UUPSUpgradeableInitializedIterator{contract: _UUPSUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil
 12825  }
 12826  
 12827  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
 12828  //
 12829  // Solidity: event Initialized(uint8 version)
 12830  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableInitialized) (event.Subscription, error) {
 12831  	logs, sub, err := _UUPSUpgradeable.contract.WatchLogs(opts, "Initialized")
 12832  	if err != nil {
 12833  		return nil, err
 12834  	}
 12835  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12836  		defer sub.Unsubscribe()
 12837  		for {
 12838  			select {
 12839  			case log := <-logs:
 12840  				// New log arrived, parse the event and forward to the user
 12841  				event := new(UUPSUpgradeableInitialized)
 12842  				if err := _UUPSUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
 12843  					return err
 12844  				}
 12845  				event.Raw = log
 12846  
 12847  				select {
 12848  				case sink <- event:
 12849  				case err := <-sub.Err():
 12850  					return err
 12851  				case <-quit:
 12852  					return nil
 12853  				}
 12854  			case err := <-sub.Err():
 12855  				return err
 12856  			case <-quit:
 12857  				return nil
 12858  			}
 12859  		}
 12860  	}), nil
 12861  }
 12862  
 12863  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
 12864  //
 12865  // Solidity: event Initialized(uint8 version)
 12866  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseInitialized(log types.Log) (*UUPSUpgradeableInitialized, error) {
 12867  	event := new(UUPSUpgradeableInitialized)
 12868  	if err := _UUPSUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil {
 12869  		return nil, err
 12870  	}
 12871  	return event, nil
 12872  }
 12873  
 12874  // UUPSUpgradeableUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the UUPSUpgradeable contract.
 12875  type UUPSUpgradeableUpgradedIterator struct {
 12876  	Event *UUPSUpgradeableUpgraded // Event containing the contract specifics and raw log
 12877  
 12878  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12879  	event    string              // Event name to use for unpacking event data
 12880  
 12881  	logs chan types.Log      // Log channel receiving the found contract events
 12882  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12883  	done bool                // Whether the subscription completed delivering logs
 12884  	fail error               // Occurred error to stop iteration
 12885  }
 12886  
 12887  // Next advances the iterator to the subsequent event, returning whether there
 12888  // are any more events found. In case of a retrieval or parsing error, false is
 12889  // returned and Error() can be queried for the exact failure.
 12890  func (it *UUPSUpgradeableUpgradedIterator) Next() bool {
 12891  	// If the iterator failed, stop iterating
 12892  	if it.fail != nil {
 12893  		return false
 12894  	}
 12895  	// If the iterator completed, deliver directly whatever's available
 12896  	if it.done {
 12897  		select {
 12898  		case log := <-it.logs:
 12899  			it.Event = new(UUPSUpgradeableUpgraded)
 12900  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12901  				it.fail = err
 12902  				return false
 12903  			}
 12904  			it.Event.Raw = log
 12905  			return true
 12906  
 12907  		default:
 12908  			return false
 12909  		}
 12910  	}
 12911  	// Iterator still in progress, wait for either a data or an error event
 12912  	select {
 12913  	case log := <-it.logs:
 12914  		it.Event = new(UUPSUpgradeableUpgraded)
 12915  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12916  			it.fail = err
 12917  			return false
 12918  		}
 12919  		it.Event.Raw = log
 12920  		return true
 12921  
 12922  	case err := <-it.sub.Err():
 12923  		it.done = true
 12924  		it.fail = err
 12925  		return it.Next()
 12926  	}
 12927  }
 12928  
 12929  // Error returns any retrieval or parsing error occurred during filtering.
 12930  func (it *UUPSUpgradeableUpgradedIterator) Error() error {
 12931  	return it.fail
 12932  }
 12933  
 12934  // Close terminates the iteration process, releasing any pending underlying
 12935  // resources.
 12936  func (it *UUPSUpgradeableUpgradedIterator) Close() error {
 12937  	it.sub.Unsubscribe()
 12938  	return nil
 12939  }
 12940  
 12941  // UUPSUpgradeableUpgraded represents a Upgraded event raised by the UUPSUpgradeable contract.
 12942  type UUPSUpgradeableUpgraded struct {
 12943  	Implementation common.Address
 12944  	Raw            types.Log // Blockchain specific contextual infos
 12945  }
 12946  
 12947  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
 12948  //
 12949  // Solidity: event Upgraded(address indexed implementation)
 12950  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*UUPSUpgradeableUpgradedIterator, error) {
 12951  	var implementationRule []interface{}
 12952  	for _, implementationItem := range implementation {
 12953  		implementationRule = append(implementationRule, implementationItem)
 12954  	}
 12955  
 12956  	logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "Upgraded", implementationRule)
 12957  	if err != nil {
 12958  		return nil, err
 12959  	}
 12960  	return &UUPSUpgradeableUpgradedIterator{contract: _UUPSUpgradeable.contract, event: "Upgraded", logs: logs, sub: sub}, nil
 12961  }
 12962  
 12963  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
 12964  //
 12965  // Solidity: event Upgraded(address indexed implementation)
 12966  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableUpgraded, implementation []common.Address) (event.Subscription, error) {
 12967  	var implementationRule []interface{}
 12968  	for _, implementationItem := range implementation {
 12969  		implementationRule = append(implementationRule, implementationItem)
 12970  	}
 12971  
 12972  	logs, sub, err := _UUPSUpgradeable.contract.WatchLogs(opts, "Upgraded", implementationRule)
 12973  	if err != nil {
 12974  		return nil, err
 12975  	}
 12976  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12977  		defer sub.Unsubscribe()
 12978  		for {
 12979  			select {
 12980  			case log := <-logs:
 12981  				// New log arrived, parse the event and forward to the user
 12982  				event := new(UUPSUpgradeableUpgraded)
 12983  				if err := _UUPSUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil {
 12984  					return err
 12985  				}
 12986  				event.Raw = log
 12987  
 12988  				select {
 12989  				case sink <- event:
 12990  				case err := <-sub.Err():
 12991  					return err
 12992  				case <-quit:
 12993  					return nil
 12994  				}
 12995  			case err := <-sub.Err():
 12996  				return err
 12997  			case <-quit:
 12998  				return nil
 12999  			}
 13000  		}
 13001  	}), nil
 13002  }
 13003  
 13004  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
 13005  //
 13006  // Solidity: event Upgraded(address indexed implementation)
 13007  func (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseUpgraded(log types.Log) (*UUPSUpgradeableUpgraded, error) {
 13008  	event := new(UUPSUpgradeableUpgraded)
 13009  	if err := _UUPSUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil {
 13010  		return nil, err
 13011  	}
 13012  	return event, nil
 13013  }